/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (c) 2016-2017 Linaro Ltd.
* Copyright (c) 2016-2017 HiSilicon Technologies Co., Ltd.
*/
#ifndef __DTS_HI3660_CLOCK_H
#define __DTS_HI3660_CLOCK_H
/* fixed rate clocks */
#define HI3660_CLKIN_SYS 0
#define HI3660_CLKIN_REF 1
#define HI3660_CLK_FLL_SRC 2
#define HI3660_CLK_PPLL0 3
#define HI3660_CLK_PPLL1 4
#define HI3660_CLK_PPLL2 5
#define HI3660_CLK_PPLL3 6
#define HI3660_CLK_SCPLL 7
#define HI3660_PCLK 8
#define HI3660_CLK_UART0_DBG 9
#define HI3660_CLK_UART6 10
#define HI3660_OSC32K 11
#define HI3660_OSC19M 12
#define HI3660_CLK_480M 13
#define HI3660_CLK_INV 14
/* clk in crgctrl */
#define HI3660_FACTOR_UART3 15
#define HI3660_CLK_FACTOR_MMC 16
#define HI3660_CLK_GATE_I2C0 17
#define HI3660_CLK_GATE_I2C1 18
#define HI3660_CLK_GATE_I2C2 19
#define HI3660_CLK_GATE_I2C6 20
#define HI3660_CLK_DIV_SYSBUS 21
#define HI3660_CLK_DIV_320M 22
#define HI3660_CLK_DIV_A53 23
#define HI3660_CLK_GATE_SPI0 24
#define HI3660_CLK_GATE_SPI2 25
#define HI3660_PCIEPHY_REF 26
#define HI3660_CLK_ABB_USB 27
#define HI3660_HCLK_GATE_SDIO0 28
#define HI3660_HCLK_GATE_SD 29
#define HI3660_CLK_GATE_AOMM 30
#define HI3660_PCLK_GPIO0 31
#define HI3660_PCLK_GPIO1 32
#define HI3660_PCLK_GPIO2 33
#define HI3660_PCLK_GPIO3 34
#define HI3660_PCLK_GPIO4 35
#define HI3660_PCLK_GPIO5 36
#define HI3660_PCLK_GPIO6 37
#define HI3660_PCLK_GPIO7 38
#define HI3660_PCLK_GPIO8 39
#define HI3660_PCLK_GPIO9 40
#define HI3660_PCLK_GPIO10 41
#define HI3660_PCLK_GPIO11 42
#define HI3660_PCLK_GPIO12 43
#define HI3660_PCLK_GPIO13 44
#define HI3660_PCLK_GPIO14 45
#define HI3660_PCLK_GPIO15 46
#define HI3660_PCLK_GPIO16 47
#define HI3660_PCLK_GPIO17 48
#define HI3660_PCLK_GPIO18 49
#define HI3660_PCLK_GPIO19 50
#define HI3660_PCLK_GPIO20 51
#define HI3660_PCLK_GPIO21 52
#define HI3660_CLK_GATE_SPI3 53
#define HI3660_CLK_GATE_I2C7 54
#define HI3660_CLK_GATE_I2C3 55
#define HI3660_CLK_GATE_SPI1 56
#define HI3660_CLK_GATE_UART1 57
#define HI3660_CLK_GATE_UART2 58
#define HI3660_CLK_GATE_UART4 59
#define HI3660_CLK_GATE_UART5 60
#define HI3660_CLK_GATE_I2C4 61
#define HI3660_CLK_GATE_DMAC 62
#define HI3660_PCLK_GATE_DSS 63
#define HI3660_ACLK_GATE_DSS 64
#define HI3660_CLK_GATE_LDI1 65
#define HI3660_CLK_GATE_LDI0 66
#define HI3660_CLK_GATE_VIVOBUS 67
#define HI3660_CLK_GATE_EDC0 68
#define HI3660_CLK_GATE_TXDPHY0_CFG 69
#define HI3660_CLK_GATE_TXDPHY0_REF 70
#define HI3660_CLK_GATE_TXDPHY1_CFG 71
#define HI3660_CLK_GATE_TXDPHY1_REF 72
#define HI3660_ACLK_GATE_USB3OTG 73
#define HI3660_CLK_GATE_SPI4 74
#define HI3660_CLK_GATE_SD 75
#define HI3660_CLK_GATE_SDIO0 76
#define HI3660_CLK_GATE_UFS_SUBSYS 77
#define HI3660_PCLK_GATE_DSI0 78
#define HI3660_PCLK_GATE_DSI1 79
#define HI3660_ACLK_GATE_PCIE 80
#define HI3660_PCLK_GATE_PCIE_SYS 81
#define HI3660_CLK_GATE_PCIEAUX 82
#define HI3660_PCLK_GATE_PCIE_PHY 83
#define HI3660_CLK_ANDGT_LDI0 84
#define HI3660_CLK_ANDGT_LDI1 85
#define HI3660_CLK_ANDGT_EDC0 86
#define HI3660_CLK_GATE_UFSPHY_GT 87
#define HI3660_CLK_ANDGT_MMC 88
#define HI3660_CLK_ANDGT_SD 89
#define HI3660_CLK_A53HPM_ANDGT 90
#define HI3660_CLK_ANDGT_SDIO 91
#define HI3660_CLK_ANDGT_UART0 92
#define HI3660_CLK_ANDGT_UART1 93
#define HI3660_CLK_ANDGT_UARTH 94
#define HI3660_CLK_ANDGT_SPI 95
#define HI3660_CLK_VIVOBUS_ANDGT 96
#define HI3660_CLK_AOMM_ANDGT 97
#define HI3660_CLK_320M_PLL_GT 98
#define HI3660_AUTODIV_EMMC0BUS 99
#define HI3660_AUTODIV_SYSBUS 100
#define HI3660_CLK_GATE_UFSPHY_CFG 101
#define HI3660_CLK_GATE_UFSIO_REF 102
#define HI3660_CLK_MUX_SYSBUS 103
#define HI3660_CLK_MUX_UART0 104
#define HI3660_CLK_MUX_UART1 105
#define HI3660_CLK_MUX_UARTH 106
#define HI3660_CLK_MUX_SPI 107
#define HI3660_CLK_MUX_I2C 108
#define HI3660_CLK_MUX_MMC_PLL 109
#define HI3660_CLK_MUX_LDI1 110
#define HI3660_CLK_MUX_LDI0 111
#define HI3660_CLK_MUX_SD_PLL 112
#define HI3660_CLK_MUX_SD_SYS 113
#define HI3660_CLK_MUX_EDC0 114
#define HI3660_CLK_MUX_SDIO_SYS 115
#define HI3660_CLK_MUX_SDIO_PLL 116
#define HI3660_CLK_MUX_VIVOBUS 117
#define HI3660_CLK_MUX_A53HPM 118
#define HI3660_CLK_MUX_320M 119
#define HI3660_CLK_MUX_IOPERI 120
#define HI3660_CLK_DIV_UART0 121
#define HI3660_CLK_DIV_UART1 122
#define HI3660_CLK_DIV_UARTH 123
#define HI3660_CLK_DIV_MMC 124
#define HI3660_CLK_DIV_SD 125
#define HI3660_CLK_DIV_EDC0 126
#define HI3660_CLK_DIV_LDI0 127
#define HI3660_CLK_DIV_SDIO 128
#define HI3660_CLK_DIV_LDI1 129
#define HI3660_CLK_DIV_SPI 130
#define HI3660_CLK_DIV_VIVOBUS 131
#define HI3660_CLK_DIV_I2C 132
#define HI3660_CLK_DIV_UFSPHY 133
#define HI3660_CLK_DIV_CFGBUS 134
#define HI3660_CLK_DIV_MMC0BUS 135
#define HI3660_CLK_DIV_MMC1BUS 136
#define HI3660_CLK_DIV_UFSPERI 137
#define HI3660_CLK_DIV_AOMM 138
#define HI3660_CLK_DIV_IOPERI 139
#define HI3660_VENC_VOLT_HOLD 140
#define HI3660_PERI_VOLT_HOLD 141
#define HI3660_CLK_GATE_VENC 142
#define HI3660_CLK_GATE_VDEC 143
#define HI3660_CLK_ANDGT_VENC 144
#define HI3660_CLK_ANDGT_VDEC 145
#define HI3660_CLK_MUX_VENC 146
#define HI3660_CLK_MUX_VDEC 147
#define HI3660_CLK_DIV_VENC 148
#define HI3660_CLK_DIV_VDEC 149
#define HI3660_CLK_FAC_ISP_SNCLK 150
#define HI3660_CLK_GATE_ISP_SNCLK0 151
#define HI3660_CLK_GATE_ISP_SNCLK1 152
#define HI3660_CLK_GATE_ISP_SNCLK2 153
#define HI3660_CLK_ANGT_ISP_SNCLK 154
#define HI3660_CLK_MUX_ISP_SNCLK 155
#define HI3660_CLK_DIV_ISP_SNCLK 156
/* clk in pmuctrl */
#define HI3660_GATE_ABB_192 0
/* clk in pctrl */
#define HI3660_GATE_UFS_TCXO_EN 0
#define HI3660_GATE_USB_TCXO_EN 1
/* clk in sctrl */
#define HI3660_PCLK_AO_GPIO0 0
#define HI3660_PCLK_AO_GPIO1 1
#define HI3660_PCLK_AO_GPIO2 2
#define HI3660_PCLK_AO_GPIO3 3
#define HI3660_PCLK_AO_GPIO4 4
#define HI3660_PCLK_AO_GPIO5 5
#define HI3660_PCLK_AO_GPIO6 6
#define HI3660_PCLK_GATE_MMBUF 7
#define HI3660_CLK_GATE_DSS_AXI_MM 8
#define HI3660_PCLK_MMBUF_ANDGT 9
#define HI3660_CLK_MMBUF_PLL_ANDGT 10
#define HI3660_CLK_FLL_MMBUF_ANDGT 11
#define HI3660_CLK_SYS_MMBUF_ANDGT 12
#define HI3660_CLK_GATE_PCIEPHY_GT 13
#define HI3660_ACLK_MUX_MMBUF 14
#define HI3660_CLK_SW_MMBUF 15
#define HI3660_CLK_DIV_AOBUS 16
#define HI3660_PCLK_DIV_MMBUF 17
#define HI3660_ACLK_DIV_MMBUF 18
#define HI3660_CLK_DIV_PCIEPHY 19
/* clk in iomcu */
#define HI3660_CLK_I2C0_IOMCU 0
#define HI3660_CLK_I2C1_IOMCU 1
#define HI3660_CLK_I2C2_IOMCU 2
#define HI3660_CLK_I2C6_IOMCU 3
#define HI3660_CLK_IOMCU_PERI0 4
/* clk in stub clock */
#define HI3660_CLK_STUB_CLUSTER0 0
#define HI3660_CLK_STUB_CLUSTER1 1
#define HI3660_CLK_STUB_GPU 2
#define HI3660_CLK_STUB_DDR 3
#define HI3660_CLK_STUB_NUM 4
#endif /* __DTS_HI3660_CLOCK_H */