root/include/dt-bindings/clock/rockchip,rv1126-cru.h
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
 * Copyright (c) 2019 Rockchip Electronics Co. Ltd.
 * Author: Finley Xiao <finley.xiao@rock-chips.com>
 */

#ifndef _DT_BINDINGS_CLK_ROCKCHIP_RV1126_H
#define _DT_BINDINGS_CLK_ROCKCHIP_RV1126_H

/* pmucru-clocks indices */

/* pll clocks */
#define PLL_GPLL                1

/* sclk (special clocks) */
#define CLK_OSC0_DIV32K         2
#define CLK_RTC32K              3
#define CLK_WIFI_DIV            4
#define CLK_WIFI_OSC0           5
#define CLK_WIFI                6
#define CLK_PMU                 7
#define SCLK_UART1_DIV          8
#define SCLK_UART1_FRACDIV      9
#define SCLK_UART1_MUX          10
#define SCLK_UART1              11
#define CLK_I2C0                12
#define CLK_I2C2                13
#define CLK_CAPTURE_PWM0        14
#define CLK_PWM0                15
#define CLK_CAPTURE_PWM1        16
#define CLK_PWM1                17
#define CLK_SPI0                18
#define DBCLK_GPIO0             19
#define CLK_PMUPVTM             20
#define CLK_CORE_PMUPVTM        21
#define CLK_REF12M              22
#define CLK_USBPHY_OTG_REF      23
#define CLK_USBPHY_HOST_REF     24
#define CLK_REF24M              25
#define CLK_MIPIDSIPHY_REF      26

/* pclk */
#define PCLK_PDPMU              30
#define PCLK_PMU                31
#define PCLK_UART1              32
#define PCLK_I2C0               33
#define PCLK_I2C2               34
#define PCLK_PWM0               35
#define PCLK_PWM1               36
#define PCLK_SPI0               37
#define PCLK_GPIO0              38
#define PCLK_PMUSGRF            39
#define PCLK_PMUGRF             40
#define PCLK_PMUCRU             41
#define PCLK_CHIPVEROTP         42
#define PCLK_PDPMU_NIU          43
#define PCLK_PMUPVTM            44
#define PCLK_SCRKEYGEN          45

#define CLKPMU_NR_CLKS          (PCLK_SCRKEYGEN + 1)

/* cru-clocks indices */

/* pll clocks */
#define PLL_APLL                1
#define PLL_DPLL                2
#define PLL_CPLL                3
#define PLL_HPLL                4

/* sclk (special clocks) */
#define ARMCLK                  5
#define USB480M                 6
#define CLK_CORE_CPUPVTM        7
#define CLK_CPUPVTM             8
#define CLK_SCR1                9
#define CLK_SCR1_CORE           10
#define CLK_SCR1_RTC            11
#define CLK_SCR1_JTAG           12
#define SCLK_UART0_DIV          13
#define SCLK_UART0_FRAC         14
#define SCLK_UART0_MUX          15
#define SCLK_UART0              16
#define SCLK_UART2_DIV          17
#define SCLK_UART2_FRAC         18
#define SCLK_UART2_MUX          19
#define SCLK_UART2              20
#define SCLK_UART3_DIV          21
#define SCLK_UART3_FRAC         22
#define SCLK_UART3_MUX          23
#define SCLK_UART3              24
#define SCLK_UART4_DIV          25
#define SCLK_UART4_FRAC         26
#define SCLK_UART4_MUX          27
#define SCLK_UART4              28
#define SCLK_UART5_DIV          29
#define SCLK_UART5_FRAC         30
#define SCLK_UART5_MUX          31
#define SCLK_UART5              32
#define CLK_I2C1                33
#define CLK_I2C3                34
#define CLK_I2C4                35
#define CLK_I2C5                36
#define CLK_SPI1                37
#define CLK_CAPTURE_PWM2        38
#define CLK_PWM2                39
#define DBCLK_GPIO1             40
#define DBCLK_GPIO2             41
#define DBCLK_GPIO3             42
#define DBCLK_GPIO4             43
#define CLK_SARADC              44
#define CLK_TIMER0              45
#define CLK_TIMER1              46
#define CLK_TIMER2              47
#define CLK_TIMER3              48
#define CLK_TIMER4              49
#define CLK_TIMER5              50
#define CLK_CAN                 51
#define CLK_NPU_TSADC           52
#define CLK_NPU_TSADCPHY        53
#define CLK_CPU_TSADC           54
#define CLK_CPU_TSADCPHY        55
#define CLK_CRYPTO_CORE         56
#define CLK_CRYPTO_PKA          57
#define MCLK_I2S0_TX_DIV        58
#define MCLK_I2S0_TX_FRACDIV    59
#define MCLK_I2S0_TX_MUX        60
#define MCLK_I2S0_TX            61
#define MCLK_I2S0_RX_DIV        62
#define MCLK_I2S0_RX_FRACDIV    63
#define MCLK_I2S0_RX_MUX        64
#define MCLK_I2S0_RX            65
#define MCLK_I2S0_TX_OUT2IO     66
#define MCLK_I2S0_RX_OUT2IO     67
#define MCLK_I2S1_DIV           68
#define MCLK_I2S1_FRACDIV       69
#define MCLK_I2S1_MUX           70
#define MCLK_I2S1               71
#define MCLK_I2S1_OUT2IO        72
#define MCLK_I2S2_DIV           73
#define MCLK_I2S2_FRACDIV       74
#define MCLK_I2S2_MUX           75
#define MCLK_I2S2               76
#define MCLK_I2S2_OUT2IO        77
#define MCLK_PDM                78
#define SCLK_ADUPWM_DIV         79
#define SCLK_AUDPWM_FRACDIV     80
#define SCLK_AUDPWM_MUX         81
#define SCLK_AUDPWM             82
#define CLK_ACDCDIG_ADC         83
#define CLK_ACDCDIG_DAC         84
#define CLK_ACDCDIG_I2C         85
#define CLK_VENC_CORE           86
#define CLK_VDEC_CORE           87
#define CLK_VDEC_CA             88
#define CLK_VDEC_HEVC_CA        89
#define CLK_RGA_CORE            90
#define CLK_IEP_CORE            91
#define CLK_ISP_DIV             92
#define CLK_ISP_NP5             93
#define CLK_ISP_NUX             94
#define CLK_ISP                 95
#define CLK_CIF_OUT_DIV         96
#define CLK_CIF_OUT_FRACDIV     97
#define CLK_CIF_OUT_MUX         98
#define CLK_CIF_OUT             99
#define CLK_MIPICSI_OUT_DIV     100
#define CLK_MIPICSI_OUT_FRACDIV 101
#define CLK_MIPICSI_OUT_MUX     102
#define CLK_MIPICSI_OUT         103
#define CLK_ISPP_DIV            104
#define CLK_ISPP_NP5            105
#define CLK_ISPP_NUX            106
#define CLK_ISPP                107
#define CLK_SDMMC               108
#define SCLK_SDMMC_DRV          109
#define SCLK_SDMMC_SAMPLE       110
#define CLK_SDIO                111
#define SCLK_SDIO_DRV           112
#define SCLK_SDIO_SAMPLE        113
#define CLK_EMMC                114
#define SCLK_EMMC_DRV           115
#define SCLK_EMMC_SAMPLE        116
#define CLK_NANDC               117
#define SCLK_SFC                118
#define CLK_USBHOST_UTMI_OHCI   119
#define CLK_USBOTG_REF          120
#define CLK_GMAC_DIV            121
#define CLK_GMAC_RGMII_M0       122
#define CLK_GMAC_SRC_M0         123
#define CLK_GMAC_RGMII_M1       124
#define CLK_GMAC_SRC_M1         125
#define CLK_GMAC_SRC            126
#define CLK_GMAC_REF            127
#define CLK_GMAC_TX_SRC         128
#define CLK_GMAC_TX_DIV5        129
#define CLK_GMAC_TX_DIV50       130
#define RGMII_MODE_CLK          131
#define CLK_GMAC_RX_SRC         132
#define CLK_GMAC_RX_DIV2        133
#define CLK_GMAC_RX_DIV20       134
#define RMII_MODE_CLK           135
#define CLK_GMAC_TX_RX          136
#define CLK_GMAC_PTPREF         137
#define CLK_GMAC_ETHERNET_OUT   138
#define CLK_DDRPHY              139
#define CLK_DDR_MON             140
#define TMCLK_DDR_MON           141
#define CLK_NPU_DIV             142
#define CLK_NPU_NP5             143
#define CLK_CORE_NPU            144
#define CLK_CORE_NPUPVTM        145
#define CLK_NPUPVTM             146
#define SCLK_DDRCLK             147
#define CLK_OTP                 148

/* dclk */
#define DCLK_DECOM              150
#define DCLK_VOP_DIV            151
#define DCLK_VOP_FRACDIV        152
#define DCLK_VOP_MUX            153
#define DCLK_VOP                154
#define DCLK_CIF                155
#define DCLK_CIFLITE            156

/* aclk */
#define ACLK_PDBUS              160
#define ACLK_DMAC               161
#define ACLK_DCF                162
#define ACLK_SPINLOCK           163
#define ACLK_DECOM              164
#define ACLK_PDCRYPTO           165
#define ACLK_CRYPTO             166
#define ACLK_PDVEPU             167
#define ACLK_VENC               168
#define ACLK_PDVDEC             169
#define ACLK_PDJPEG             170
#define ACLK_VDEC               171
#define ACLK_JPEG               172
#define ACLK_PDVO               173
#define ACLK_RGA                174
#define ACLK_VOP                175
#define ACLK_IEP                176
#define ACLK_PDVI_DIV           177
#define ACLK_PDVI_NP5           178
#define ACLK_PDVI               179
#define ACLK_ISP                180
#define ACLK_CIF                181
#define ACLK_CIFLITE            182
#define ACLK_PDISPP_DIV         183
#define ACLK_PDISPP_NP5         184
#define ACLK_PDISPP             185
#define ACLK_ISPP               186
#define ACLK_PDPHP              187
#define ACLK_PDUSB              188
#define ACLK_USBOTG             189
#define ACLK_PDGMAC             190
#define ACLK_GMAC               191
#define ACLK_PDNPU_DIV          192
#define ACLK_PDNPU_NP5          193
#define ACLK_PDNPU              194
#define ACLK_NPU                195

/* hclk */
#define HCLK_PDCORE_NIU         200
#define HCLK_PDUSB              201
#define HCLK_PDCRYPTO           202
#define HCLK_CRYPTO             203
#define HCLK_PDAUDIO            204
#define HCLK_I2S0               205
#define HCLK_I2S1               206
#define HCLK_I2S2               207
#define HCLK_PDM                208
#define HCLK_AUDPWM             209
#define HCLK_PDVEPU             210
#define HCLK_VENC               211
#define HCLK_PDVDEC             212
#define HCLK_PDJPEG             213
#define HCLK_VDEC               214
#define HCLK_JPEG               215
#define HCLK_PDVO               216
#define HCLK_RGA                217
#define HCLK_VOP                218
#define HCLK_IEP                219
#define HCLK_PDVI               220
#define HCLK_ISP                221
#define HCLK_CIF                222
#define HCLK_CIFLITE            223
#define HCLK_PDISPP             224
#define HCLK_ISPP               225
#define HCLK_PDPHP              226
#define HCLK_PDSDMMC            227
#define HCLK_SDMMC              228
#define HCLK_PDSDIO             229
#define HCLK_SDIO               230
#define HCLK_PDNVM              231
#define HCLK_EMMC               232
#define HCLK_NANDC              233
#define HCLK_SFC                234
#define HCLK_SFCXIP             235
#define HCLK_PDBUS              236
#define HCLK_USBHOST            237
#define HCLK_USBHOST_ARB        238
#define HCLK_PDNPU              239
#define HCLK_NPU                240

/* pclk */
#define PCLK_CPUPVTM            245
#define PCLK_PDBUS              246
#define PCLK_DCF                247
#define PCLK_WDT                248
#define PCLK_MAILBOX            249
#define PCLK_UART0              250
#define PCLK_UART2              251
#define PCLK_UART3              252
#define PCLK_UART4              253
#define PCLK_UART5              254
#define PCLK_I2C1               255
#define PCLK_I2C3               256
#define PCLK_I2C4               257
#define PCLK_I2C5               258
#define PCLK_SPI1               259
#define PCLK_PWM2               261
#define PCLK_GPIO1              262
#define PCLK_GPIO2              263
#define PCLK_GPIO3              264
#define PCLK_GPIO4              265
#define PCLK_SARADC             266
#define PCLK_TIMER              267
#define PCLK_DECOM              268
#define PCLK_CAN                269
#define PCLK_NPU_TSADC          270
#define PCLK_CPU_TSADC          271
#define PCLK_ACDCDIG            272
#define PCLK_PDVO               273
#define PCLK_DSIHOST            274
#define PCLK_PDVI               275
#define PCLK_CSIHOST            276
#define PCLK_PDGMAC             277
#define PCLK_GMAC               278
#define PCLK_PDDDR              279
#define PCLK_DDR_MON            280
#define PCLK_PDNPU              281
#define PCLK_NPUPVTM            282
#define PCLK_PDTOP              283
#define PCLK_TOPCRU             284
#define PCLK_TOPGRF             285
#define PCLK_CPUEMADET          286
#define PCLK_DDRPHY             287
#define PCLK_DSIPHY             289
#define PCLK_CSIPHY0            290
#define PCLK_CSIPHY1            291
#define PCLK_USBPHY_HOST        292
#define PCLK_USBPHY_OTG         293
#define PCLK_OTP                294

#define CLK_NR_CLKS             (PCLK_OTP + 1)

/* pmu soft-reset indices */

/* pmu_cru_softrst_con0 */
#define SRST_PDPMU_NIU_P        0
#define SRST_PMU_SGRF_P         1
#define SRST_PMU_SGRF_REMAP_P   2
#define SRST_I2C0_P             3
#define SRST_I2C0               4
#define SRST_I2C2_P             7
#define SRST_I2C2               8
#define SRST_UART1_P            9
#define SRST_UART1              10
#define SRST_PWM0_P             11
#define SRST_PWM0               12
#define SRST_PWM1_P             13
#define SRST_PWM1               14
#define SRST_DDR_FAIL_SAFE      15

/* pmu_cru_softrst_con1 */
#define SRST_GPIO0_P            17
#define SRST_GPIO0_DB           18
#define SRST_SPI0_P             19
#define SRST_SPI0               20
#define SRST_PMUGRF_P           21
#define SRST_CHIPVEROTP_P       22
#define SRST_PMUPVTM            24
#define SRST_PMUPVTM_P          25
#define SRST_PMUCRU_P           30

/* soft-reset indices */

/* cru_softrst_con0 */
#define SRST_CORE0_PO           0
#define SRST_CORE1_PO           1
#define SRST_CORE2_PO           2
#define SRST_CORE3_PO           3
#define SRST_CORE0              4
#define SRST_CORE1              5
#define SRST_CORE2              6
#define SRST_CORE3              7
#define SRST_CORE0_DBG          8
#define SRST_CORE1_DBG          9
#define SRST_CORE2_DBG          10
#define SRST_CORE3_DBG          11
#define SRST_NL2                12
#define SRST_CORE_NIU_A         13
#define SRST_DBG_DAPLITE_P      14
#define SRST_DAPLITE_P          15

/* cru_softrst_con1 */
#define SRST_PDBUS_NIU1_A       16
#define SRST_PDBUS_NIU1_H       17
#define SRST_PDBUS_NIU1_P       18
#define SRST_PDBUS_NIU2_A       19
#define SRST_PDBUS_NIU2_H       20
#define SRST_PDBUS_NIU3_A       21
#define SRST_PDBUS_NIU3_H       22
#define SRST_PDBUS_HOLD_NIU1_A  23
#define SRST_DBG_NIU_P          24
#define SRST_PDCORE_NIIU_H      25
#define SRST_MUC_NIU            26
#define SRST_DCF_A              29
#define SRST_DCF_P              30
#define SRST_SYSTEM_SRAM_A      31

/* cru_softrst_con2 */
#define SRST_I2C1_P             32
#define SRST_I2C1               33
#define SRST_I2C3_P             34
#define SRST_I2C3               35
#define SRST_I2C4_P             36
#define SRST_I2C4               37
#define SRST_I2C5_P             38
#define SRST_I2C5               39
#define SRST_SPI1_P             40
#define SRST_SPI1               41
#define SRST_MCU_CORE           42
#define SRST_PWM2_P             44
#define SRST_PWM2               45
#define SRST_SPINLOCK_A         46

/* cru_softrst_con3 */
#define SRST_UART0_P            48
#define SRST_UART0              49
#define SRST_UART2_P            50
#define SRST_UART2              51
#define SRST_UART3_P            52
#define SRST_UART3              53
#define SRST_UART4_P            54
#define SRST_UART4              55
#define SRST_UART5_P            56
#define SRST_UART5              57
#define SRST_WDT_P              58
#define SRST_SARADC_P           59
#define SRST_GRF_P              61
#define SRST_TIMER_P            62
#define SRST_MAILBOX_P          63

/* cru_softrst_con4 */
#define SRST_TIMER0             64
#define SRST_TIMER1             65
#define SRST_TIMER2             66
#define SRST_TIMER3             67
#define SRST_TIMER4             68
#define SRST_TIMER5             69
#define SRST_INTMUX_P           70
#define SRST_GPIO1_P            72
#define SRST_GPIO1_DB           73
#define SRST_GPIO2_P            74
#define SRST_GPIO2_DB           75
#define SRST_GPIO3_P            76
#define SRST_GPIO3_DB           77
#define SRST_GPIO4_P            78
#define SRST_GPIO4_DB           79

/* cru_softrst_con5 */
#define SRST_CAN_P              80
#define SRST_CAN                81
#define SRST_DECOM_A            85
#define SRST_DECOM_P            86
#define SRST_DECOM_D            87
#define SRST_PDCRYPTO_NIU_A     88
#define SRST_PDCRYPTO_NIU_H     89
#define SRST_CRYPTO_A           90
#define SRST_CRYPTO_H           91
#define SRST_CRYPTO_CORE        92
#define SRST_CRYPTO_PKA         93
#define SRST_SGRF_P             95

/* cru_softrst_con6 */
#define SRST_PDAUDIO_NIU_H      96
#define SRST_PDAUDIO_NIU_P      97
#define SRST_I2S0_H             98
#define SRST_I2S0_TX_M          99
#define SRST_I2S0_RX_M          100
#define SRST_I2S1_H             101
#define SRST_I2S1_M             102
#define SRST_I2S2_H             103
#define SRST_I2S2_M             104
#define SRST_PDM_H              105
#define SRST_PDM_M              106
#define SRST_AUDPWM_H           107
#define SRST_AUDPWM             108
#define SRST_ACDCDIG_P          109
#define SRST_ACDCDIG            110

/* cru_softrst_con7 */
#define SRST_PDVEPU_NIU_A       112
#define SRST_PDVEPU_NIU_H       113
#define SRST_VENC_A             114
#define SRST_VENC_H             115
#define SRST_VENC_CORE          116
#define SRST_PDVDEC_NIU_A       117
#define SRST_PDVDEC_NIU_H       118
#define SRST_VDEC_A             119
#define SRST_VDEC_H             120
#define SRST_VDEC_CORE          121
#define SRST_VDEC_CA            122
#define SRST_VDEC_HEVC_CA       123
#define SRST_PDJPEG_NIU_A       124
#define SRST_PDJPEG_NIU_H       125
#define SRST_JPEG_A             126
#define SRST_JPEG_H             127

/* cru_softrst_con8 */
#define SRST_PDVO_NIU_A         128
#define SRST_PDVO_NIU_H         129
#define SRST_PDVO_NIU_P         130
#define SRST_RGA_A              131
#define SRST_RGA_H              132
#define SRST_RGA_CORE           133
#define SRST_VOP_A              134
#define SRST_VOP_H              135
#define SRST_VOP_D              136
#define SRST_TXBYTEHS_DSIHOST   137
#define SRST_DSIHOST_P          138
#define SRST_IEP_A              139
#define SRST_IEP_H              140
#define SRST_IEP_CORE           141
#define SRST_ISP_RX_P           142

/* cru_softrst_con9 */
#define SRST_PDVI_NIU_A         144
#define SRST_PDVI_NIU_H         145
#define SRST_PDVI_NIU_P         146
#define SRST_ISP                147
#define SRST_CIF_A              148
#define SRST_CIF_H              149
#define SRST_CIF_D              150
#define SRST_CIF_P              151
#define SRST_CIF_I              152
#define SRST_CIF_RX_P           153
#define SRST_PDISPP_NIU_A       154
#define SRST_PDISPP_NIU_H       155
#define SRST_ISPP_A             156
#define SRST_ISPP_H             157
#define SRST_ISPP               158
#define SRST_CSIHOST_P          159

/* cru_softrst_con10 */
#define SRST_PDPHPMID_NIU_A     160
#define SRST_PDPHPMID_NIU_H     161
#define SRST_PDNVM_NIU_H        163
#define SRST_SDMMC_H            164
#define SRST_SDIO_H             165
#define SRST_EMMC_H             166
#define SRST_SFC_H              167
#define SRST_SFCXIP_H           168
#define SRST_SFC                169
#define SRST_NANDC_H            170
#define SRST_NANDC              171
#define SRST_PDSDMMC_H          173
#define SRST_PDSDIO_H           174

/* cru_softrst_con11 */
#define SRST_PDUSB_NIU_A        176
#define SRST_PDUSB_NIU_H        177
#define SRST_USBHOST_H          178
#define SRST_USBHOST_ARB_H      179
#define SRST_USBHOST_UTMI       180
#define SRST_USBOTG_A           181
#define SRST_USBPHY_OTG_P       182
#define SRST_USBPHY_HOST_P      183
#define SRST_USBPHYPOR_OTG      184
#define SRST_USBPHYPOR_HOST     185
#define SRST_PDGMAC_NIU_A       188
#define SRST_PDGMAC_NIU_P       189
#define SRST_GMAC_A             190

/* cru_softrst_con12 */
#define SRST_DDR_DFICTL_P       193
#define SRST_DDR_MON_P          194
#define SRST_DDR_STANDBY_P      195
#define SRST_DDR_GRF_P          196
#define SRST_DDR_MSCH_P         197
#define SRST_DDR_SPLIT_A        198
#define SRST_DDR_MSCH           199
#define SRST_DDR_DFICTL         202
#define SRST_DDR_STANDBY        203
#define SRST_NPUMCU_NIU         205
#define SRST_DDRPHY_P           206
#define SRST_DDRPHY             207

/* cru_softrst_con13 */
#define SRST_PDNPU_NIU_A        208
#define SRST_PDNPU_NIU_H        209
#define SRST_PDNPU_NIU_P        210
#define SRST_NPU_A              211
#define SRST_NPU_H              212
#define SRST_NPU                213
#define SRST_NPUPVTM_P          214
#define SRST_NPUPVTM            215
#define SRST_NPU_TSADC_P        216
#define SRST_NPU_TSADC          217
#define SRST_NPU_TSADCPHY       218
#define SRST_CIFLITE_A          220
#define SRST_CIFLITE_H          221
#define SRST_CIFLITE_D          222
#define SRST_CIFLITE_RX_P       223

/* cru_softrst_con14 */
#define SRST_TOPNIU_P           224
#define SRST_TOPCRU_P           225
#define SRST_TOPGRF_P           226
#define SRST_CPUEMADET_P        227
#define SRST_CSIPHY0_P          228
#define SRST_CSIPHY1_P          229
#define SRST_DSIPHY_P           230
#define SRST_CPU_TSADC_P        232
#define SRST_CPU_TSADC          233
#define SRST_CPU_TSADCPHY       234
#define SRST_CPUPVTM_P          235
#define SRST_CPUPVTM            236

#endif