xref: /rk3399_ARM-atf/include/drivers/nxp/clk/s32cc/s32cc-clk-ids.h (revision e4462dae81d0674eaf07ad8fa61b25b28a209d0b)
1086ee20fSGhennadi Procopciuc /* SPDX-License-Identifier: BSD-3-Clause */
2086ee20fSGhennadi Procopciuc /*
3086ee20fSGhennadi Procopciuc  * Copyright 2024 NXP
4086ee20fSGhennadi Procopciuc  */
5086ee20fSGhennadi Procopciuc #ifndef S32CC_CLK_IDS_H
6086ee20fSGhennadi Procopciuc #define S32CC_CLK_IDS_H
7086ee20fSGhennadi Procopciuc 
8086ee20fSGhennadi Procopciuc #include <stdint.h>
9086ee20fSGhennadi Procopciuc #include <lib/utils_def.h>
10086ee20fSGhennadi Procopciuc 
11086ee20fSGhennadi Procopciuc /**
12086ee20fSGhennadi Procopciuc  * Clock ID encoding:
13086ee20fSGhennadi Procopciuc  *     31:30 bits = Type of the clock
14086ee20fSGhennadi Procopciuc  *     29:0  bits = Clock ID within the clock category
15086ee20fSGhennadi Procopciuc  */
16086ee20fSGhennadi Procopciuc #define S32CC_CLK_ID_MASK	GENMASK_64(29U, 0U)
17086ee20fSGhennadi Procopciuc #define S32CC_CLK_TYPE_MASK	GENMASK_64(31U, 30U)
18086ee20fSGhennadi Procopciuc #define S32CC_CLK_ID(ID)	(((unsigned long)(ID)) & S32CC_CLK_ID_MASK)
19086ee20fSGhennadi Procopciuc #define S32CC_CLK_TYPE(ID)	(((unsigned long)(ID)) & S32CC_CLK_TYPE_MASK)
20086ee20fSGhennadi Procopciuc #define S32CC_CLK(TAG, ID)	(S32CC_CLK_ID(ID) | (S32CC_CLK_TYPE((TAG) << 30U)))
21086ee20fSGhennadi Procopciuc #define S32CC_HW_CLK(ID)	S32CC_CLK(0UL, U(ID))
22086ee20fSGhennadi Procopciuc #define S32CC_SW_CLK(SUB, ID)	S32CC_CLK(2UL | ((SUB) & 1UL), U(ID))
23086ee20fSGhennadi Procopciuc 
24086ee20fSGhennadi Procopciuc /* SW clocks subcategories */
25086ee20fSGhennadi Procopciuc #define S32CC_ARCH_CLK(ID)	S32CC_SW_CLK(0UL, ID)
26086ee20fSGhennadi Procopciuc #define S32CC_PLAT_CLK(ID)	S32CC_SW_CLK(1UL, ID)
27086ee20fSGhennadi Procopciuc 
28086ee20fSGhennadi Procopciuc /* IDs for clock selectors listed in S32CC Reference Manuals  */
29086ee20fSGhennadi Procopciuc #define S32CC_CLK_FIRC				S32CC_HW_CLK(0)
30086ee20fSGhennadi Procopciuc #define S32CC_CLK_SIRC				S32CC_HW_CLK(1)
31086ee20fSGhennadi Procopciuc #define S32CC_CLK_FXOSC				S32CC_HW_CLK(2)
32086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_PHI0			S32CC_HW_CLK(4)
33086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_PHI1			S32CC_HW_CLK(5)
34086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_PHI2			S32CC_HW_CLK(6)
35086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_PHI3			S32CC_HW_CLK(7)
36086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_PHI4			S32CC_HW_CLK(8)
37086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_PHI5			S32CC_HW_CLK(9)
38086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_PHI6			S32CC_HW_CLK(10)
39086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_PHI7			S32CC_HW_CLK(11)
40086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_DFS1			S32CC_HW_CLK(12)
41086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_DFS2			S32CC_HW_CLK(13)
42086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_DFS3			S32CC_HW_CLK(14)
43086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_DFS4			S32CC_HW_CLK(15)
44086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_DFS5			S32CC_HW_CLK(16)
45086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_DFS6			S32CC_HW_CLK(17)
46086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_PHI0		S32CC_HW_CLK(18)
47086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_PHI1		S32CC_HW_CLK(19)
48086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_PHI2		S32CC_HW_CLK(20)
49086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_PHI3		S32CC_HW_CLK(21)
50086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_PHI4		S32CC_HW_CLK(22)
51086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_PHI5		S32CC_HW_CLK(23)
52086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_PHI6		S32CC_HW_CLK(24)
53086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_PHI7		S32CC_HW_CLK(25)
54086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_DFS1		S32CC_HW_CLK(26)
55086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_DFS2		S32CC_HW_CLK(27)
56086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_DFS3		S32CC_HW_CLK(28)
57086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_DFS4		S32CC_HW_CLK(29)
58086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_DFS5		S32CC_HW_CLK(30)
59086ee20fSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_DFS6		S32CC_HW_CLK(31)
60086ee20fSGhennadi Procopciuc #define S32CC_CLK_FTM0_EXT_REF			S32CC_HW_CLK(34)
61086ee20fSGhennadi Procopciuc #define S32CC_CLK_FTM1_EXT_REF			S32CC_HW_CLK(35)
62086ee20fSGhennadi Procopciuc #define S32CC_CLK_DDR_PLL_PHI0			S32CC_HW_CLK(36)
63086ee20fSGhennadi Procopciuc #define S32CC_CLK_GMAC0_EXT_TX			S32CC_HW_CLK(37)
64086ee20fSGhennadi Procopciuc #define S32CC_CLK_GMAC0_EXT_RX			S32CC_HW_CLK(38)
65086ee20fSGhennadi Procopciuc #define S32CC_CLK_GMAC0_EXT_REF			S32CC_HW_CLK(39)
66086ee20fSGhennadi Procopciuc #define S32CC_CLK_SERDES0_LANE0_TX		S32CC_HW_CLK(40)
67086ee20fSGhennadi Procopciuc #define S32CC_CLK_SERDES0_LANE0_CDR		S32CC_HW_CLK(41)
68086ee20fSGhennadi Procopciuc #define S32CC_CLK_GMAC0_EXT_TS			S32CC_HW_CLK(44)
69086ee20fSGhennadi Procopciuc #define S32CC_CLK_GMAC0_REF_DIV			S32CC_HW_CLK(45)
70086ee20fSGhennadi Procopciuc 
71086ee20fSGhennadi Procopciuc /* Software defined clock IDs */
72086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_MUX			S32CC_ARCH_CLK(0)
73086ee20fSGhennadi Procopciuc #define S32CC_CLK_ARM_PLL_VCO			S32CC_ARCH_CLK(1)
74086ee20fSGhennadi Procopciuc 
75086ee20fSGhennadi Procopciuc /* ARM CGM1 clocks */
76086ee20fSGhennadi Procopciuc #define S32CC_CLK_MC_CGM1_MUX0			S32CC_ARCH_CLK(2)
77086ee20fSGhennadi Procopciuc #define S32CC_CLK_A53_CORE			S32CC_ARCH_CLK(3)
78086ee20fSGhennadi Procopciuc #define S32CC_CLK_A53_CORE_DIV2			S32CC_ARCH_CLK(4)
79086ee20fSGhennadi Procopciuc #define S32CC_CLK_A53_CORE_DIV10		S32CC_ARCH_CLK(5)
80086ee20fSGhennadi Procopciuc 
815692f881SGhennadi Procopciuc /* XBAR clock*/
825692f881SGhennadi Procopciuc #define S32CC_CLK_MC_CGM0_MUX0			S32CC_ARCH_CLK(6)
835692f881SGhennadi Procopciuc #define S32CC_CLK_XBAR_2X			S32CC_ARCH_CLK(7)
845692f881SGhennadi Procopciuc #define S32CC_CLK_XBAR				S32CC_ARCH_CLK(8)
855692f881SGhennadi Procopciuc #define S32CC_CLK_XBAR_DIV2			S32CC_ARCH_CLK(9)
865692f881SGhennadi Procopciuc #define S32CC_CLK_XBAR_DIV3			S32CC_ARCH_CLK(10)
875692f881SGhennadi Procopciuc #define S32CC_CLK_XBAR_DIV4			S32CC_ARCH_CLK(11)
885692f881SGhennadi Procopciuc #define S32CC_CLK_XBAR_DIV6			S32CC_ARCH_CLK(12)
895692f881SGhennadi Procopciuc 
908653352aSGhennadi Procopciuc /* Periph PLL */
918653352aSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_MUX		S32CC_ARCH_CLK(13)
928653352aSGhennadi Procopciuc #define S32CC_CLK_PERIPH_PLL_VCO		S32CC_ARCH_CLK(14)
938653352aSGhennadi Procopciuc 
94*e4462daeSGhennadi Procopciuc #define S32CC_CLK_MC_CGM0_MUX8			S32CC_ARCH_CLK(15)
95*e4462daeSGhennadi Procopciuc #define S32CC_CLK_LINFLEX_BAUD			S32CC_ARCH_CLK(16)
96*e4462daeSGhennadi Procopciuc #define S32CC_CLK_LINFLEX			S32CC_ARCH_CLK(17)
97*e4462daeSGhennadi Procopciuc 
98086ee20fSGhennadi Procopciuc #endif /* S32CC_CLK_IDS_H */
99