root/include/dt-bindings/clock/hi3670-clock.h
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Device Tree binding constants for HiSilicon Hi3670 SoC
 *
 * Copyright (c) 2001-2021, Huawei Tech. Co., Ltd.
 * Copyright (c) 2018 Linaro Ltd.
 */

#ifndef __DT_BINDINGS_CLOCK_HI3670_H
#define __DT_BINDINGS_CLOCK_HI3670_H

/* clk in stub clock */
#define HI3670_CLK_STUB_CLUSTER0                0
#define HI3670_CLK_STUB_CLUSTER1                1
#define HI3670_CLK_STUB_GPU                     2
#define HI3670_CLK_STUB_DDR                     3
#define HI3670_CLK_STUB_DDR_VOTE                4
#define HI3670_CLK_STUB_DDR_LIMIT               5
#define HI3670_CLK_STUB_NUM                     6

/* clk in crg clock */
#define HI3670_CLKIN_SYS                        0
#define HI3670_CLKIN_REF                        1
#define HI3670_CLK_FLL_SRC                      2
#define HI3670_CLK_PPLL0                        3
#define HI3670_CLK_PPLL1                        4
#define HI3670_CLK_PPLL2                        5
#define HI3670_CLK_PPLL3                        6
#define HI3670_CLK_PPLL4                        7
#define HI3670_CLK_PPLL6                        8
#define HI3670_CLK_PPLL7                        9
#define HI3670_CLK_PPLL_PCIE                    10
#define HI3670_CLK_PCIEPLL_REV                  11
#define HI3670_CLK_SCPLL                        12
#define HI3670_PCLK                             13
#define HI3670_CLK_UART0_DBG                    14
#define HI3670_CLK_UART6                        15
#define HI3670_OSC32K                           16
#define HI3670_OSC19M                           17
#define HI3670_CLK_480M                         18
#define HI3670_CLK_INVALID                      19
#define HI3670_CLK_DIV_SYSBUS                   20
#define HI3670_CLK_FACTOR_MMC                   21
#define HI3670_CLK_SD_SYS                       22
#define HI3670_CLK_SDIO_SYS                     23
#define HI3670_CLK_DIV_A53HPM                   24
#define HI3670_CLK_DIV_320M                     25
#define HI3670_PCLK_GATE_UART0                  26
#define HI3670_CLK_FACTOR_UART0                 27
#define HI3670_CLK_FACTOR_USB3PHY_PLL           28
#define HI3670_CLK_GATE_ABB_USB                 29
#define HI3670_CLK_GATE_UFSPHY_REF              30
#define HI3670_ICS_VOLT_HIGH                    31
#define HI3670_ICS_VOLT_MIDDLE                  32
#define HI3670_VENC_VOLT_HOLD                   33
#define HI3670_VDEC_VOLT_HOLD                   34
#define HI3670_EDC_VOLT_HOLD                    35
#define HI3670_CLK_ISP_SNCLK_FAC                36
#define HI3670_CLK_FACTOR_RXDPHY                37
#define HI3670_AUTODIV_SYSBUS                   38
#define HI3670_AUTODIV_EMMC0BUS                 39
#define HI3670_PCLK_ANDGT_MMC1_PCIE             40
#define HI3670_CLK_GATE_VCODECBUS_GT            41
#define HI3670_CLK_ANDGT_SD                     42
#define HI3670_CLK_SD_SYS_GT                    43
#define HI3670_CLK_ANDGT_SDIO                   44
#define HI3670_CLK_SDIO_SYS_GT                  45
#define HI3670_CLK_A53HPM_ANDGT                 46
#define HI3670_CLK_320M_PLL_GT                  47
#define HI3670_CLK_ANDGT_UARTH                  48
#define HI3670_CLK_ANDGT_UARTL                  49
#define HI3670_CLK_ANDGT_UART0                  50
#define HI3670_CLK_ANDGT_SPI                    51
#define HI3670_CLK_ANDGT_PCIEAXI                52
#define HI3670_CLK_DIV_AO_ASP_GT                53
#define HI3670_CLK_GATE_CSI_TRANS               54
#define HI3670_CLK_GATE_DSI_TRANS               55
#define HI3670_CLK_ANDGT_PTP                    56
#define HI3670_CLK_ANDGT_OUT0                   57
#define HI3670_CLK_ANDGT_OUT1                   58
#define HI3670_CLKGT_DP_AUDIO_PLL_AO            59
#define HI3670_CLK_ANDGT_VDEC                   60
#define HI3670_CLK_ANDGT_VENC                   61
#define HI3670_CLK_ISP_SNCLK_ANGT               62
#define HI3670_CLK_ANDGT_RXDPHY                 63
#define HI3670_CLK_ANDGT_ICS                    64
#define HI3670_AUTODIV_DMABUS                   65
#define HI3670_CLK_MUX_SYSBUS                   66
#define HI3670_CLK_MUX_VCODECBUS                67
#define HI3670_CLK_MUX_SD_SYS                   68
#define HI3670_CLK_MUX_SD_PLL                   69
#define HI3670_CLK_MUX_SDIO_SYS                 70
#define HI3670_CLK_MUX_SDIO_PLL                 71
#define HI3670_CLK_MUX_A53HPM                   72
#define HI3670_CLK_MUX_320M                     73
#define HI3670_CLK_MUX_UARTH                    74
#define HI3670_CLK_MUX_UARTL                    75
#define HI3670_CLK_MUX_UART0                    76
#define HI3670_CLK_MUX_I2C                      77
#define HI3670_CLK_MUX_SPI                      78
#define HI3670_CLK_MUX_PCIEAXI                  79
#define HI3670_CLK_MUX_AO_ASP                   80
#define HI3670_CLK_MUX_VDEC                     81
#define HI3670_CLK_MUX_VENC                     82
#define HI3670_CLK_ISP_SNCLK_MUX0               83
#define HI3670_CLK_ISP_SNCLK_MUX1               84
#define HI3670_CLK_ISP_SNCLK_MUX2               85
#define HI3670_CLK_MUX_RXDPHY_CFG               86
#define HI3670_CLK_MUX_ICS                      87
#define HI3670_CLK_DIV_CFGBUS                   88
#define HI3670_CLK_DIV_MMC0BUS                  89
#define HI3670_CLK_DIV_MMC1BUS                  90
#define HI3670_PCLK_DIV_MMC1_PCIE               91
#define HI3670_CLK_DIV_VCODECBUS                92
#define HI3670_CLK_DIV_SD                       93
#define HI3670_CLK_DIV_SDIO                     94
#define HI3670_CLK_DIV_UARTH                    95
#define HI3670_CLK_DIV_UARTL                    96
#define HI3670_CLK_DIV_UART0                    97
#define HI3670_CLK_DIV_I2C                      98
#define HI3670_CLK_DIV_SPI                      99
#define HI3670_CLK_DIV_PCIEAXI                  100
#define HI3670_CLK_DIV_AO_ASP                   101
#define HI3670_CLK_DIV_CSI_TRANS                102
#define HI3670_CLK_DIV_DSI_TRANS                103
#define HI3670_CLK_DIV_PTP                      104
#define HI3670_CLK_DIV_CLKOUT0_PLL              105
#define HI3670_CLK_DIV_CLKOUT1_PLL              106
#define HI3670_CLKDIV_DP_AUDIO_PLL_AO           107
#define HI3670_CLK_DIV_VDEC                     108
#define HI3670_CLK_DIV_VENC                     109
#define HI3670_CLK_ISP_SNCLK_DIV0               110
#define HI3670_CLK_ISP_SNCLK_DIV1               111
#define HI3670_CLK_ISP_SNCLK_DIV2               112
#define HI3670_CLK_DIV_ICS                      113
#define HI3670_PPLL1_EN_ACPU                    114
#define HI3670_PPLL2_EN_ACPU                    115
#define HI3670_PPLL3_EN_ACPU                    116
#define HI3670_PPLL1_GT_CPU                     117
#define HI3670_PPLL2_GT_CPU                     118
#define HI3670_PPLL3_GT_CPU                     119
#define HI3670_CLK_GATE_PPLL2_MEDIA             120
#define HI3670_CLK_GATE_PPLL3_MEDIA             121
#define HI3670_CLK_GATE_PPLL4_MEDIA             122
#define HI3670_CLK_GATE_PPLL6_MEDIA             123
#define HI3670_CLK_GATE_PPLL7_MEDIA             124
#define HI3670_PCLK_GPIO0                       125
#define HI3670_PCLK_GPIO1                       126
#define HI3670_PCLK_GPIO2                       127
#define HI3670_PCLK_GPIO3                       128
#define HI3670_PCLK_GPIO4                       129
#define HI3670_PCLK_GPIO5                       130
#define HI3670_PCLK_GPIO6                       131
#define HI3670_PCLK_GPIO7                       132
#define HI3670_PCLK_GPIO8                       133
#define HI3670_PCLK_GPIO9                       134
#define HI3670_PCLK_GPIO10                      135
#define HI3670_PCLK_GPIO11                      136
#define HI3670_PCLK_GPIO12                      137
#define HI3670_PCLK_GPIO13                      138
#define HI3670_PCLK_GPIO14                      139
#define HI3670_PCLK_GPIO15                      140
#define HI3670_PCLK_GPIO16                      141
#define HI3670_PCLK_GPIO17                      142
#define HI3670_PCLK_GPIO20                      143
#define HI3670_PCLK_GPIO21                      144
#define HI3670_PCLK_GATE_DSI0                   145
#define HI3670_PCLK_GATE_DSI1                   146
#define HI3670_HCLK_GATE_USB3OTG                147
#define HI3670_ACLK_GATE_USB3DVFS               148
#define HI3670_HCLK_GATE_SDIO                   149
#define HI3670_PCLK_GATE_PCIE_SYS               150
#define HI3670_PCLK_GATE_PCIE_PHY               151
#define HI3670_PCLK_GATE_MMC1_PCIE              152
#define HI3670_PCLK_GATE_MMC0_IOC               153
#define HI3670_PCLK_GATE_MMC1_IOC               154
#define HI3670_CLK_GATE_DMAC                    155
#define HI3670_CLK_GATE_VCODECBUS2DDR           156
#define HI3670_CLK_CCI400_BYPASS                157
#define HI3670_CLK_GATE_CCI400                  158
#define HI3670_CLK_GATE_SD                      159
#define HI3670_HCLK_GATE_SD                     160
#define HI3670_CLK_GATE_SDIO                    161
#define HI3670_CLK_GATE_A57HPM                  162
#define HI3670_CLK_GATE_A53HPM                  163
#define HI3670_CLK_GATE_PA_A53                  164
#define HI3670_CLK_GATE_PA_A57                  165
#define HI3670_CLK_GATE_PA_G3D                  166
#define HI3670_CLK_GATE_GPUHPM                  167
#define HI3670_CLK_GATE_PERIHPM                 168
#define HI3670_CLK_GATE_AOHPM                   169
#define HI3670_CLK_GATE_UART1                   170
#define HI3670_CLK_GATE_UART4                   171
#define HI3670_PCLK_GATE_UART1                  172
#define HI3670_PCLK_GATE_UART4                  173
#define HI3670_CLK_GATE_UART2                   174
#define HI3670_CLK_GATE_UART5                   175
#define HI3670_PCLK_GATE_UART2                  176
#define HI3670_PCLK_GATE_UART5                  177
#define HI3670_CLK_GATE_UART0                   178
#define HI3670_CLK_GATE_I2C3                    179
#define HI3670_CLK_GATE_I2C4                    180
#define HI3670_CLK_GATE_I2C7                    181
#define HI3670_PCLK_GATE_I2C3                   182
#define HI3670_PCLK_GATE_I2C4                   183
#define HI3670_PCLK_GATE_I2C7                   184
#define HI3670_CLK_GATE_SPI1                    185
#define HI3670_CLK_GATE_SPI4                    186
#define HI3670_PCLK_GATE_SPI1                   187
#define HI3670_PCLK_GATE_SPI4                   188
#define HI3670_CLK_GATE_USB3OTG_REF             189
#define HI3670_CLK_GATE_USB2PHY_REF             190
#define HI3670_CLK_GATE_PCIEAUX                 191
#define HI3670_ACLK_GATE_PCIE                   192
#define HI3670_CLK_GATE_MMC1_PCIEAXI            193
#define HI3670_CLK_GATE_PCIEPHY_REF             194
#define HI3670_CLK_GATE_PCIE_DEBOUNCE           195
#define HI3670_CLK_GATE_PCIEIO                  196
#define HI3670_CLK_GATE_PCIE_HP                 197
#define HI3670_CLK_GATE_AO_ASP                  198
#define HI3670_PCLK_GATE_PCTRL                  199
#define HI3670_CLK_CSI_TRANS_GT                 200
#define HI3670_CLK_DSI_TRANS_GT                 201
#define HI3670_CLK_GATE_PWM                     202
#define HI3670_ABB_AUDIO_EN0                    203
#define HI3670_ABB_AUDIO_EN1                    204
#define HI3670_ABB_AUDIO_GT_EN0                 205
#define HI3670_ABB_AUDIO_GT_EN1                 206
#define HI3670_CLK_GATE_DP_AUDIO_PLL_AO         207
#define HI3670_PERI_VOLT_HOLD                   208
#define HI3670_PERI_VOLT_MIDDLE                 209
#define HI3670_CLK_GATE_ISP_SNCLK0              210
#define HI3670_CLK_GATE_ISP_SNCLK1              211
#define HI3670_CLK_GATE_ISP_SNCLK2              212
#define HI3670_CLK_GATE_RXDPHY0_CFG             213
#define HI3670_CLK_GATE_RXDPHY1_CFG             214
#define HI3670_CLK_GATE_RXDPHY2_CFG             215
#define HI3670_CLK_GATE_TXDPHY0_CFG             216
#define HI3670_CLK_GATE_TXDPHY0_REF             217
#define HI3670_CLK_GATE_TXDPHY1_CFG             218
#define HI3670_CLK_GATE_TXDPHY1_REF             219
#define HI3670_CLK_GATE_MEDIA_TCXO              220

/* clk in sctrl */
#define HI3670_CLK_ANDGT_IOPERI                 0
#define HI3670_CLKANDGT_ASP_SUBSYS_PERI         1
#define HI3670_CLK_ANGT_ASP_SUBSYS              2
#define HI3670_CLK_MUX_UFS_SUBSYS               3
#define HI3670_CLK_MUX_CLKOUT0                  4
#define HI3670_CLK_MUX_CLKOUT1                  5
#define HI3670_CLK_MUX_ASP_SUBSYS_PERI          6
#define HI3670_CLK_MUX_ASP_PLL                  7
#define HI3670_CLK_DIV_AOBUS                    8
#define HI3670_CLK_DIV_UFS_SUBSYS               9
#define HI3670_CLK_DIV_IOPERI                   10
#define HI3670_CLK_DIV_CLKOUT0_TCXO             11
#define HI3670_CLK_DIV_CLKOUT1_TCXO             12
#define HI3670_CLK_ASP_SUBSYS_PERI_DIV          13
#define HI3670_CLK_DIV_ASP_SUBSYS               14
#define HI3670_PPLL0_EN_ACPU                    15
#define HI3670_PPLL0_GT_CPU                     16
#define HI3670_CLK_GATE_PPLL0_MEDIA             17
#define HI3670_PCLK_GPIO18                      18
#define HI3670_PCLK_GPIO19                      19
#define HI3670_CLK_GATE_SPI                     20
#define HI3670_PCLK_GATE_SPI                    21
#define HI3670_CLK_GATE_UFS_SUBSYS              22
#define HI3670_CLK_GATE_UFSIO_REF               23
#define HI3670_PCLK_AO_GPIO0                    24
#define HI3670_PCLK_AO_GPIO1                    25
#define HI3670_PCLK_AO_GPIO2                    26
#define HI3670_PCLK_AO_GPIO3                    27
#define HI3670_PCLK_AO_GPIO4                    28
#define HI3670_PCLK_AO_GPIO5                    29
#define HI3670_PCLK_AO_GPIO6                    30
#define HI3670_CLK_GATE_OUT0                    31
#define HI3670_CLK_GATE_OUT1                    32
#define HI3670_PCLK_GATE_SYSCNT                 33
#define HI3670_CLK_GATE_SYSCNT                  34
#define HI3670_CLK_GATE_ASP_SUBSYS_PERI         35
#define HI3670_CLK_GATE_ASP_SUBSYS              36
#define HI3670_CLK_GATE_ASP_TCXO                37
#define HI3670_CLK_GATE_DP_AUDIO_PLL            38

/* clk in pmuctrl */
#define HI3670_GATE_ABB_192                     0

/* clk in pctrl */
#define HI3670_GATE_UFS_TCXO_EN                 0
#define HI3670_GATE_USB_TCXO_EN                 1

/* clk in iomcu */
#define HI3670_CLK_GATE_I2C0                    0
#define HI3670_CLK_GATE_I2C1                    1
#define HI3670_CLK_GATE_I2C2                    2
#define HI3670_CLK_GATE_SPI0                    3
#define HI3670_CLK_GATE_SPI2                    4
#define HI3670_CLK_GATE_UART3                   5
#define HI3670_CLK_I2C0_GATE_IOMCU              6
#define HI3670_CLK_I2C1_GATE_IOMCU              7
#define HI3670_CLK_I2C2_GATE_IOMCU              8
#define HI3670_CLK_SPI0_GATE_IOMCU              9
#define HI3670_CLK_SPI2_GATE_IOMCU              10
#define HI3670_CLK_UART3_GATE_IOMCU             11
#define HI3670_CLK_GATE_PERI0_IOMCU             12

/* clk in media1 */
#define HI3670_CLK_GATE_VIVOBUS_ANDGT           0
#define HI3670_CLK_ANDGT_EDC0                   1
#define HI3670_CLK_ANDGT_LDI0                   2
#define HI3670_CLK_ANDGT_LDI1                   3
#define HI3670_CLK_MMBUF_PLL_ANDGT              4
#define HI3670_PCLK_MMBUF_ANDGT                 5
#define HI3670_CLK_MUX_VIVOBUS                  6
#define HI3670_CLK_MUX_EDC0                     7
#define HI3670_CLK_MUX_LDI0                     8
#define HI3670_CLK_MUX_LDI1                     9
#define HI3670_CLK_SW_MMBUF                     10
#define HI3670_CLK_DIV_VIVOBUS                  11
#define HI3670_CLK_DIV_EDC0                     12
#define HI3670_CLK_DIV_LDI0                     13
#define HI3670_CLK_DIV_LDI1                     14
#define HI3670_ACLK_DIV_MMBUF                   15
#define HI3670_PCLK_DIV_MMBUF                   16
#define HI3670_ACLK_GATE_NOC_DSS                17
#define HI3670_PCLK_GATE_NOC_DSS_CFG            18
#define HI3670_PCLK_GATE_MMBUF_CFG              19
#define HI3670_PCLK_GATE_DISP_NOC_SUBSYS        20
#define HI3670_ACLK_GATE_DISP_NOC_SUBSYS        21
#define HI3670_PCLK_GATE_DSS                    22
#define HI3670_ACLK_GATE_DSS                    23
#define HI3670_CLK_GATE_VIVOBUSFREQ             24
#define HI3670_CLK_GATE_EDC0                    25
#define HI3670_CLK_GATE_LDI0                    26
#define HI3670_CLK_GATE_LDI1FREQ                27
#define HI3670_CLK_GATE_BRG                     28
#define HI3670_ACLK_GATE_ASC                    29
#define HI3670_CLK_GATE_DSS_AXI_MM              30
#define HI3670_CLK_GATE_MMBUF                   31
#define HI3670_PCLK_GATE_MMBUF                  32
#define HI3670_CLK_GATE_ATDIV_VIVO              33

/* clk in media2 */
#define HI3670_CLK_GATE_VDECFREQ                0
#define HI3670_CLK_GATE_VENCFREQ                1
#define HI3670_CLK_GATE_ICSFREQ                 2

#endif /* __DT_BINDINGS_CLOCK_HI3670_H */