xref: /arm-trusted-firmware/plat/imx/imx8m/imx8mp/include/gpc_reg.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright 2020 NXP
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef GPC_REG_H
8*91f16700Schasinglulu #define GPC_REG_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #define LPCR_A53_BSC			0x0
11*91f16700Schasinglulu #define LPCR_A53_BSC2			0x180
12*91f16700Schasinglulu #define LPCR_A53_AD			0x4
13*91f16700Schasinglulu #define LPCR_M4				0x8
14*91f16700Schasinglulu #define SLPCR				0x14
15*91f16700Schasinglulu #define MST_CPU_MAPPING			0x18
16*91f16700Schasinglulu #define MLPCR				0x20
17*91f16700Schasinglulu #define PGC_ACK_SEL_A53			0x24
18*91f16700Schasinglulu #define IMR1_CORE0_A53			0x30
19*91f16700Schasinglulu #define IMR1_CORE1_A53			0x44
20*91f16700Schasinglulu #define IMR1_CORE2_A53			0x194
21*91f16700Schasinglulu #define IMR1_CORE3_A53			0x1A8
22*91f16700Schasinglulu #define IMR1_CORE0_M4			0x58
23*91f16700Schasinglulu 
24*91f16700Schasinglulu #define SLT0_CFG			0x200
25*91f16700Schasinglulu #define GPC_PU_PWRHSK			0x190
26*91f16700Schasinglulu #define PGC_CPU_0_1_MAPPING		0x1CC
27*91f16700Schasinglulu #define CPU_PGC_UP_TRG			0xD0
28*91f16700Schasinglulu #define PU_PGC_UP_TRG			0xD8
29*91f16700Schasinglulu #define CPU_PGC_DN_TRG			0xDC
30*91f16700Schasinglulu #define PU_PGC_DN_TRG			0xE4
31*91f16700Schasinglulu #define LPS_CPU1			0xEC
32*91f16700Schasinglulu 
33*91f16700Schasinglulu #define A53_CORE0_PGC			0x800
34*91f16700Schasinglulu #define A53_PLAT_PGC			0x900
35*91f16700Schasinglulu #define PLAT_PGC_PCR			0x900
36*91f16700Schasinglulu #define NOC_PGC_PCR			0xa40
37*91f16700Schasinglulu #define PGC_SCU_TIMING			0x910
38*91f16700Schasinglulu 
39*91f16700Schasinglulu #define MASK_DSM_TRIGGER_A53		BIT(31)
40*91f16700Schasinglulu #define IRQ_SRC_A53_WUP			BIT(30)
41*91f16700Schasinglulu #define IRQ_SRC_A53_WUP_SHIFT		30
42*91f16700Schasinglulu #define IRQ_SRC_C1			BIT(29)
43*91f16700Schasinglulu #define IRQ_SRC_C0			BIT(28)
44*91f16700Schasinglulu #define IRQ_SRC_C3			BIT(23)
45*91f16700Schasinglulu #define IRQ_SRC_C2			BIT(22)
46*91f16700Schasinglulu #define CPU_CLOCK_ON_LPM		BIT(14)
47*91f16700Schasinglulu #define A53_CLK_ON_LPM			BIT(14)
48*91f16700Schasinglulu #define MASTER0_LPM_HSK			BIT(6)
49*91f16700Schasinglulu #define MASTER1_LPM_HSK			BIT(7)
50*91f16700Schasinglulu #define MASTER2_LPM_HSK			BIT(8)
51*91f16700Schasinglulu 
52*91f16700Schasinglulu #define L2PGE				BIT(31)
53*91f16700Schasinglulu #define EN_L2_WFI_PDN			BIT(5)
54*91f16700Schasinglulu #define EN_PLAT_PDN			BIT(4)
55*91f16700Schasinglulu 
56*91f16700Schasinglulu #define SLPCR_EN_DSM			BIT(31)
57*91f16700Schasinglulu #define SLPCR_RBC_EN			BIT(30)
58*91f16700Schasinglulu #define SLPCR_A53_FASTWUP_STOP_MODE	BIT(17)
59*91f16700Schasinglulu #define SLPCR_A53_FASTWUP_WAIT_MODE	BIT(16)
60*91f16700Schasinglulu #define SLPCR_VSTBY			BIT(2)
61*91f16700Schasinglulu #define SLPCR_SBYOS			BIT(1)
62*91f16700Schasinglulu #define SLPCR_BYPASS_PMIC_READY		BIT(0)
63*91f16700Schasinglulu #define SLPCR_RBC_COUNT_SHIFT		24
64*91f16700Schasinglulu #define SLPCR_STBY_COUNT_SHFT		3
65*91f16700Schasinglulu 
66*91f16700Schasinglulu #define A53_DUMMY_PDN_ACK		BIT(30)
67*91f16700Schasinglulu #define A53_DUMMY_PUP_ACK		BIT(31)
68*91f16700Schasinglulu #define A53_PLAT_PDN_ACK		BIT(8)
69*91f16700Schasinglulu #define A53_PLAT_PUP_ACK		BIT(9)
70*91f16700Schasinglulu 
71*91f16700Schasinglulu #define NOC_PDN_SLT_CTRL		BIT(12)
72*91f16700Schasinglulu #define NOC_PUP_SLT_CTRL		BIT(13)
73*91f16700Schasinglulu #define NOC_PGC_PDN_ACK			BIT(12)
74*91f16700Schasinglulu #define NOC_PGC_PUP_ACK			BIT(13)
75*91f16700Schasinglulu 
76*91f16700Schasinglulu #define PLAT_PUP_SLT_CTRL		BIT(9)
77*91f16700Schasinglulu #define PLAT_PDN_SLT_CTRL		BIT(8)
78*91f16700Schasinglulu 
79*91f16700Schasinglulu #define SLT_PLAT_PDN			BIT(8)
80*91f16700Schasinglulu #define SLT_PLAT_PUP			BIT(9)
81*91f16700Schasinglulu 
82*91f16700Schasinglulu #define MASTER1_MAPPING			BIT(1)
83*91f16700Schasinglulu #define MASTER2_MAPPING			BIT(2)
84*91f16700Schasinglulu 
85*91f16700Schasinglulu #define TMR_TCD2_SHIFT			0
86*91f16700Schasinglulu #define TMC_TMR_SHIFT			10
87*91f16700Schasinglulu #define TRC1_TMC_SHIFT			20
88*91f16700Schasinglulu 
89*91f16700Schasinglulu #define MIPI_PHY1_PWR_REQ		BIT(0)
90*91f16700Schasinglulu #define PCIE_PHY_PWR_REQ		BIT(1)
91*91f16700Schasinglulu #define USB1_PHY_PWR_REQ		BIT(2)
92*91f16700Schasinglulu #define USB2_PHY_PWR_REQ		BIT(3)
93*91f16700Schasinglulu #define MLMIX_PWR_REQ			BIT(4)
94*91f16700Schasinglulu #define AUDIOMIX_PWR_REQ		BIT(5)
95*91f16700Schasinglulu #define GPU2D_PWR_REQ			BIT(6)
96*91f16700Schasinglulu #define GPUMIX_PWR_REQ			BIT(7)
97*91f16700Schasinglulu #define VPUMIX_PWR_REQ			BIT(8)
98*91f16700Schasinglulu #define GPU3D_PWR_REQ			BIT(9)
99*91f16700Schasinglulu #define MEDIAMIX_PWR_REQ		BIT(10)
100*91f16700Schasinglulu #define VPU_G1_PWR_REQ			BIT(11)
101*91f16700Schasinglulu #define VPU_G2_PWR_REQ			BIT(12)
102*91f16700Schasinglulu #define VPU_H1_PWR_REQ			BIT(13)
103*91f16700Schasinglulu #define HDMIMIX_PWR_REQ			BIT(14)
104*91f16700Schasinglulu #define HDMI_PHY_PWR_REQ		BIT(15)
105*91f16700Schasinglulu #define MIPI_PHY2_PWR_REQ		BIT(16)
106*91f16700Schasinglulu #define HSIOMIX_PWR_REQ			BIT(17)
107*91f16700Schasinglulu #define MEDIAMIX_ISPDWP_PWR_REQ		BIT(18)
108*91f16700Schasinglulu #define DDRMIX_PWR_REQ			BIT(19)
109*91f16700Schasinglulu 
110*91f16700Schasinglulu #define AUDIOMIX_ADB400_SYNC		(BIT(4) | BIT(15))
111*91f16700Schasinglulu #define MLMIX_ADB400_SYNC		(BIT(7) | BIT(8))
112*91f16700Schasinglulu #define GPUMIX_ADB400_SYNC		BIT(9)
113*91f16700Schasinglulu #define VPUMIX_ADB400_SYNC		BIT(10)
114*91f16700Schasinglulu #define DDRMIX_ADB400_SYNC		BIT(11)
115*91f16700Schasinglulu #define HSIOMIX_ADB400_SYNC		BIT(12)
116*91f16700Schasinglulu #define HDMIMIX_ADB400_SYNC		BIT(13)
117*91f16700Schasinglulu #define MEDIAMIX_ADB400_SYNC		BIT(14)
118*91f16700Schasinglulu 
119*91f16700Schasinglulu #define AUDIOMIX_ADB400_ACK		(BIT(20) | BIT(31))
120*91f16700Schasinglulu #define MLMIX_ADB400_ACK		(BIT(23) | BIT(24))
121*91f16700Schasinglulu #define GPUMIX_ADB400_ACK		BIT(25)
122*91f16700Schasinglulu #define VPUMIX_ADB400_ACK		BIT(26)
123*91f16700Schasinglulu #define DDRMIX_ADB400_ACK		BIT(27)
124*91f16700Schasinglulu #define HSIOMIX_ADB400_ACK		BIT(28)
125*91f16700Schasinglulu #define HDMIMIX_ADB400_ACK		BIT(29)
126*91f16700Schasinglulu #define MEDIAMIX_ADB400_ACK		BIT(30)
127*91f16700Schasinglulu 
128*91f16700Schasinglulu #define MIPI_PHY1_PGC			0xb00
129*91f16700Schasinglulu #define PCIE_PHY_PGC			0xb40
130*91f16700Schasinglulu #define USB1_PHY_PGC			0xb80
131*91f16700Schasinglulu #define USB2_PHY_PGC			0xbc0
132*91f16700Schasinglulu #define MLMIX_PGC			0xc00
133*91f16700Schasinglulu #define AUDIOMIX_PGC			0xc40
134*91f16700Schasinglulu #define GPU2D_PGC			0xc80
135*91f16700Schasinglulu #define GPUMIX_PGC			0xcc0
136*91f16700Schasinglulu #define VPUMIX_PGC			0xd00
137*91f16700Schasinglulu #define GPU3D_PGC			0xd40
138*91f16700Schasinglulu #define MEDIAMIX_PGC			0xd80
139*91f16700Schasinglulu #define VPU_G1_PGC			0xdc0
140*91f16700Schasinglulu #define VPU_G2_PGC			0xe00
141*91f16700Schasinglulu #define VPU_H1_PGC			0xe40
142*91f16700Schasinglulu #define HDMIMIX_PGC			0xe80
143*91f16700Schasinglulu #define HDMI_PHY_PGC			0xec0
144*91f16700Schasinglulu #define MIPI_PHY2_PGC			0xf00
145*91f16700Schasinglulu #define HSIOMIX_PGC			0xf40
146*91f16700Schasinglulu #define MEDIAMIX_ISPDWP_PGC		0xf80
147*91f16700Schasinglulu #define DDRMIX_PGC			0xfc0
148*91f16700Schasinglulu 
149*91f16700Schasinglulu #define IRQ_IMR_NUM			U(5)
150*91f16700Schasinglulu 
151*91f16700Schasinglulu #endif /* GPC_REG_H */
152