/* 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

#define TOP_NR_CLK			250

/* 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

#define BUSMC_NR_CLK			5

/* 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

#define CORE_NR_CLK			6

/* 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

#define FSYS0_NR_CLK			37

/* 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

#define FSYS1_NR_CLK				19

/* 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

#define FSYS2_NR_CLK			8

/* 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

#define PERIC0_NR_CLK			44

/* 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

#define PERIC1_NR_CLK			44

/* 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

#define PERIS_NR_CLK			5

#endif /* _DT_BINDINGS_CLOCK_EXYNOSAUTOV9_H */
