root/include/dt-bindings/clock/imx8ulp-clock.h
/* SPDX-License-Identifier: GPL-2.0+ OR MIT */
/*
 * Copyright 2021 NXP
 */

#ifndef __DT_BINDINGS_CLOCK_IMX8ULP_H
#define __DT_BINDINGS_CLOCK_IMX8ULP_H

#define IMX8ULP_CLK_DUMMY                       0

/* CGC1 */
#define IMX8ULP_CLK_SPLL2                       5
#define IMX8ULP_CLK_SPLL3                       6
#define IMX8ULP_CLK_A35_SEL                     7
#define IMX8ULP_CLK_A35_DIV                     8
#define IMX8ULP_CLK_SPLL2_PRE_SEL               9
#define IMX8ULP_CLK_SPLL3_PRE_SEL               10
#define IMX8ULP_CLK_SPLL3_PFD0                  11
#define IMX8ULP_CLK_SPLL3_PFD1                  12
#define IMX8ULP_CLK_SPLL3_PFD2                  13
#define IMX8ULP_CLK_SPLL3_PFD3                  14
#define IMX8ULP_CLK_SPLL3_PFD0_DIV1             15
#define IMX8ULP_CLK_SPLL3_PFD0_DIV2             16
#define IMX8ULP_CLK_SPLL3_PFD1_DIV1             17
#define IMX8ULP_CLK_SPLL3_PFD1_DIV2             18
#define IMX8ULP_CLK_SPLL3_PFD2_DIV1             19
#define IMX8ULP_CLK_SPLL3_PFD2_DIV2             20
#define IMX8ULP_CLK_SPLL3_PFD3_DIV1             21
#define IMX8ULP_CLK_SPLL3_PFD3_DIV2             22
#define IMX8ULP_CLK_NIC_SEL                     23
#define IMX8ULP_CLK_NIC_AD_DIVPLAT              24
#define IMX8ULP_CLK_NIC_PER_DIVPLAT             25
#define IMX8ULP_CLK_XBAR_SEL                    26
#define IMX8ULP_CLK_XBAR_AD_DIVPLAT             27
#define IMX8ULP_CLK_XBAR_DIVBUS                 28
#define IMX8ULP_CLK_XBAR_AD_SLOW                29
#define IMX8ULP_CLK_SOSC_DIV1                   30
#define IMX8ULP_CLK_SOSC_DIV2                   31
#define IMX8ULP_CLK_SOSC_DIV3                   32
#define IMX8ULP_CLK_FROSC_DIV1                  33
#define IMX8ULP_CLK_FROSC_DIV2                  34
#define IMX8ULP_CLK_FROSC_DIV3                  35
#define IMX8ULP_CLK_SPLL3_VCODIV                36
#define IMX8ULP_CLK_SPLL3_PFD0_DIV1_GATE        37
#define IMX8ULP_CLK_SPLL3_PFD0_DIV2_GATE        38
#define IMX8ULP_CLK_SPLL3_PFD1_DIV1_GATE        39
#define IMX8ULP_CLK_SPLL3_PFD1_DIV2_GATE        40
#define IMX8ULP_CLK_SPLL3_PFD2_DIV1_GATE        41
#define IMX8ULP_CLK_SPLL3_PFD2_DIV2_GATE        42
#define IMX8ULP_CLK_SPLL3_PFD3_DIV1_GATE        43
#define IMX8ULP_CLK_SPLL3_PFD3_DIV2_GATE        44
#define IMX8ULP_CLK_SOSC_DIV1_GATE              45
#define IMX8ULP_CLK_SOSC_DIV2_GATE              46
#define IMX8ULP_CLK_SOSC_DIV3_GATE              47
#define IMX8ULP_CLK_FROSC_DIV1_GATE             48
#define IMX8ULP_CLK_FROSC_DIV2_GATE             49
#define IMX8ULP_CLK_FROSC_DIV3_GATE             50
#define IMX8ULP_CLK_SAI4_SEL                    51
#define IMX8ULP_CLK_SAI5_SEL                    52
#define IMX8ULP_CLK_AUD_CLK1                    53
#define IMX8ULP_CLK_ARM                         54
#define IMX8ULP_CLK_ENET_TS_SEL                 55

#define IMX8ULP_CLK_CGC1_END                    56

/* CGC2 */
#define IMX8ULP_CLK_PLL4_PRE_SEL        0
#define IMX8ULP_CLK_PLL4                1
#define IMX8ULP_CLK_PLL4_VCODIV         2
#define IMX8ULP_CLK_DDR_SEL             3
#define IMX8ULP_CLK_DDR_DIV             4
#define IMX8ULP_CLK_LPAV_AXI_SEL        5
#define IMX8ULP_CLK_LPAV_AXI_DIV        6
#define IMX8ULP_CLK_LPAV_AHB_DIV        7
#define IMX8ULP_CLK_LPAV_BUS_DIV        8
#define IMX8ULP_CLK_PLL4_PFD0           9
#define IMX8ULP_CLK_PLL4_PFD1           10
#define IMX8ULP_CLK_PLL4_PFD2           11
#define IMX8ULP_CLK_PLL4_PFD3           12
#define IMX8ULP_CLK_PLL4_PFD0_DIV1_GATE 13
#define IMX8ULP_CLK_PLL4_PFD0_DIV2_GATE 14
#define IMX8ULP_CLK_PLL4_PFD1_DIV1_GATE 15
#define IMX8ULP_CLK_PLL4_PFD1_DIV2_GATE 16
#define IMX8ULP_CLK_PLL4_PFD2_DIV1_GATE 17
#define IMX8ULP_CLK_PLL4_PFD2_DIV2_GATE 18
#define IMX8ULP_CLK_PLL4_PFD3_DIV1_GATE 19
#define IMX8ULP_CLK_PLL4_PFD3_DIV2_GATE 20
#define IMX8ULP_CLK_PLL4_PFD0_DIV1      21
#define IMX8ULP_CLK_PLL4_PFD0_DIV2      22
#define IMX8ULP_CLK_PLL4_PFD1_DIV1      23
#define IMX8ULP_CLK_PLL4_PFD1_DIV2      24
#define IMX8ULP_CLK_PLL4_PFD2_DIV1      25
#define IMX8ULP_CLK_PLL4_PFD2_DIV2      26
#define IMX8ULP_CLK_PLL4_PFD3_DIV1      27
#define IMX8ULP_CLK_PLL4_PFD3_DIV2      28
#define IMX8ULP_CLK_CGC2_SOSC_DIV1_GATE 29
#define IMX8ULP_CLK_CGC2_SOSC_DIV2_GATE 30
#define IMX8ULP_CLK_CGC2_SOSC_DIV3_GATE 31
#define IMX8ULP_CLK_CGC2_SOSC_DIV1      32
#define IMX8ULP_CLK_CGC2_SOSC_DIV2      33
#define IMX8ULP_CLK_CGC2_SOSC_DIV3      34
#define IMX8ULP_CLK_CGC2_FROSC_DIV1_GATE        35
#define IMX8ULP_CLK_CGC2_FROSC_DIV2_GATE        36
#define IMX8ULP_CLK_CGC2_FROSC_DIV3_GATE        37
#define IMX8ULP_CLK_CGC2_FROSC_DIV1     38
#define IMX8ULP_CLK_CGC2_FROSC_DIV2     39
#define IMX8ULP_CLK_CGC2_FROSC_DIV3     40
#define IMX8ULP_CLK_AUD_CLK2            41
#define IMX8ULP_CLK_SAI6_SEL            42
#define IMX8ULP_CLK_SAI7_SEL            43
#define IMX8ULP_CLK_SPDIF_SEL           44
#define IMX8ULP_CLK_HIFI_SEL            45
#define IMX8ULP_CLK_HIFI_DIVCORE        46
#define IMX8ULP_CLK_HIFI_DIVPLAT        47
#define IMX8ULP_CLK_DSI_PHY_REF         48

#define IMX8ULP_CLK_CGC2_END            49

/* PCC3 */
#define IMX8ULP_CLK_WDOG3               0
#define IMX8ULP_CLK_WDOG4               1
#define IMX8ULP_CLK_LPIT1               2
#define IMX8ULP_CLK_TPM4                3
#define IMX8ULP_CLK_TPM5                4
#define IMX8ULP_CLK_FLEXIO1             5
#define IMX8ULP_CLK_I3C2                6
#define IMX8ULP_CLK_LPI2C4              7
#define IMX8ULP_CLK_LPI2C5              8
#define IMX8ULP_CLK_LPUART4             9
#define IMX8ULP_CLK_LPUART5             10
#define IMX8ULP_CLK_LPSPI4              11
#define IMX8ULP_CLK_LPSPI5              12
#define IMX8ULP_CLK_DMA1_MP             13
#define IMX8ULP_CLK_DMA1_CH0            14
#define IMX8ULP_CLK_DMA1_CH1            15
#define IMX8ULP_CLK_DMA1_CH2            16
#define IMX8ULP_CLK_DMA1_CH3            17
#define IMX8ULP_CLK_DMA1_CH4            18
#define IMX8ULP_CLK_DMA1_CH5            19
#define IMX8ULP_CLK_DMA1_CH6            20
#define IMX8ULP_CLK_DMA1_CH7            21
#define IMX8ULP_CLK_DMA1_CH8            22
#define IMX8ULP_CLK_DMA1_CH9            23
#define IMX8ULP_CLK_DMA1_CH10           24
#define IMX8ULP_CLK_DMA1_CH11           25
#define IMX8ULP_CLK_DMA1_CH12           26
#define IMX8ULP_CLK_DMA1_CH13           27
#define IMX8ULP_CLK_DMA1_CH14           28
#define IMX8ULP_CLK_DMA1_CH15           29
#define IMX8ULP_CLK_DMA1_CH16           30
#define IMX8ULP_CLK_DMA1_CH17           31
#define IMX8ULP_CLK_DMA1_CH18           32
#define IMX8ULP_CLK_DMA1_CH19           33
#define IMX8ULP_CLK_DMA1_CH20           34
#define IMX8ULP_CLK_DMA1_CH21           35
#define IMX8ULP_CLK_DMA1_CH22           36
#define IMX8ULP_CLK_DMA1_CH23           37
#define IMX8ULP_CLK_DMA1_CH24           38
#define IMX8ULP_CLK_DMA1_CH25           39
#define IMX8ULP_CLK_DMA1_CH26           40
#define IMX8ULP_CLK_DMA1_CH27           41
#define IMX8ULP_CLK_DMA1_CH28           42
#define IMX8ULP_CLK_DMA1_CH29           43
#define IMX8ULP_CLK_DMA1_CH30           44
#define IMX8ULP_CLK_DMA1_CH31           45
#define IMX8ULP_CLK_MU3_A               46
#define IMX8ULP_CLK_MU0_B               47

#define IMX8ULP_CLK_PCC3_END            48

/* PCC4 */
#define IMX8ULP_CLK_FLEXSPI2            0
#define IMX8ULP_CLK_TPM6                1
#define IMX8ULP_CLK_TPM7                2
#define IMX8ULP_CLK_LPI2C6              3
#define IMX8ULP_CLK_LPI2C7              4
#define IMX8ULP_CLK_LPUART6             5
#define IMX8ULP_CLK_LPUART7             6
#define IMX8ULP_CLK_SAI4                7
#define IMX8ULP_CLK_SAI5                8
#define IMX8ULP_CLK_PCTLE               9
#define IMX8ULP_CLK_PCTLF               10
#define IMX8ULP_CLK_USDHC0              11
#define IMX8ULP_CLK_USDHC1              12
#define IMX8ULP_CLK_USDHC2              13
#define IMX8ULP_CLK_USB0                14
#define IMX8ULP_CLK_USB0_PHY            15
#define IMX8ULP_CLK_USB1                16
#define IMX8ULP_CLK_USB1_PHY            17
#define IMX8ULP_CLK_USB_XBAR            18
#define IMX8ULP_CLK_ENET                19
#define IMX8ULP_CLK_SFA1                20
#define IMX8ULP_CLK_RGPIOE              21
#define IMX8ULP_CLK_RGPIOF              22

#define IMX8ULP_CLK_PCC4_END            23

/* PCC5 */
#define IMX8ULP_CLK_TPM8                0
#define IMX8ULP_CLK_SAI6                1
#define IMX8ULP_CLK_SAI7                2
#define IMX8ULP_CLK_SPDIF               3
#define IMX8ULP_CLK_ISI                 4
#define IMX8ULP_CLK_CSI_REGS            5
#define IMX8ULP_CLK_PCTLD               6
#define IMX8ULP_CLK_CSI                 7
#define IMX8ULP_CLK_DSI                 8
#define IMX8ULP_CLK_WDOG5               9
#define IMX8ULP_CLK_EPDC                10
#define IMX8ULP_CLK_PXP                 11
#define IMX8ULP_CLK_SFA2                12
#define IMX8ULP_CLK_GPU2D               13
#define IMX8ULP_CLK_GPU3D               14
#define IMX8ULP_CLK_DC_NANO             15
#define IMX8ULP_CLK_CSI_CLK_UI          16
#define IMX8ULP_CLK_CSI_CLK_ESC         17
#define IMX8ULP_CLK_RGPIOD              18
#define IMX8ULP_CLK_DMA2_MP             19
#define IMX8ULP_CLK_DMA2_CH0            20
#define IMX8ULP_CLK_DMA2_CH1            21
#define IMX8ULP_CLK_DMA2_CH2            22
#define IMX8ULP_CLK_DMA2_CH3            23
#define IMX8ULP_CLK_DMA2_CH4            24
#define IMX8ULP_CLK_DMA2_CH5            25
#define IMX8ULP_CLK_DMA2_CH6            26
#define IMX8ULP_CLK_DMA2_CH7            27
#define IMX8ULP_CLK_DMA2_CH8            28
#define IMX8ULP_CLK_DMA2_CH9            29
#define IMX8ULP_CLK_DMA2_CH10           30
#define IMX8ULP_CLK_DMA2_CH11           31
#define IMX8ULP_CLK_DMA2_CH12           32
#define IMX8ULP_CLK_DMA2_CH13           33
#define IMX8ULP_CLK_DMA2_CH14           34
#define IMX8ULP_CLK_DMA2_CH15           35
#define IMX8ULP_CLK_DMA2_CH16           36
#define IMX8ULP_CLK_DMA2_CH17           37
#define IMX8ULP_CLK_DMA2_CH18           38
#define IMX8ULP_CLK_DMA2_CH19           39
#define IMX8ULP_CLK_DMA2_CH20           40
#define IMX8ULP_CLK_DMA2_CH21           41
#define IMX8ULP_CLK_DMA2_CH22           42
#define IMX8ULP_CLK_DMA2_CH23           43
#define IMX8ULP_CLK_DMA2_CH24           44
#define IMX8ULP_CLK_DMA2_CH25           45
#define IMX8ULP_CLK_DMA2_CH26           46
#define IMX8ULP_CLK_DMA2_CH27           47
#define IMX8ULP_CLK_DMA2_CH28           48
#define IMX8ULP_CLK_DMA2_CH29           49
#define IMX8ULP_CLK_DMA2_CH30           50
#define IMX8ULP_CLK_DMA2_CH31           51
#define IMX8ULP_CLK_MU2_B               52
#define IMX8ULP_CLK_MU3_B               53
#define IMX8ULP_CLK_AVD_SIM             54
#define IMX8ULP_CLK_DSI_TX_ESC          55

#define IMX8ULP_CLK_PCC5_END            56

/* LPAV SIM */
#define IMX8ULP_CLK_SIM_LPAV_HIFI_CORE          0
#define IMX8ULP_CLK_SIM_LPAV_HIFI_PBCLK         1
#define IMX8ULP_CLK_SIM_LPAV_HIFI_PLAT          2

#endif