root/include/dt-bindings/clock/imx8mq-clock.h
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright 2016 Freescale Semiconductor, Inc.
 * Copyright 2017 NXP
 */

#ifndef __DT_BINDINGS_CLOCK_IMX8MQ_H
#define __DT_BINDINGS_CLOCK_IMX8MQ_H

#define IMX8MQ_CLK_DUMMY                0
#define IMX8MQ_CLK_32K                  1
#define IMX8MQ_CLK_25M                  2
#define IMX8MQ_CLK_27M                  3
#define IMX8MQ_CLK_EXT1                 4
#define IMX8MQ_CLK_EXT2                 5
#define IMX8MQ_CLK_EXT3                 6
#define IMX8MQ_CLK_EXT4                 7

/* ANAMIX PLL clocks */
/* FRAC PLLs */
/* ARM PLL */
#define IMX8MQ_ARM_PLL_REF_SEL          8
#define IMX8MQ_ARM_PLL_REF_DIV          9
#define IMX8MQ_ARM_PLL                  10
#define IMX8MQ_ARM_PLL_BYPASS           11
#define IMX8MQ_ARM_PLL_OUT              12

/* GPU PLL */
#define IMX8MQ_GPU_PLL_REF_SEL          13
#define IMX8MQ_GPU_PLL_REF_DIV          14
#define IMX8MQ_GPU_PLL                  15
#define IMX8MQ_GPU_PLL_BYPASS           16
#define IMX8MQ_GPU_PLL_OUT              17

/* VPU PLL */
#define IMX8MQ_VPU_PLL_REF_SEL          18
#define IMX8MQ_VPU_PLL_REF_DIV          19
#define IMX8MQ_VPU_PLL                  20
#define IMX8MQ_VPU_PLL_BYPASS           21
#define IMX8MQ_VPU_PLL_OUT              22

/* AUDIO PLL1 */
#define IMX8MQ_AUDIO_PLL1_REF_SEL       23
#define IMX8MQ_AUDIO_PLL1_REF_DIV       24
#define IMX8MQ_AUDIO_PLL1               25
#define IMX8MQ_AUDIO_PLL1_BYPASS        26
#define IMX8MQ_AUDIO_PLL1_OUT           27

/* AUDIO PLL2 */
#define IMX8MQ_AUDIO_PLL2_REF_SEL       28
#define IMX8MQ_AUDIO_PLL2_REF_DIV       29
#define IMX8MQ_AUDIO_PLL2               30
#define IMX8MQ_AUDIO_PLL2_BYPASS        31
#define IMX8MQ_AUDIO_PLL2_OUT           32

/* VIDEO PLL1 */
#define IMX8MQ_VIDEO_PLL1_REF_SEL       33
#define IMX8MQ_VIDEO_PLL1_REF_DIV       34
#define IMX8MQ_VIDEO_PLL1               35
#define IMX8MQ_VIDEO_PLL1_BYPASS        36
#define IMX8MQ_VIDEO_PLL1_OUT           37

/* SYS1 PLL */
#define IMX8MQ_SYS1_PLL1_REF_SEL        38
#define IMX8MQ_SYS1_PLL1_REF_DIV        39
#define IMX8MQ_SYS1_PLL1                40
#define IMX8MQ_SYS1_PLL1_OUT            41
#define IMX8MQ_SYS1_PLL1_OUT_DIV        42
#define IMX8MQ_SYS1_PLL2                43
#define IMX8MQ_SYS1_PLL2_DIV            44
#define IMX8MQ_SYS1_PLL2_OUT            45

/* SYS2 PLL */
#define IMX8MQ_SYS2_PLL1_REF_SEL        46
#define IMX8MQ_SYS2_PLL1_REF_DIV        47
#define IMX8MQ_SYS2_PLL1                48
#define IMX8MQ_SYS2_PLL1_OUT            49
#define IMX8MQ_SYS2_PLL1_OUT_DIV        50
#define IMX8MQ_SYS2_PLL2                51
#define IMX8MQ_SYS2_PLL2_DIV            52
#define IMX8MQ_SYS2_PLL2_OUT            53

/* SYS3 PLL */
#define IMX8MQ_SYS3_PLL1_REF_SEL        54
#define IMX8MQ_SYS3_PLL1_REF_DIV        55
#define IMX8MQ_SYS3_PLL1                56
#define IMX8MQ_SYS3_PLL1_OUT            57
#define IMX8MQ_SYS3_PLL1_OUT_DIV        58
#define IMX8MQ_SYS3_PLL2                59
#define IMX8MQ_SYS3_PLL2_DIV            60
#define IMX8MQ_SYS3_PLL2_OUT            61

/* DRAM PLL */
#define IMX8MQ_DRAM_PLL1_REF_SEL        62
#define IMX8MQ_DRAM_PLL1_REF_DIV        63
#define IMX8MQ_DRAM_PLL1                64
#define IMX8MQ_DRAM_PLL1_OUT            65
#define IMX8MQ_DRAM_PLL1_OUT_DIV        66
#define IMX8MQ_DRAM_PLL2                67
#define IMX8MQ_DRAM_PLL2_DIV            68
#define IMX8MQ_DRAM_PLL2_OUT            69

/* SYS PLL DIV */
#define IMX8MQ_SYS1_PLL_40M             70
#define IMX8MQ_SYS1_PLL_80M             71
#define IMX8MQ_SYS1_PLL_100M            72
#define IMX8MQ_SYS1_PLL_133M            73
#define IMX8MQ_SYS1_PLL_160M            74
#define IMX8MQ_SYS1_PLL_200M            75
#define IMX8MQ_SYS1_PLL_266M            76
#define IMX8MQ_SYS1_PLL_400M            77
#define IMX8MQ_SYS1_PLL_800M            78

#define IMX8MQ_SYS2_PLL_50M             79
#define IMX8MQ_SYS2_PLL_100M            80
#define IMX8MQ_SYS2_PLL_125M            81
#define IMX8MQ_SYS2_PLL_166M            82
#define IMX8MQ_SYS2_PLL_200M            83
#define IMX8MQ_SYS2_PLL_250M            84
#define IMX8MQ_SYS2_PLL_333M            85
#define IMX8MQ_SYS2_PLL_500M            86
#define IMX8MQ_SYS2_PLL_1000M           87

/* CCM ROOT clocks */
/* A53 */
#define IMX8MQ_CLK_A53_SRC              88
#define IMX8MQ_CLK_A53_CG               89
#define IMX8MQ_CLK_A53_DIV              90
/* M4 */
#define IMX8MQ_CLK_M4_SRC               91
#define IMX8MQ_CLK_M4_CG                92
#define IMX8MQ_CLK_M4_DIV               93
/* VPU */
#define IMX8MQ_CLK_VPU_SRC              94
#define IMX8MQ_CLK_VPU_CG               95
#define IMX8MQ_CLK_VPU_DIV              96
/* GPU CORE */
#define IMX8MQ_CLK_GPU_CORE_SRC         97
#define IMX8MQ_CLK_GPU_CORE_CG          98
#define IMX8MQ_CLK_GPU_CORE_DIV         99
/* GPU SHADER */
#define IMX8MQ_CLK_GPU_SHADER_SRC       100
#define IMX8MQ_CLK_GPU_SHADER_CG        101
#define IMX8MQ_CLK_GPU_SHADER_DIV       102

/* BUS TYPE */
/* MAIN AXI */
#define IMX8MQ_CLK_MAIN_AXI             103
/* ENET AXI */
#define IMX8MQ_CLK_ENET_AXI             104
/* NAND_USDHC_BUS */
#define IMX8MQ_CLK_NAND_USDHC_BUS       105
/* VPU BUS */
#define IMX8MQ_CLK_VPU_BUS              106
/* DISP_AXI */
#define IMX8MQ_CLK_DISP_AXI             107
/* DISP APB */
#define IMX8MQ_CLK_DISP_APB             108
/* DISP RTRM */
#define IMX8MQ_CLK_DISP_RTRM            109
/* USB_BUS */
#define IMX8MQ_CLK_USB_BUS              110
/* GPU_AXI */
#define IMX8MQ_CLK_GPU_AXI              111
/* GPU_AHB */
#define IMX8MQ_CLK_GPU_AHB              112
/* NOC */
#define IMX8MQ_CLK_NOC                  113
/* NOC_APB */
#define IMX8MQ_CLK_NOC_APB              115

/* AHB */
#define IMX8MQ_CLK_AHB                  116
/* AUDIO AHB */
#define IMX8MQ_CLK_AUDIO_AHB            117

/* DRAM_ALT */
#define IMX8MQ_CLK_DRAM_ALT             118
/* DRAM APB */
#define IMX8MQ_CLK_DRAM_APB             119
/* VPU_G1 */
#define IMX8MQ_CLK_VPU_G1               120
/* VPU_G2 */
#define IMX8MQ_CLK_VPU_G2               121
/* DISP_DTRC */
#define IMX8MQ_CLK_DISP_DTRC            122
/* DISP_DC8000 */
#define IMX8MQ_CLK_DISP_DC8000          123
/* PCIE_CTRL */
#define IMX8MQ_CLK_PCIE1_CTRL           124
/* PCIE_PHY */
#define IMX8MQ_CLK_PCIE1_PHY            125
/* PCIE_AUX */
#define IMX8MQ_CLK_PCIE1_AUX            126
/* DC_PIXEL */
#define IMX8MQ_CLK_DC_PIXEL             127
/* LCDIF_PIXEL */
#define IMX8MQ_CLK_LCDIF_PIXEL          128
/* SAI1~6 */
#define IMX8MQ_CLK_SAI1                 129

#define IMX8MQ_CLK_SAI2                 130

#define IMX8MQ_CLK_SAI3                 131

#define IMX8MQ_CLK_SAI4                 132

#define IMX8MQ_CLK_SAI5                 133

#define IMX8MQ_CLK_SAI6                 134
/* SPDIF1 */
#define IMX8MQ_CLK_SPDIF1               135
/* SPDIF2 */
#define IMX8MQ_CLK_SPDIF2               136
/* ENET_REF */
#define IMX8MQ_CLK_ENET_REF             137
/* ENET_TIMER */
#define IMX8MQ_CLK_ENET_TIMER           138
/* ENET_PHY */
#define IMX8MQ_CLK_ENET_PHY_REF         139
/* NAND */
#define IMX8MQ_CLK_NAND                 140
/* QSPI */
#define IMX8MQ_CLK_QSPI                 141
/* USDHC1 */
#define IMX8MQ_CLK_USDHC1               142
/* USDHC2 */
#define IMX8MQ_CLK_USDHC2               143
/* I2C1 */
#define IMX8MQ_CLK_I2C1                 144
/* I2C2 */
#define IMX8MQ_CLK_I2C2                 145
/* I2C3 */
#define IMX8MQ_CLK_I2C3                 146
/* I2C4 */
#define IMX8MQ_CLK_I2C4                 147
/* UART1 */
#define IMX8MQ_CLK_UART1                148
/* UART2 */
#define IMX8MQ_CLK_UART2                149
/* UART3 */
#define IMX8MQ_CLK_UART3                150
/* UART4 */
#define IMX8MQ_CLK_UART4                151
/* USB_CORE_REF */
#define IMX8MQ_CLK_USB_CORE_REF         152
/* USB_PHY_REF */
#define IMX8MQ_CLK_USB_PHY_REF          153
/* ECSPI1 */
#define IMX8MQ_CLK_ECSPI1               154
/* ECSPI2 */
#define IMX8MQ_CLK_ECSPI2               155
/* PWM1 */
#define IMX8MQ_CLK_PWM1                 156
/* PWM2 */
#define IMX8MQ_CLK_PWM2                 157
/* PWM3 */
#define IMX8MQ_CLK_PWM3                 158
/* PWM4 */
#define IMX8MQ_CLK_PWM4                 159
/* GPT1 */
#define IMX8MQ_CLK_GPT1                 160
/* WDOG */
#define IMX8MQ_CLK_WDOG                 161
/* WRCLK */
#define IMX8MQ_CLK_WRCLK                162
/* DSI_CORE */
#define IMX8MQ_CLK_DSI_CORE             163
/* DSI_PHY */
#define IMX8MQ_CLK_DSI_PHY_REF          164
/* DSI_DBI */
#define IMX8MQ_CLK_DSI_DBI              165
/*DSI_ESC */
#define IMX8MQ_CLK_DSI_ESC              166
/* CSI1_CORE */
#define IMX8MQ_CLK_CSI1_CORE            167
/* CSI1_PHY */
#define IMX8MQ_CLK_CSI1_PHY_REF         168
/* CSI_ESC */
#define IMX8MQ_CLK_CSI1_ESC             169
/* CSI2_CORE */
#define IMX8MQ_CLK_CSI2_CORE            170
/* CSI2_PHY */
#define IMX8MQ_CLK_CSI2_PHY_REF         171
/* CSI2_ESC */
#define IMX8MQ_CLK_CSI2_ESC             172
/* PCIE2_CTRL */
#define IMX8MQ_CLK_PCIE2_CTRL           173
/* PCIE2_PHY */
#define IMX8MQ_CLK_PCIE2_PHY            174
/* PCIE2_AUX */
#define IMX8MQ_CLK_PCIE2_AUX            175
/* ECSPI3 */
#define IMX8MQ_CLK_ECSPI3               176

/* CCGR clocks */
#define IMX8MQ_CLK_A53_ROOT                     177
#define IMX8MQ_CLK_DRAM_ROOT                    178
#define IMX8MQ_CLK_ECSPI1_ROOT                  179
#define IMX8MQ_CLK_ECSPI2_ROOT                  180
#define IMX8MQ_CLK_ECSPI3_ROOT                  181
#define IMX8MQ_CLK_ENET1_ROOT                   182
#define IMX8MQ_CLK_GPT1_ROOT                    183
#define IMX8MQ_CLK_I2C1_ROOT                    184
#define IMX8MQ_CLK_I2C2_ROOT                    185
#define IMX8MQ_CLK_I2C3_ROOT                    186
#define IMX8MQ_CLK_I2C4_ROOT                    187
#define IMX8MQ_CLK_M4_ROOT                      188
#define IMX8MQ_CLK_PCIE1_ROOT                   189
#define IMX8MQ_CLK_PCIE2_ROOT                   190
#define IMX8MQ_CLK_PWM1_ROOT                    191
#define IMX8MQ_CLK_PWM2_ROOT                    192
#define IMX8MQ_CLK_PWM3_ROOT                    193
#define IMX8MQ_CLK_PWM4_ROOT                    194
#define IMX8MQ_CLK_QSPI_ROOT                    195
#define IMX8MQ_CLK_SAI1_ROOT                    196
#define IMX8MQ_CLK_SAI2_ROOT                    197
#define IMX8MQ_CLK_SAI3_ROOT                    198
#define IMX8MQ_CLK_SAI4_ROOT                    199
#define IMX8MQ_CLK_SAI5_ROOT                    200
#define IMX8MQ_CLK_SAI6_ROOT                    201
#define IMX8MQ_CLK_UART1_ROOT                   202
#define IMX8MQ_CLK_UART2_ROOT                   203
#define IMX8MQ_CLK_UART3_ROOT                   204
#define IMX8MQ_CLK_UART4_ROOT                   205
#define IMX8MQ_CLK_USB1_CTRL_ROOT               206
#define IMX8MQ_CLK_USB2_CTRL_ROOT               207
#define IMX8MQ_CLK_USB1_PHY_ROOT                208
#define IMX8MQ_CLK_USB2_PHY_ROOT                209
#define IMX8MQ_CLK_USDHC1_ROOT                  210
#define IMX8MQ_CLK_USDHC2_ROOT                  211
#define IMX8MQ_CLK_WDOG1_ROOT                   212
#define IMX8MQ_CLK_WDOG2_ROOT                   213
#define IMX8MQ_CLK_WDOG3_ROOT                   214
#define IMX8MQ_CLK_GPU_ROOT                     215
#define IMX8MQ_CLK_HEVC_ROOT                    216
#define IMX8MQ_CLK_AVC_ROOT                     217
#define IMX8MQ_CLK_VP9_ROOT                     218
#define IMX8MQ_CLK_HEVC_INTER_ROOT              219
#define IMX8MQ_CLK_DISP_ROOT                    220
#define IMX8MQ_CLK_HDMI_ROOT                    221
#define IMX8MQ_CLK_HDMI_PHY_ROOT                222
#define IMX8MQ_CLK_VPU_DEC_ROOT                 223
#define IMX8MQ_CLK_CSI1_ROOT                    224
#define IMX8MQ_CLK_CSI2_ROOT                    225
#define IMX8MQ_CLK_RAWNAND_ROOT                 226
#define IMX8MQ_CLK_SDMA1_ROOT                   227
#define IMX8MQ_CLK_SDMA2_ROOT                   228
#define IMX8MQ_CLK_VPU_G1_ROOT                  229
#define IMX8MQ_CLK_VPU_G2_ROOT                  230

/* SCCG PLL GATE */
#define IMX8MQ_SYS1_PLL_OUT                     231
#define IMX8MQ_SYS2_PLL_OUT                     232
#define IMX8MQ_SYS3_PLL_OUT                     233
#define IMX8MQ_DRAM_PLL_OUT                     234

#define IMX8MQ_GPT_3M_CLK                       235

#define IMX8MQ_CLK_IPG_ROOT                     236
#define IMX8MQ_CLK_IPG_AUDIO_ROOT               237
#define IMX8MQ_CLK_SAI1_IPG                     238
#define IMX8MQ_CLK_SAI2_IPG                     239
#define IMX8MQ_CLK_SAI3_IPG                     240
#define IMX8MQ_CLK_SAI4_IPG                     241
#define IMX8MQ_CLK_SAI5_IPG                     242
#define IMX8MQ_CLK_SAI6_IPG                     243

/* DSI AHB/IPG clocks */
/* rxesc clock */
#define IMX8MQ_CLK_DSI_AHB                      244
/* txesc clock */
#define IMX8MQ_CLK_DSI_IPG_DIV                  245

#define IMX8MQ_CLK_TMU_ROOT                     246

/* Display root clocks */
#define IMX8MQ_CLK_DISP_AXI_ROOT                247
#define IMX8MQ_CLK_DISP_APB_ROOT                248
#define IMX8MQ_CLK_DISP_RTRM_ROOT               249

#define IMX8MQ_CLK_OCOTP_ROOT                   250

#define IMX8MQ_CLK_DRAM_ALT_ROOT                251
#define IMX8MQ_CLK_DRAM_CORE                    252

#define IMX8MQ_CLK_MU_ROOT                      253
#define IMX8MQ_VIDEO2_PLL_OUT                   254

#define IMX8MQ_CLK_CLKO2                        255

#define IMX8MQ_CLK_NAND_USDHC_BUS_RAWNAND_CLK   256

#define IMX8MQ_CLK_CLKO1                        257
#define IMX8MQ_CLK_ARM                          258

#define IMX8MQ_CLK_GPIO1_ROOT                   259
#define IMX8MQ_CLK_GPIO2_ROOT                   260
#define IMX8MQ_CLK_GPIO3_ROOT                   261
#define IMX8MQ_CLK_GPIO4_ROOT                   262
#define IMX8MQ_CLK_GPIO5_ROOT                   263

#define IMX8MQ_CLK_SNVS_ROOT                    264
#define IMX8MQ_CLK_GIC                          265

#define IMX8MQ_VIDEO2_PLL1_REF_SEL              266

#define IMX8MQ_CLK_GPU_CORE                     285
#define IMX8MQ_CLK_GPU_SHADER                   286
#define IMX8MQ_CLK_M4_CORE                      287
#define IMX8MQ_CLK_VPU_CORE                     288

#define IMX8MQ_CLK_A53_CORE                     289

#define IMX8MQ_CLK_MON_AUDIO_PLL1_DIV           290
#define IMX8MQ_CLK_MON_AUDIO_PLL2_DIV           291
#define IMX8MQ_CLK_MON_VIDEO_PLL1_DIV           292
#define IMX8MQ_CLK_MON_GPU_PLL_DIV              293
#define IMX8MQ_CLK_MON_VPU_PLL_DIV              294
#define IMX8MQ_CLK_MON_ARM_PLL_DIV              295
#define IMX8MQ_CLK_MON_SYS_PLL1_DIV             296
#define IMX8MQ_CLK_MON_SYS_PLL2_DIV             297
#define IMX8MQ_CLK_MON_SYS_PLL3_DIV             298
#define IMX8MQ_CLK_MON_DRAM_PLL_DIV             299
#define IMX8MQ_CLK_MON_VIDEO_PLL2_DIV           300
#define IMX8MQ_CLK_MON_SEL                      301
#define IMX8MQ_CLK_MON_CLK2_OUT                 302

#define IMX8MQ_CLK_END                          303

#endif /* __DT_BINDINGS_CLOCK_IMX8MQ_H */