root/include/dt-bindings/clock/samsung,exynosautov9.h
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
/*
 * Copyright (c) 2022 Samsung Electronics Co., Ltd.
 * Author: Chanho Park <chanho61.park@samsung.com>
 *
 * Device Tree binding constants for Exynos Auto V9 clock controller.
 */

#ifndef _DT_BINDINGS_CLOCK_EXYNOSAUTOV9_H
#define _DT_BINDINGS_CLOCK_EXYNOSAUTOV9_H

/* CMU_TOP */
#define FOUT_SHARED0_PLL                1
#define FOUT_SHARED1_PLL                2
#define FOUT_SHARED2_PLL                3
#define FOUT_SHARED3_PLL                4
#define FOUT_SHARED4_PLL                5

/* MUX in CMU_TOP */
#define MOUT_SHARED0_PLL                6
#define MOUT_SHARED1_PLL                7
#define MOUT_SHARED2_PLL                8
#define MOUT_SHARED3_PLL                9
#define MOUT_SHARED4_PLL                10
#define MOUT_CLKCMU_CMU_BOOST           11
#define MOUT_CLKCMU_CMU_CMUREF          12
#define MOUT_CLKCMU_ACC_BUS             13
#define MOUT_CLKCMU_APM_BUS             14
#define MOUT_CLKCMU_AUD_CPU             15
#define MOUT_CLKCMU_AUD_BUS             16
#define MOUT_CLKCMU_BUSC_BUS            17
#define MOUT_CLKCMU_BUSMC_BUS           19
#define MOUT_CLKCMU_CORE_BUS            20
#define MOUT_CLKCMU_CPUCL0_SWITCH       21
#define MOUT_CLKCMU_CPUCL0_CLUSTER      22
#define MOUT_CLKCMU_CPUCL1_SWITCH       24
#define MOUT_CLKCMU_CPUCL1_CLUSTER      25
#define MOUT_CLKCMU_DPTX_BUS            26
#define MOUT_CLKCMU_DPTX_DPGTC          27
#define MOUT_CLKCMU_DPUM_BUS            28
#define MOUT_CLKCMU_DPUS0_BUS           29
#define MOUT_CLKCMU_DPUS1_BUS           30
#define MOUT_CLKCMU_FSYS0_BUS           31
#define MOUT_CLKCMU_FSYS0_PCIE          32
#define MOUT_CLKCMU_FSYS1_BUS           33
#define MOUT_CLKCMU_FSYS1_USBDRD        34
#define MOUT_CLKCMU_FSYS1_MMC_CARD      35
#define MOUT_CLKCMU_FSYS2_BUS           36
#define MOUT_CLKCMU_FSYS2_UFS_EMBD      37
#define MOUT_CLKCMU_FSYS2_ETHERNET      38
#define MOUT_CLKCMU_G2D_G2D             39
#define MOUT_CLKCMU_G2D_MSCL            40
#define MOUT_CLKCMU_G3D00_SWITCH        41
#define MOUT_CLKCMU_G3D01_SWITCH        42
#define MOUT_CLKCMU_G3D1_SWITCH         43
#define MOUT_CLKCMU_ISPB_BUS            44
#define MOUT_CLKCMU_MFC_MFC             45
#define MOUT_CLKCMU_MFC_WFD             46
#define MOUT_CLKCMU_MIF_SWITCH          47
#define MOUT_CLKCMU_MIF_BUSP            48
#define MOUT_CLKCMU_NPU_BUS             49
#define MOUT_CLKCMU_PERIC0_BUS          50
#define MOUT_CLKCMU_PERIC0_IP           51
#define MOUT_CLKCMU_PERIC1_BUS          52
#define MOUT_CLKCMU_PERIC1_IP           53
#define MOUT_CLKCMU_PERIS_BUS           54

/* DIV in CMU_TOP */
#define DOUT_SHARED0_DIV3               101
#define DOUT_SHARED0_DIV2               102
#define DOUT_SHARED1_DIV3               103
#define DOUT_SHARED1_DIV2               104
#define DOUT_SHARED1_DIV4               105
#define DOUT_SHARED2_DIV3               106
#define DOUT_SHARED2_DIV2               107
#define DOUT_SHARED2_DIV4               108
#define DOUT_SHARED4_DIV2               109
#define DOUT_SHARED4_DIV4               110
#define DOUT_CLKCMU_CMU_BOOST           111
#define DOUT_CLKCMU_ACC_BUS             112
#define DOUT_CLKCMU_APM_BUS             113
#define DOUT_CLKCMU_AUD_CPU             114
#define DOUT_CLKCMU_AUD_BUS             115
#define DOUT_CLKCMU_BUSC_BUS            116
#define DOUT_CLKCMU_BUSMC_BUS           118
#define DOUT_CLKCMU_CORE_BUS            119
#define DOUT_CLKCMU_CPUCL0_SWITCH       120
#define DOUT_CLKCMU_CPUCL0_CLUSTER      121
#define DOUT_CLKCMU_CPUCL1_SWITCH       123
#define DOUT_CLKCMU_CPUCL1_CLUSTER      124
#define DOUT_CLKCMU_DPTX_BUS            125
#define DOUT_CLKCMU_DPTX_DPGTC          126
#define DOUT_CLKCMU_DPUM_BUS            127
#define DOUT_CLKCMU_DPUS0_BUS           128
#define DOUT_CLKCMU_DPUS1_BUS           129
#define DOUT_CLKCMU_FSYS0_BUS           130
#define DOUT_CLKCMU_FSYS0_PCIE          131
#define DOUT_CLKCMU_FSYS1_BUS           132
#define DOUT_CLKCMU_FSYS1_USBDRD        133
#define DOUT_CLKCMU_FSYS2_BUS           134
#define DOUT_CLKCMU_FSYS2_UFS_EMBD      135
#define DOUT_CLKCMU_FSYS2_ETHERNET      136
#define DOUT_CLKCMU_G2D_G2D             137
#define DOUT_CLKCMU_G2D_MSCL            138
#define DOUT_CLKCMU_G3D00_SWITCH        139
#define DOUT_CLKCMU_G3D01_SWITCH        140
#define DOUT_CLKCMU_G3D1_SWITCH         141
#define DOUT_CLKCMU_ISPB_BUS            142
#define DOUT_CLKCMU_MFC_MFC             143
#define DOUT_CLKCMU_MFC_WFD             144
#define DOUT_CLKCMU_MIF_SWITCH          145
#define DOUT_CLKCMU_MIF_BUSP            146
#define DOUT_CLKCMU_NPU_BUS             147
#define DOUT_CLKCMU_PERIC0_BUS          148
#define DOUT_CLKCMU_PERIC0_IP           149
#define DOUT_CLKCMU_PERIC1_BUS          150
#define DOUT_CLKCMU_PERIC1_IP           151
#define DOUT_CLKCMU_PERIS_BUS           152

/* GAT in CMU_TOP */
#define GOUT_CLKCMU_CMU_BOOST           201
#define GOUT_CLKCMU_CPUCL0_BOOST        202
#define GOUT_CLKCMU_CPUCL1_BOOST        203
#define GOUT_CLKCMU_CORE_BOOST          204
#define GOUT_CLKCMU_BUSC_BOOST          205
#define GOUT_CLKCMU_BUSMC_BOOST         206
#define GOUT_CLKCMU_MIF_BOOST           207
#define GOUT_CLKCMU_ACC_BUS             208
#define GOUT_CLKCMU_APM_BUS             209
#define GOUT_CLKCMU_AUD_CPU             210
#define GOUT_CLKCMU_AUD_BUS             211
#define GOUT_CLKCMU_BUSC_BUS            212
#define GOUT_CLKCMU_BUSMC_BUS           214
#define GOUT_CLKCMU_CORE_BUS            215
#define GOUT_CLKCMU_CPUCL0_SWITCH       216
#define GOUT_CLKCMU_CPUCL0_CLUSTER      217
#define GOUT_CLKCMU_CPUCL1_SWITCH       219
#define GOUT_CLKCMU_CPUCL1_CLUSTER      220
#define GOUT_CLKCMU_DPTX_BUS            221
#define GOUT_CLKCMU_DPTX_DPGTC          222
#define GOUT_CLKCMU_DPUM_BUS            223
#define GOUT_CLKCMU_DPUS0_BUS           224
#define GOUT_CLKCMU_DPUS1_BUS           225
#define GOUT_CLKCMU_FSYS0_BUS           226
#define GOUT_CLKCMU_FSYS0_PCIE          227
#define GOUT_CLKCMU_FSYS1_BUS           228
#define GOUT_CLKCMU_FSYS1_USBDRD        229
#define GOUT_CLKCMU_FSYS1_MMC_CARD      230
#define GOUT_CLKCMU_FSYS2_BUS           231
#define GOUT_CLKCMU_FSYS2_UFS_EMBD      232
#define GOUT_CLKCMU_FSYS2_ETHERNET      233
#define GOUT_CLKCMU_G2D_G2D             234
#define GOUT_CLKCMU_G2D_MSCL            235
#define GOUT_CLKCMU_G3D00_SWITCH        236
#define GOUT_CLKCMU_G3D01_SWITCH        237
#define GOUT_CLKCMU_G3D1_SWITCH         238
#define GOUT_CLKCMU_ISPB_BUS            239
#define GOUT_CLKCMU_MFC_MFC             240
#define GOUT_CLKCMU_MFC_WFD             241
#define GOUT_CLKCMU_MIF_SWITCH          242
#define GOUT_CLKCMU_MIF_BUSP            243
#define GOUT_CLKCMU_NPU_BUS             244
#define GOUT_CLKCMU_PERIC0_BUS          245
#define GOUT_CLKCMU_PERIC0_IP           246
#define GOUT_CLKCMU_PERIC1_BUS          247
#define GOUT_CLKCMU_PERIC1_IP           248
#define GOUT_CLKCMU_PERIS_BUS           249

/* CMU_BUSMC */
#define CLK_MOUT_BUSMC_BUS_USER         1
#define CLK_DOUT_BUSMC_BUSP             2
#define CLK_GOUT_BUSMC_PDMA0_PCLK       3
#define CLK_GOUT_BUSMC_SPDMA_PCLK       4

/* CMU_CORE */
#define CLK_MOUT_CORE_BUS_USER          1
#define CLK_DOUT_CORE_BUSP              2
#define CLK_GOUT_CORE_CCI_CLK           3
#define CLK_GOUT_CORE_CCI_PCLK          4
#define CLK_GOUT_CORE_CMU_CORE_PCLK     5

/* CMU_DPUM */
#define CLK_MOUT_DPUM_BUS_USER          1
#define CLK_DOUT_DPUM_BUSP              2
#define CLK_GOUT_DPUM_ACLK_DECON        3
#define CLK_GOUT_DPUM_ACLK_DMA          4
#define CLK_GOUT_DPUM_ACLK_DPP          5
#define CLK_GOUT_DPUM_SYSMMU_D0_CLK     6
#define CLK_GOUT_DPUM_SYSMMU_D1_CLK     7
#define CLK_GOUT_DPUM_SYSMMU_D2_CLK     8
#define CLK_GOUT_DPUM_SYSMMU_D3_CLK     9

/* CMU_FSYS0 */
#define CLK_MOUT_FSYS0_BUS_USER         1
#define CLK_MOUT_FSYS0_PCIE_USER        2
#define CLK_GOUT_FSYS0_BUS_PCLK         3

#define CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X1_REFCLK          4
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X2_REFCLK          5
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X1_DBI_ACLK        6
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X1_MSTR_ACLK       7
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X1_SLV_ACLK        8
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X2_DBI_ACLK        9
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X2_MSTR_ACLK       10
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X2_SLV_ACLK        11
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X2_PIPE_CLK        12
#define CLK_GOUT_FSYS0_PCIE_GEN3A_2L0_CLK               13
#define CLK_GOUT_FSYS0_PCIE_GEN3B_2L0_CLK               14

#define CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X1_REFCLK          15
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X2_REFCLK          16
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X1_DBI_ACLK        17
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X1_MSTR_ACLK       18
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X1_SLV_ACLK        19
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X2_DBI_ACLK        20
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X2_MSTR_ACLK       21
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X2_SLV_ACLK        22
#define CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X2_PIPE_CLK        23
#define CLK_GOUT_FSYS0_PCIE_GEN3A_2L1_CLK               24
#define CLK_GOUT_FSYS0_PCIE_GEN3B_2L1_CLK               25

#define CLK_GOUT_FSYS0_PCIE_GEN3_4L_X2_REFCLK           26
#define CLK_GOUT_FSYS0_PCIE_GEN3_4L_X4_REFCLK           27
#define CLK_GOUT_FSYS0_PCIE_GEN3_4L_X2_DBI_ACLK         28
#define CLK_GOUT_FSYS0_PCIE_GEN3_4L_X2_MSTR_ACLK        29
#define CLK_GOUT_FSYS0_PCIE_GEN3_4L_X2_SLV_ACLK         30
#define CLK_GOUT_FSYS0_PCIE_GEN3_4L_X4_DBI_ACLK         31
#define CLK_GOUT_FSYS0_PCIE_GEN3_4L_X4_MSTR_ACLK        32
#define CLK_GOUT_FSYS0_PCIE_GEN3_4L_X4_SLV_ACLK         33
#define CLK_GOUT_FSYS0_PCIE_GEN3_4L_X4_PIPE_CLK         34
#define CLK_GOUT_FSYS0_PCIE_GEN3A_4L_CLK                35
#define CLK_GOUT_FSYS0_PCIE_GEN3B_4L_CLK                36

/* CMU_FSYS1 */
#define FOUT_MMC_PLL                            1

#define CLK_MOUT_FSYS1_BUS_USER                 2
#define CLK_MOUT_FSYS1_MMC_PLL                  3
#define CLK_MOUT_FSYS1_MMC_CARD_USER            4
#define CLK_MOUT_FSYS1_USBDRD_USER              5
#define CLK_MOUT_FSYS1_MMC_CARD                 6

#define CLK_DOUT_FSYS1_MMC_CARD                 7

#define CLK_GOUT_FSYS1_PCLK                     8
#define CLK_GOUT_FSYS1_MMC_CARD_SDCLKIN         9
#define CLK_GOUT_FSYS1_MMC_CARD_ACLK            10
#define CLK_GOUT_FSYS1_USB20DRD_0_REFCLK        11
#define CLK_GOUT_FSYS1_USB20DRD_1_REFCLK        12
#define CLK_GOUT_FSYS1_USB30DRD_0_REFCLK        13
#define CLK_GOUT_FSYS1_USB30DRD_1_REFCLK        14
#define CLK_GOUT_FSYS1_USB20_0_ACLK             15
#define CLK_GOUT_FSYS1_USB20_1_ACLK             16
#define CLK_GOUT_FSYS1_USB30_0_ACLK             17
#define CLK_GOUT_FSYS1_USB30_1_ACLK             18

/* CMU_FSYS2 */
#define CLK_MOUT_FSYS2_BUS_USER         1
#define CLK_MOUT_FSYS2_UFS_EMBD_USER    2
#define CLK_MOUT_FSYS2_ETHERNET_USER    3
#define CLK_GOUT_FSYS2_UFS_EMBD0_ACLK   4
#define CLK_GOUT_FSYS2_UFS_EMBD0_UNIPRO 5
#define CLK_GOUT_FSYS2_UFS_EMBD1_ACLK   6
#define CLK_GOUT_FSYS2_UFS_EMBD1_UNIPRO 7

/* CMU_PERIC0 */
#define CLK_MOUT_PERIC0_BUS_USER        1
#define CLK_MOUT_PERIC0_IP_USER         2
#define CLK_MOUT_PERIC0_USI00_USI       3
#define CLK_MOUT_PERIC0_USI01_USI       4
#define CLK_MOUT_PERIC0_USI02_USI       5
#define CLK_MOUT_PERIC0_USI03_USI       6
#define CLK_MOUT_PERIC0_USI04_USI       7
#define CLK_MOUT_PERIC0_USI05_USI       8
#define CLK_MOUT_PERIC0_USI_I2C         9

#define CLK_DOUT_PERIC0_USI00_USI       10
#define CLK_DOUT_PERIC0_USI01_USI       11
#define CLK_DOUT_PERIC0_USI02_USI       12
#define CLK_DOUT_PERIC0_USI03_USI       13
#define CLK_DOUT_PERIC0_USI04_USI       14
#define CLK_DOUT_PERIC0_USI05_USI       15
#define CLK_DOUT_PERIC0_USI_I2C         16

#define CLK_GOUT_PERIC0_IPCLK_0         20
#define CLK_GOUT_PERIC0_IPCLK_1         21
#define CLK_GOUT_PERIC0_IPCLK_2         22
#define CLK_GOUT_PERIC0_IPCLK_3         23
#define CLK_GOUT_PERIC0_IPCLK_4         24
#define CLK_GOUT_PERIC0_IPCLK_5         25
#define CLK_GOUT_PERIC0_IPCLK_6         26
#define CLK_GOUT_PERIC0_IPCLK_7         27
#define CLK_GOUT_PERIC0_IPCLK_8         28
#define CLK_GOUT_PERIC0_IPCLK_9         29
#define CLK_GOUT_PERIC0_IPCLK_10        30
#define CLK_GOUT_PERIC0_IPCLK_11        31
#define CLK_GOUT_PERIC0_PCLK_0          32
#define CLK_GOUT_PERIC0_PCLK_1          33
#define CLK_GOUT_PERIC0_PCLK_2          34
#define CLK_GOUT_PERIC0_PCLK_3          35
#define CLK_GOUT_PERIC0_PCLK_4          36
#define CLK_GOUT_PERIC0_PCLK_5          37
#define CLK_GOUT_PERIC0_PCLK_6          38
#define CLK_GOUT_PERIC0_PCLK_7          39
#define CLK_GOUT_PERIC0_PCLK_8          40
#define CLK_GOUT_PERIC0_PCLK_9          41
#define CLK_GOUT_PERIC0_PCLK_10         42
#define CLK_GOUT_PERIC0_PCLK_11         43

/* CMU_PERIC1 */
#define CLK_MOUT_PERIC1_BUS_USER        1
#define CLK_MOUT_PERIC1_IP_USER         2
#define CLK_MOUT_PERIC1_USI06_USI       3
#define CLK_MOUT_PERIC1_USI07_USI       4
#define CLK_MOUT_PERIC1_USI08_USI       5
#define CLK_MOUT_PERIC1_USI09_USI       6
#define CLK_MOUT_PERIC1_USI10_USI       7
#define CLK_MOUT_PERIC1_USI11_USI       8
#define CLK_MOUT_PERIC1_USI_I2C         9

#define CLK_DOUT_PERIC1_USI06_USI       10
#define CLK_DOUT_PERIC1_USI07_USI       11
#define CLK_DOUT_PERIC1_USI08_USI       12
#define CLK_DOUT_PERIC1_USI09_USI       13
#define CLK_DOUT_PERIC1_USI10_USI       14
#define CLK_DOUT_PERIC1_USI11_USI       15
#define CLK_DOUT_PERIC1_USI_I2C         16

#define CLK_GOUT_PERIC1_IPCLK_0         20
#define CLK_GOUT_PERIC1_IPCLK_1         21
#define CLK_GOUT_PERIC1_IPCLK_2         22
#define CLK_GOUT_PERIC1_IPCLK_3         23
#define CLK_GOUT_PERIC1_IPCLK_4         24
#define CLK_GOUT_PERIC1_IPCLK_5         25
#define CLK_GOUT_PERIC1_IPCLK_6         26
#define CLK_GOUT_PERIC1_IPCLK_7         27
#define CLK_GOUT_PERIC1_IPCLK_8         28
#define CLK_GOUT_PERIC1_IPCLK_9         29
#define CLK_GOUT_PERIC1_IPCLK_10        30
#define CLK_GOUT_PERIC1_IPCLK_11        31
#define CLK_GOUT_PERIC1_PCLK_0          32
#define CLK_GOUT_PERIC1_PCLK_1          33
#define CLK_GOUT_PERIC1_PCLK_2          34
#define CLK_GOUT_PERIC1_PCLK_3          35
#define CLK_GOUT_PERIC1_PCLK_4          36
#define CLK_GOUT_PERIC1_PCLK_5          37
#define CLK_GOUT_PERIC1_PCLK_6          38
#define CLK_GOUT_PERIC1_PCLK_7          39
#define CLK_GOUT_PERIC1_PCLK_8          40
#define CLK_GOUT_PERIC1_PCLK_9          41
#define CLK_GOUT_PERIC1_PCLK_10         42
#define CLK_GOUT_PERIC1_PCLK_11         43

/* CMU_PERIS */
#define CLK_MOUT_PERIS_BUS_USER         1
#define CLK_GOUT_SYSREG_PERIS_PCLK      2
#define CLK_GOUT_WDT_CLUSTER0           3
#define CLK_GOUT_WDT_CLUSTER1           4

#endif /* _DT_BINDINGS_CLOCK_EXYNOSAUTOV9_H */