xref: /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-mx5/crm_regs.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * (C) Copyright 2009 Freescale Semiconductor, Inc.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef __ARCH_ARM_MACH_MX51_CRM_REGS_H__
8*4882a593Smuzhiyun #define __ARCH_ARM_MACH_MX51_CRM_REGS_H__
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #define MXC_CCM_BASE	CCM_BASE_ADDR
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun /* DPLL register mapping structure */
13*4882a593Smuzhiyun struct mxc_pll_reg {
14*4882a593Smuzhiyun 	u32 ctrl;
15*4882a593Smuzhiyun 	u32 config;
16*4882a593Smuzhiyun 	u32 op;
17*4882a593Smuzhiyun 	u32 mfd;
18*4882a593Smuzhiyun 	u32 mfn;
19*4882a593Smuzhiyun 	u32 mfn_minus;
20*4882a593Smuzhiyun 	u32 mfn_plus;
21*4882a593Smuzhiyun 	u32 hfs_op;
22*4882a593Smuzhiyun 	u32 hfs_mfd;
23*4882a593Smuzhiyun 	u32 hfs_mfn;
24*4882a593Smuzhiyun 	u32 mfn_togc;
25*4882a593Smuzhiyun 	u32 destat;
26*4882a593Smuzhiyun };
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun /* Register maping of CCM*/
29*4882a593Smuzhiyun struct mxc_ccm_reg {
30*4882a593Smuzhiyun 	u32 ccr;	/* 0x0000 */
31*4882a593Smuzhiyun 	u32 ccdr;
32*4882a593Smuzhiyun 	u32 csr;
33*4882a593Smuzhiyun 	u32 ccsr;
34*4882a593Smuzhiyun 	u32 cacrr;	/* 0x0010*/
35*4882a593Smuzhiyun 	u32 cbcdr;
36*4882a593Smuzhiyun 	u32 cbcmr;
37*4882a593Smuzhiyun 	u32 cscmr1;
38*4882a593Smuzhiyun 	u32 cscmr2;	/* 0x0020 */
39*4882a593Smuzhiyun 	u32 cscdr1;
40*4882a593Smuzhiyun 	u32 cs1cdr;
41*4882a593Smuzhiyun 	u32 cs2cdr;
42*4882a593Smuzhiyun 	u32 cdcdr;	/* 0x0030 */
43*4882a593Smuzhiyun 	u32 chsccdr;
44*4882a593Smuzhiyun 	u32 cscdr2;
45*4882a593Smuzhiyun 	u32 cscdr3;
46*4882a593Smuzhiyun 	u32 cscdr4;	/* 0x0040 */
47*4882a593Smuzhiyun 	u32 cwdr;
48*4882a593Smuzhiyun 	u32 cdhipr;
49*4882a593Smuzhiyun 	u32 cdcr;
50*4882a593Smuzhiyun 	u32 ctor;	/* 0x0050 */
51*4882a593Smuzhiyun 	u32 clpcr;
52*4882a593Smuzhiyun 	u32 cisr;
53*4882a593Smuzhiyun 	u32 cimr;
54*4882a593Smuzhiyun 	u32 ccosr;	/* 0x0060 */
55*4882a593Smuzhiyun 	u32 cgpr;
56*4882a593Smuzhiyun 	u32 CCGR0;
57*4882a593Smuzhiyun 	u32 CCGR1;
58*4882a593Smuzhiyun 	u32 CCGR2;	/* 0x0070 */
59*4882a593Smuzhiyun 	u32 CCGR3;
60*4882a593Smuzhiyun 	u32 CCGR4;
61*4882a593Smuzhiyun 	u32 CCGR5;
62*4882a593Smuzhiyun 	u32 CCGR6;	/* 0x0080 */
63*4882a593Smuzhiyun #ifdef CONFIG_MX53
64*4882a593Smuzhiyun 	u32 CCGR7;      /* 0x0084 */
65*4882a593Smuzhiyun #endif
66*4882a593Smuzhiyun 	u32 cmeor;
67*4882a593Smuzhiyun };
68*4882a593Smuzhiyun 
69*4882a593Smuzhiyun /* Define the bits in register CCR */
70*4882a593Smuzhiyun #define MXC_CCM_CCR_COSC_EN			(0x1 << 12)
71*4882a593Smuzhiyun #if defined(CONFIG_MX51)
72*4882a593Smuzhiyun #define MXC_CCM_CCR_FPM_MULT			(0x1 << 11)
73*4882a593Smuzhiyun #endif
74*4882a593Smuzhiyun #define MXC_CCM_CCR_CAMP2_EN			(0x1 << 10)
75*4882a593Smuzhiyun #define MXC_CCM_CCR_CAMP1_EN			(0x1 << 9)
76*4882a593Smuzhiyun #if defined(CONFIG_MX51)
77*4882a593Smuzhiyun #define MXC_CCM_CCR_FPM_EN			(0x1 << 8)
78*4882a593Smuzhiyun #endif
79*4882a593Smuzhiyun #define MXC_CCM_CCR_OSCNT_OFFSET		0
80*4882a593Smuzhiyun #define MXC_CCM_CCR_OSCNT_MASK			0xFF
81*4882a593Smuzhiyun #define MXC_CCM_CCR_OSCNT(v)			((v) & 0xFF)
82*4882a593Smuzhiyun #define MXC_CCM_CCR_OSCNT_RD(r)			((r) & 0xFF)
83*4882a593Smuzhiyun 
84*4882a593Smuzhiyun /* Define the bits in register CCSR */
85*4882a593Smuzhiyun #if defined(CONFIG_MX51)
86*4882a593Smuzhiyun #define MXC_CCM_CCSR_LP_APM			(0x1 << 9)
87*4882a593Smuzhiyun #elif defined(CONFIG_MX53)
88*4882a593Smuzhiyun #define MXC_CCM_CCSR_LP_APM			(0x1 << 10)
89*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL4_SW_CLK_SEL		(0x1 << 9)
90*4882a593Smuzhiyun #endif
91*4882a593Smuzhiyun #define MXC_CCM_CCSR_STEP_SEL_OFFSET		7
92*4882a593Smuzhiyun #define MXC_CCM_CCSR_STEP_SEL_MASK		(0x3 << 7)
93*4882a593Smuzhiyun #define MXC_CCM_CCSR_STEP_SEL(v)		(((v) & 0x3) << 7)
94*4882a593Smuzhiyun #define MXC_CCM_CCSR_STEP_SEL_RD(r)		(((r) >> 7) & 0x3)
95*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL2_DIV_PODF_OFFSET	5
96*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL2_DIV_PODF_MASK		(0x3 << 5)
97*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL2_DIV_PODF(v)		(((v) & 0x3) << 5)
98*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL2_DIV_PODF_RD(r)	(((r) >> 5) & 0x3)
99*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL3_DIV_PODF_OFFSET	3
100*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL3_DIV_PODF_MASK		(0x3 << 3)
101*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL3_DIV_PODF(v)		(((v) & 0x3) << 3)
102*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL3_DIV_PODF_RD(r)	(((r) >> 3) & 0x3)
103*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL1_SW_CLK_SEL		(0x1 << 2)
104*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL2_SW_CLK_SEL		(0x1 << 1)
105*4882a593Smuzhiyun #define MXC_CCM_CCSR_PLL3_SW_CLK_SEL		0x1
106*4882a593Smuzhiyun 
107*4882a593Smuzhiyun /* Define the bits in register CACRR */
108*4882a593Smuzhiyun #define MXC_CCM_CACRR_ARM_PODF_OFFSET		0
109*4882a593Smuzhiyun #define MXC_CCM_CACRR_ARM_PODF_MASK		0x7
110*4882a593Smuzhiyun #define MXC_CCM_CACRR_ARM_PODF(v)		((v) & 0x7)
111*4882a593Smuzhiyun #define MXC_CCM_CACRR_ARM_PODF_RD(r)		((r) & 0x7)
112*4882a593Smuzhiyun 
113*4882a593Smuzhiyun /* Define the bits in register CBCDR */
114*4882a593Smuzhiyun #define MXC_CCM_CBCDR_DDR_HIFREQ_SEL		(0x1 << 30)
115*4882a593Smuzhiyun #define MXC_CCM_CBCDR_DDR_PODF_OFFSET		27
116*4882a593Smuzhiyun #define MXC_CCM_CBCDR_DDR_PODF_MASK		(0x7 << 27)
117*4882a593Smuzhiyun #define MXC_CCM_CBCDR_DDR_PODF(v)		(((v) & 0x7) << 27)
118*4882a593Smuzhiyun #define MXC_CCM_CBCDR_DDR_PODF_RD(r)		(((r) >> 27) & 0x7)
119*4882a593Smuzhiyun #define MXC_CCM_CBCDR_EMI_CLK_SEL		(0x1 << 26)
120*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERIPH_CLK_SEL		(0x1 << 25)
121*4882a593Smuzhiyun #define MXC_CCM_CBCDR_EMI_PODF_OFFSET		22
122*4882a593Smuzhiyun #define MXC_CCM_CBCDR_EMI_PODF_MASK		(0x7 << 22)
123*4882a593Smuzhiyun #define MXC_CCM_CBCDR_EMI_PODF(v)		(((v) & 0x7) << 22)
124*4882a593Smuzhiyun #define MXC_CCM_CBCDR_EMI_PODF_RD(r)		(((r) >> 22) & 0x7)
125*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AXI_B_PODF_OFFSET		19
126*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AXI_B_PODF_MASK		(0x7 << 19)
127*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AXI_B_PODF(v)		(((v) & 0x7) << 19)
128*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AXI_B_PODF_RD(r)		(((r) >> 19) & 0x7)
129*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AXI_A_PODF_OFFSET		16
130*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AXI_A_PODF_MASK		(0x7 << 16)
131*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AXI_A_PODF(v)		(((v) & 0x7) << 16)
132*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AXI_A_PODF_RD(r)		(((r) >> 16) & 0x7)
133*4882a593Smuzhiyun #define MXC_CCM_CBCDR_NFC_PODF_OFFSET		13
134*4882a593Smuzhiyun #define MXC_CCM_CBCDR_NFC_PODF_MASK		(0x7 << 13)
135*4882a593Smuzhiyun #define MXC_CCM_CBCDR_NFC_PODF(v)		(((v) & 0x7) << 13)
136*4882a593Smuzhiyun #define MXC_CCM_CBCDR_NFC_PODF_RD(r)		(((r) >> 13) & 0x7)
137*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AHB_PODF_OFFSET		10
138*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AHB_PODF_MASK		(0x7 << 10)
139*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AHB_PODF(v)		(((v) & 0x7) << 10)
140*4882a593Smuzhiyun #define MXC_CCM_CBCDR_AHB_PODF_RD(r)		(((r) >> 10) & 0x7)
141*4882a593Smuzhiyun #define MXC_CCM_CBCDR_IPG_PODF_OFFSET		8
142*4882a593Smuzhiyun #define MXC_CCM_CBCDR_IPG_PODF_MASK		(0x3 << 8)
143*4882a593Smuzhiyun #define MXC_CCM_CBCDR_IPG_PODF(v)		(((v) & 0x3) << 8)
144*4882a593Smuzhiyun #define MXC_CCM_CBCDR_IPG_PODF_RD(r)		(((r) >> 8) & 0x3)
145*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PRED1_OFFSET	6
146*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PRED1_MASK		(0x3 << 6)
147*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PRED1(v)		(((v) & 0x3) << 6)
148*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PRED1_RD(r)	(((r) >> 6) & 0x3)
149*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PRED2_OFFSET	3
150*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PRED2_MASK		(0x7 << 3)
151*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PRED2(v)		(((v) & 0x7) << 3)
152*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PRED2_RD(r)	(((r) >> 3) & 0x7)
153*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PODF_OFFSET	0
154*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PODF_MASK		0x7
155*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PODF(v)		((v) & 0x7)
156*4882a593Smuzhiyun #define MXC_CCM_CBCDR_PERCLK_PODF_RD(r)		((r) & 0x7)
157*4882a593Smuzhiyun 
158*4882a593Smuzhiyun /* Define the bits in register CSCMR1 */
159*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_EXT2_CLK_SEL_OFFSET		30
160*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_EXT2_CLK_SEL_MASK		(0x3 << 30)
161*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_EXT2_CLK_SEL(v)		(((v) & 0x3) << 30)
162*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_EXT2_CLK_SEL_RD(r)		(((r) >> 30) & 0x3)
163*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_EXT1_CLK_SEL_OFFSET		28
164*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_EXT1_CLK_SEL_MASK		(0x3 << 28)
165*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_EXT1_CLK_SEL(v)		(((v) & 0x3) << 28)
166*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_EXT1_CLK_SEL_RD(r)		(((r) >> 28) & 0x3)
167*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_USB_PHY_CLK_SEL			(0x1 << 26)
168*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_UART_CLK_SEL_OFFSET		24
169*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_UART_CLK_SEL_MASK		(0x3 << 24)
170*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_UART_CLK_SEL(v)			(((v) & 0x3) << 24)
171*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_UART_CLK_SEL_RD(r)		(((r) >> 24) & 0x3)
172*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_USBOH3_CLK_SEL_OFFSET		22
173*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_USBOH3_CLK_SEL_MASK		(0x3 << 22)
174*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_USBOH3_CLK_SEL(v)		(((v) & 0x3) << 22)
175*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_USBOH3_CLK_SEL_RD(r)		(((r) >> 22) & 0x3)
176*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_ESDHC1_MSHC1_CLK_SEL_OFFSET	20
177*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_ESDHC1_MSHC1_CLK_SEL_MASK	(0x3 << 20)
178*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_ESDHC1_MSHC1_CLK_SEL(v)		(((v) & 0x3) << 20)
179*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_ESDHC1_MSHC1_CLK_SEL_RD(r)	(((r) >> 20) & 0x3)
180*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_ESDHC3_CLK_SEL			(0x1 << 19)
181*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_ESDHC4_CLK_SEL			(0x1 << 18)
182*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_ESDHC2_MSHC2_CLK_SEL_OFFSET	16
183*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_ESDHC2_MSHC2_CLK_SEL_MASK	(0x3 << 16)
184*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_ESDHC2_MSHC2_CLK_SEL(v)		(((v) & 0x3) << 16)
185*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_ESDHC2_MSHC2_CLK_SEL_RD(r)	(((r) >> 16) & 0x3)
186*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI1_CLK_SEL_OFFSET		14
187*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI1_CLK_SEL_MASK		(0x3 << 14)
188*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI1_CLK_SEL(v)			(((v) & 0x3) << 14)
189*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI1_CLK_SEL_RD(r)		(((r) >> 14) & 0x3)
190*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI2_CLK_SEL_OFFSET		12
191*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI2_CLK_SEL_MASK		(0x3 << 12)
192*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI2_CLK_SEL(v)			(((v) & 0x3) << 12)
193*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI2_CLK_SEL_RD(r)		(((r) >> 12) & 0x3)
194*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI3_CLK_SEL			(0x1 << 11)
195*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_VPU_RCLK_SEL			(0x1 << 10)
196*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_APM_CLK_SEL_OFFSET		8
197*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_APM_CLK_SEL_MASK		(0x3 << 8)
198*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_APM_CLK_SEL(v)		(((v) & 0x3) << 8)
199*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_APM_CLK_SEL_RD(r)		(((r) >> 8) & 0x3)
200*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_TVE_CLK_SEL			(0x1 << 7)
201*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_TVE_EXT_CLK_SEL			(0x1 << 6)
202*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_CSPI_CLK_SEL_OFFSET		4
203*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_CSPI_CLK_SEL_MASK		(0x3 << 4)
204*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_CSPI_CLK_SEL(v)			(((v) & 0x3) << 4)
205*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_CSPI_CLK_SEL_RD(r)		(((r) >> 4) & 0x3)
206*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SPDIF_CLK_SEL_OFFSET		2
207*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SPDIF_CLK_SEL_MASK		(0x3 << 2)
208*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SPDIF_CLK_SEL(v)			(((v) & 0x3) << 2)
209*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SPDIF_CLK_SEL_RD(r)		(((r) >> 2) & 0x3)
210*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_EXT2_COM_CLK_SEL		(0x1 << 1)
211*4882a593Smuzhiyun #define MXC_CCM_CSCMR1_SSI_EXT1_COM_CLK_SEL		0x1
212*4882a593Smuzhiyun 
213*4882a593Smuzhiyun /* Define the bits in register CSCDR2 */
214*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_CSPI_CLK_PRED_OFFSET		25
215*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_CSPI_CLK_PRED_MASK		(0x7 << 25)
216*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_CSPI_CLK_PRED(v)			(((v) & 0x7) << 25)
217*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_CSPI_CLK_PRED_RD(r)		(((r) >> 25) & 0x7)
218*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_CSPI_CLK_PODF_OFFSET		19
219*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_CSPI_CLK_PODF_MASK		(0x3F << 19)
220*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_CSPI_CLK_PODF(v)			(((v) & 0x3F) << 19)
221*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_CSPI_CLK_PODF_RD(r)		(((r) >> 19) & 0x3F)
222*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SIM_CLK_PRED_OFFSET		16
223*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SIM_CLK_PRED_MASK		(0x7 << 16)
224*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SIM_CLK_PRED(v)			(((v) & 0x7) << 16)
225*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SIM_CLK_PRED_RD(r)		(((r) >> 16) & 0x7)
226*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SIM_CLK_PODF_OFFSET		9
227*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SIM_CLK_PODF_MASK		(0x3F << 9)
228*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SIM_CLK_PODF(v)			(((v) & 0x3F) << 9)
229*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SIM_CLK_PODF_RD(r)		(((r) >> 9) & 0x3F)
230*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SLIMBUS_CLK_PRED_OFFSET		6
231*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SLIMBUS_CLK_PRED_MASK		(0x7 << 6)
232*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SLIMBUS_CLK_PRED(v)		(((v) & 0x7) << 6)
233*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SLIMBUS_CLK_PRED_RD(r)		(((r) >> 6) & 0x7)
234*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SLIMBUS_CLK_PODF_OFFSET		0
235*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SLIMBUS_CLK_PODF_MASK		0x3F
236*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SLIMBUS_CLK_PODF(v)		((v) & 0x3F)
237*4882a593Smuzhiyun #define MXC_CCM_CSCDR2_SLIMBUS_CLK_PODF_RD(r)		((r) & 0x3F)
238*4882a593Smuzhiyun 
239*4882a593Smuzhiyun /* Define the bits in register CBCMR */
240*4882a593Smuzhiyun #define MXC_CCM_CBCMR_VPU_AXI_CLK_SEL_OFFSET		14
241*4882a593Smuzhiyun #define MXC_CCM_CBCMR_VPU_AXI_CLK_SEL_MASK		(0x3 << 14)
242*4882a593Smuzhiyun #define MXC_CCM_CBCMR_VPU_AXI_CLK_SEL(v)		(((v) & 0x3) << 14)
243*4882a593Smuzhiyun #define MXC_CCM_CBCMR_VPU_AXI_CLK_SEL_RD(r)		(((r) >> 14) & 0x3)
244*4882a593Smuzhiyun #define MXC_CCM_CBCMR_PERIPH_CLK_SEL_OFFSET		12
245*4882a593Smuzhiyun #define MXC_CCM_CBCMR_PERIPH_CLK_SEL_MASK		(0x3 << 12)
246*4882a593Smuzhiyun #define MXC_CCM_CBCMR_PERIPH_CLK_SEL(v)			(((v) & 0x3) << 12)
247*4882a593Smuzhiyun #define MXC_CCM_CBCMR_PERIPH_CLK_SEL_RD(r)		(((r) >> 12) & 0x3)
248*4882a593Smuzhiyun #define MXC_CCM_CBCMR_DDR_CLK_SEL_OFFSET		10
249*4882a593Smuzhiyun #define MXC_CCM_CBCMR_DDR_CLK_SEL_MASK			(0x3 << 10)
250*4882a593Smuzhiyun #define MXC_CCM_CBCMR_DDR_CLK_SEL(v)			(((v) & 0x3) << 10)
251*4882a593Smuzhiyun #define MXC_CCM_CBCMR_DDR_CLK_SEL_RD(r)			(((r) >> 10) & 0x3)
252*4882a593Smuzhiyun #define MXC_CCM_CBCMR_ARM_AXI_CLK_SEL_OFFSET		8
253*4882a593Smuzhiyun #define MXC_CCM_CBCMR_ARM_AXI_CLK_SEL_MASK		(0x3 << 8)
254*4882a593Smuzhiyun #define MXC_CCM_CBCMR_ARM_AXI_CLK_SEL(v)		(((v) & 0x3) << 8)
255*4882a593Smuzhiyun #define MXC_CCM_CBCMR_ARM_AXI_CLK_SEL_RD(r)		(((r) >> 8) & 0x3)
256*4882a593Smuzhiyun #define MXC_CCM_CBCMR_IPU_HSP_CLK_SEL_OFFSET		6
257*4882a593Smuzhiyun #define MXC_CCM_CBCMR_IPU_HSP_CLK_SEL_MASK		(0x3 << 6)
258*4882a593Smuzhiyun #define MXC_CCM_CBCMR_IPU_HSP_CLK_SEL(v)		(((v) & 0x3) << 6)
259*4882a593Smuzhiyun #define MXC_CCM_CBCMR_IPU_HSP_CLK_SEL_RD(r)		(((r) >> 6) & 0x3)
260*4882a593Smuzhiyun #define MXC_CCM_CBCMR_GPU_CLK_SEL_OFFSET		4
261*4882a593Smuzhiyun #define MXC_CCM_CBCMR_GPU_CLK_SEL_MASK			(0x3 << 4)
262*4882a593Smuzhiyun #define MXC_CCM_CBCMR_GPU_CLK_SEL(v)			(((v) & 0x3) << 4)
263*4882a593Smuzhiyun #define MXC_CCM_CBCMR_GPU_CLK_SEL_RD(r)			(((r) >> 4) & 0x3)
264*4882a593Smuzhiyun #define MXC_CCM_CBCMR_PERCLK_LP_APM_CLK_SEL		(0x1 << 1)
265*4882a593Smuzhiyun #define MXC_CCM_CBCMR_PERCLK_IPG_CLK_SEL		(0x1 << 0)
266*4882a593Smuzhiyun 
267*4882a593Smuzhiyun /* Define the bits in register CSCDR1 */
268*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC2_MSHC2_CLK_PRED_OFFSET	22
269*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC2_MSHC2_CLK_PRED_MASK	(0x7 << 22)
270*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC2_MSHC2_CLK_PRED(v)		(((v) & 0x7) << 22)
271*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC2_MSHC2_CLK_PRED_RD(r)	(((r) >> 22) & 0x7)
272*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC2_MSHC2_CLK_PODF_OFFSET	19
273*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC2_MSHC2_CLK_PODF_MASK	(0x7 << 19)
274*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC2_MSHC2_CLK_PODF(v)		(((v) & 0x7) << 19)
275*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC2_MSHC2_CLK_PODF_RD(r)	(((r) >> 19) & 0x7)
276*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC1_MSHC1_CLK_PRED_OFFSET	16
277*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC1_MSHC1_CLK_PRED_MASK	(0x7 << 16)
278*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC1_MSHC1_CLK_PRED(v)		(((v) & 0x7) << 16)
279*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC1_MSHC1_CLK_PRED_RD(r)	(((r) >> 16) & 0x7)
280*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_PGC_CLK_PODF_OFFSET		14
281*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_PGC_CLK_PODF_MASK		(0x3 << 14)
282*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_PGC_CLK_PODF(v)			(((v) & 0x3) << 14)
283*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_PGC_CLK_PODF_RD(r)		(((r) >> 14) & 0x3)
284*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC1_MSHC1_CLK_PODF_OFFSET	11
285*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC1_MSHC1_CLK_PODF_MASK	(0x7 << 11)
286*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC1_MSHC1_CLK_PODF(v)		(((v) & 0x7) << 11)
287*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_ESDHC1_MSHC1_CLK_PODF_RD(r)	(((r) >> 11) & 0x7)
288*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_USBOH3_CLK_PRED_OFFSET		8
289*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_USBOH3_CLK_PRED_MASK		(0x7 << 8)
290*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_USBOH3_CLK_PRED(v)		(((v) & 0x7) << 8)
291*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_USBOH3_CLK_PRED_RD(r)		(((r) >> 8) & 0x7)
292*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_OFFSET		6
293*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_MASK		(0x3 << 6)
294*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_USBOH3_CLK_PODF(v)		(((v) & 0x3) << 6)
295*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_RD(r)		(((r) >> 6) & 0x3)
296*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_UART_CLK_PRED_OFFSET		3
297*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_UART_CLK_PRED_MASK		(0x7 << 3)
298*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_UART_CLK_PRED(v)			(((v) & 0x7) << 3)
299*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_UART_CLK_PRED_RD(r)		(((r) >> 3) & 0x7)
300*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_UART_CLK_PODF_OFFSET		0
301*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_UART_CLK_PODF_MASK		0x7
302*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_UART_CLK_PODF(v)			((v) & 0x7)
303*4882a593Smuzhiyun #define MXC_CCM_CSCDR1_UART_CLK_PODF_RD(r)		((r) & 0x7)
304*4882a593Smuzhiyun 
305*4882a593Smuzhiyun /* Define the bits in register CCDR */
306*4882a593Smuzhiyun #define MXC_CCM_CCDR_IPU_HS_MASK			(0x1 << 17)
307*4882a593Smuzhiyun 
308*4882a593Smuzhiyun /* Define the bits in register CGPR */
309*4882a593Smuzhiyun #define MXC_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE		(1 << 4)
310*4882a593Smuzhiyun 
311*4882a593Smuzhiyun /* Define the bits in register CCGRx */
312*4882a593Smuzhiyun #define MXC_CCM_CCGR_CG_MASK				0x3
313*4882a593Smuzhiyun #define MXC_CCM_CCGR_CG_OFF				0x0
314*4882a593Smuzhiyun #define MXC_CCM_CCGR_CG_RUN_ON				0x1
315*4882a593Smuzhiyun #define MXC_CCM_CCGR_CG_ON				0x3
316*4882a593Smuzhiyun 
317*4882a593Smuzhiyun #define MXC_CCM_CCGR0_ARM_BUS_OFFSET			0
318*4882a593Smuzhiyun #define MXC_CCM_CCGR0_ARM_BUS(v)			(((v) & 0x3) << 0)
319*4882a593Smuzhiyun #define MXC_CCM_CCGR0_ARM_AXI_OFFSET			2
320*4882a593Smuzhiyun #define MXC_CCM_CCGR0_ARM_AXI(v)			(((v) & 0x3) << 2)
321*4882a593Smuzhiyun #define MXC_CCM_CCGR0_ARM_DEBUG_OFFSET			4
322*4882a593Smuzhiyun #define MXC_CCM_CCGR0_ARM_DEBUG(v)			(((v) & 0x3) << 4)
323*4882a593Smuzhiyun #define MXC_CCM_CCGR0_TZIC_OFFSET			6
324*4882a593Smuzhiyun #define MXC_CCM_CCGR0_TZIC(v)				(((v) & 0x3) << 6)
325*4882a593Smuzhiyun #define MXC_CCM_CCGR0_DAP_OFFSET			8
326*4882a593Smuzhiyun #define MXC_CCM_CCGR0_DAP(v)				(((v) & 0x3) << 8)
327*4882a593Smuzhiyun #define MXC_CCM_CCGR0_TPIU_OFFSET			10
328*4882a593Smuzhiyun #define MXC_CCM_CCGR0_TPIU(v)				(((v) & 0x3) << 10)
329*4882a593Smuzhiyun #define MXC_CCM_CCGR0_CTI2_OFFSET			12
330*4882a593Smuzhiyun #define MXC_CCM_CCGR0_CTI2(v)				(((v) & 0x3) << 12)
331*4882a593Smuzhiyun #define MXC_CCM_CCGR0_CTI3_OFFSET			14
332*4882a593Smuzhiyun #define MXC_CCM_CCGR0_CTI3(v)				(((v) & 0x3) << 14)
333*4882a593Smuzhiyun #define MXC_CCM_CCGR0_AHBMUX1_OFFSET			16
334*4882a593Smuzhiyun #define MXC_CCM_CCGR0_AHBMUX1(v)			(((v) & 0x3) << 16)
335*4882a593Smuzhiyun #define MXC_CCM_CCGR0_AHBMUX2_OFFSET			18
336*4882a593Smuzhiyun #define MXC_CCM_CCGR0_AHBMUX2(v)			(((v) & 0x3) << 18)
337*4882a593Smuzhiyun #define MXC_CCM_CCGR0_ROMCP_OFFSET			20
338*4882a593Smuzhiyun #define MXC_CCM_CCGR0_ROMCP(v)				(((v) & 0x3) << 20)
339*4882a593Smuzhiyun #define MXC_CCM_CCGR0_ROM_OFFSET			22
340*4882a593Smuzhiyun #define MXC_CCM_CCGR0_ROM(v)				(((v) & 0x3) << 22)
341*4882a593Smuzhiyun #define MXC_CCM_CCGR0_AIPS_TZ1_OFFSET			24
342*4882a593Smuzhiyun #define MXC_CCM_CCGR0_AIPS_TZ1(v)			(((v) & 0x3) << 24)
343*4882a593Smuzhiyun #define MXC_CCM_CCGR0_AIPS_TZ2_OFFSET			26
344*4882a593Smuzhiyun #define MXC_CCM_CCGR0_AIPS_TZ2(v)			(((v) & 0x3) << 26)
345*4882a593Smuzhiyun #define MXC_CCM_CCGR0_AHB_MAX_OFFSET			28
346*4882a593Smuzhiyun #define MXC_CCM_CCGR0_AHB_MAX(v)			(((v) & 0x3) << 28)
347*4882a593Smuzhiyun #define MXC_CCM_CCGR0_IIM_OFFSET			30
348*4882a593Smuzhiyun #define MXC_CCM_CCGR0_IIM(v)				(((v) & 0x3) << 30)
349*4882a593Smuzhiyun 
350*4882a593Smuzhiyun #define MXC_CCM_CCGR1_TMAX1_OFFSET			0
351*4882a593Smuzhiyun #define MXC_CCM_CCGR1_TMAX1(v)				(((v) & 0x3) << 0)
352*4882a593Smuzhiyun #define MXC_CCM_CCGR1_TMAX2_OFFSET			2
353*4882a593Smuzhiyun #define MXC_CCM_CCGR1_TMAX2(v)				(((v) & 0x3) << 2)
354*4882a593Smuzhiyun #define MXC_CCM_CCGR1_TMAX3_OFFSET			4
355*4882a593Smuzhiyun #define MXC_CCM_CCGR1_TMAX3(v)				(((v) & 0x3) << 4)
356*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART1_IPG_OFFSET			6
357*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART1_IPG(v)			(((v) & 0x3) << 6)
358*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART1_PER_OFFSET			8
359*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART1_PER(v)			(((v) & 0x3) << 8)
360*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART2_IPG_OFFSET			10
361*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART2_IPG(v)			(((v) & 0x3) << 10)
362*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART2_PER_OFFSET			12
363*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART2_PER(v)			(((v) & 0x3) << 12)
364*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART3_IPG_OFFSET			14
365*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART3_IPG(v)			(((v) & 0x3) << 14)
366*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART3_PER_OFFSET			16
367*4882a593Smuzhiyun #define MXC_CCM_CCGR1_UART3_PER(v)			(((v) & 0x3) << 16)
368*4882a593Smuzhiyun #define MXC_CCM_CCGR1_I2C1_OFFSET			18
369*4882a593Smuzhiyun #define MXC_CCM_CCGR1_I2C1(v)				(((v) & 0x3) << 18)
370*4882a593Smuzhiyun #define MXC_CCM_CCGR1_I2C2_OFFSET			20
371*4882a593Smuzhiyun #define MXC_CCM_CCGR1_I2C2(v)				(((v) & 0x3) << 20)
372*4882a593Smuzhiyun #if defined(CONFIG_MX51)
373*4882a593Smuzhiyun #define MXC_CCM_CCGR1_HSI2C_IPG_OFFSET			22
374*4882a593Smuzhiyun #define MXC_CCM_CCGR1_HSI2C_IPG(v)			(((v) & 0x3) << 22)
375*4882a593Smuzhiyun #define MXC_CCM_CCGR1_HSI2C_SERIAL_OFFSET		24
376*4882a593Smuzhiyun #define MXC_CCM_CCGR1_HSI2C_SERIAL(v)			(((v) & 0x3) << 24)
377*4882a593Smuzhiyun #elif defined(CONFIG_MX53)
378*4882a593Smuzhiyun #define MXC_CCM_CCGR1_I2C3_OFFSET			22
379*4882a593Smuzhiyun #define MXC_CCM_CCGR1_I2C3(v)				(((v) & 0x3) << 22)
380*4882a593Smuzhiyun #endif
381*4882a593Smuzhiyun #define MXC_CCM_CCGR1_FIRI_IPG_OFFSET			26
382*4882a593Smuzhiyun #define MXC_CCM_CCGR1_FIRI_IPG(v)			(((v) & 0x3) << 26)
383*4882a593Smuzhiyun #define MXC_CCM_CCGR1_FIRI_SERIAL_OFFSET		28
384*4882a593Smuzhiyun #define MXC_CCM_CCGR1_FIRI_SERIAL(v)			(((v) & 0x3) << 28)
385*4882a593Smuzhiyun #define MXC_CCM_CCGR1_SCC_OFFSET			30
386*4882a593Smuzhiyun #define MXC_CCM_CCGR1_SCC(v)				(((v) & 0x3) << 30)
387*4882a593Smuzhiyun 
388*4882a593Smuzhiyun #if defined(CONFIG_MX51)
389*4882a593Smuzhiyun #define MXC_CCM_CCGR2_USB_PHY_OFFSET			0
390*4882a593Smuzhiyun #define MXC_CCM_CCGR2_USB_PHY(v)			(((v) & 0x3) << 0)
391*4882a593Smuzhiyun #endif
392*4882a593Smuzhiyun #define MXC_CCM_CCGR2_EPIT1_IPG_OFFSET			2
393*4882a593Smuzhiyun #define MXC_CCM_CCGR2_EPIT1_IPG(v)			(((v) & 0x3) << 2)
394*4882a593Smuzhiyun #define MXC_CCM_CCGR2_EPIT1_HF_OFFSET			4
395*4882a593Smuzhiyun #define MXC_CCM_CCGR2_EPIT1_HF(v)			(((v) & 0x3) << 4)
396*4882a593Smuzhiyun #define MXC_CCM_CCGR2_EPIT2_IPG_OFFSET			6
397*4882a593Smuzhiyun #define MXC_CCM_CCGR2_EPIT2_IPG(v)			(((v) & 0x3) << 6)
398*4882a593Smuzhiyun #define MXC_CCM_CCGR2_EPIT2_HF_OFFSET			8
399*4882a593Smuzhiyun #define MXC_CCM_CCGR2_EPIT2_HF(v)			(((v) & 0x3) << 8)
400*4882a593Smuzhiyun #define MXC_CCM_CCGR2_PWM1_IPG_OFFSET			10
401*4882a593Smuzhiyun #define MXC_CCM_CCGR2_PWM1_IPG(v)			(((v) & 0x3) << 10)
402*4882a593Smuzhiyun #define MXC_CCM_CCGR2_PWM1_HF_OFFSET			12
403*4882a593Smuzhiyun #define MXC_CCM_CCGR2_PWM1_HF(v)			(((v) & 0x3) << 12)
404*4882a593Smuzhiyun #define MXC_CCM_CCGR2_PWM2_IPG_OFFSET			14
405*4882a593Smuzhiyun #define MXC_CCM_CCGR2_PWM2_IPG(v)			(((v) & 0x3) << 14)
406*4882a593Smuzhiyun #define MXC_CCM_CCGR2_PWM2_HF_OFFSET			16
407*4882a593Smuzhiyun #define MXC_CCM_CCGR2_PWM2_HF(v)			(((v) & 0x3) << 16)
408*4882a593Smuzhiyun #define MXC_CCM_CCGR2_GPT_IPG_OFFSET			18
409*4882a593Smuzhiyun #define MXC_CCM_CCGR2_GPT_IPG(v)			(((v) & 0x3) << 18)
410*4882a593Smuzhiyun #define MXC_CCM_CCGR2_GPT_HF_OFFSET			20
411*4882a593Smuzhiyun #define MXC_CCM_CCGR2_GPT_HF(v)				(((v) & 0x3) << 20)
412*4882a593Smuzhiyun #define MXC_CCM_CCGR2_OWIRE_OFFSET			22
413*4882a593Smuzhiyun #define MXC_CCM_CCGR2_OWIRE(v)				(((v) & 0x3) << 22)
414*4882a593Smuzhiyun #define MXC_CCM_CCGR2_FEC_OFFSET			24
415*4882a593Smuzhiyun #define MXC_CCM_CCGR2_FEC(v)				(((v) & 0x3) << 24)
416*4882a593Smuzhiyun #define MXC_CCM_CCGR2_USBOH3_IPG_AHB_OFFSET		26
417*4882a593Smuzhiyun #define MXC_CCM_CCGR2_USBOH3_IPG_AHB(v)			(((v) & 0x3) << 26)
418*4882a593Smuzhiyun #define MXC_CCM_CCGR2_USBOH3_60M_OFFSET			28
419*4882a593Smuzhiyun #define MXC_CCM_CCGR2_USBOH3_60M(v)			(((v) & 0x3) << 28)
420*4882a593Smuzhiyun #define MXC_CCM_CCGR2_TVE_OFFSET			30
421*4882a593Smuzhiyun #define MXC_CCM_CCGR2_TVE(v)				(((v) & 0x3) << 30)
422*4882a593Smuzhiyun 
423*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC1_IPG_OFFSET			0
424*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC1_IPG(v)			(((v) & 0x3) << 0)
425*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC1_PER_OFFSET			2
426*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC1_PER(v)			(((v) & 0x3) << 2)
427*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC2_IPG_OFFSET			4
428*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC2_IPG(v)			(((v) & 0x3) << 4)
429*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC2_PER_OFFSET			6
430*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC2_PER(v)			(((v) & 0x3) << 6)
431*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC3_IPG_OFFSET			8
432*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC3_IPG(v)			(((v) & 0x3) << 8)
433*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC3_PER_OFFSET			10
434*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC3_PER(v)			(((v) & 0x3) << 10)
435*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC4_IPG_OFFSET			12
436*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC4_IPG(v)			(((v) & 0x3) << 12)
437*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC4_PER_OFFSET			14
438*4882a593Smuzhiyun #define MXC_CCM_CCGR3_ESDHC4_PER(v)			(((v) & 0x3) << 14)
439*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI1_IPG_OFFSET			16
440*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI1_IPG(v)			(((v) & 0x3) << 16)
441*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI1_SSI_OFFSET			18
442*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI1_SSI(v)			(((v) & 0x3) << 18)
443*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI2_IPG_OFFSET			20
444*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI2_IPG(v)			(((v) & 0x3) << 20)
445*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI2_SSI_OFFSET			22
446*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI2_SSI(v)			(((v) & 0x3) << 22)
447*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI3_IPG_OFFSET			24
448*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI3_IPG(v)			(((v) & 0x3) << 24)
449*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI3_SSI_OFFSET			26
450*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI3_SSI(v)			(((v) & 0x3) << 26)
451*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI_EXT1_OFFSET			28
452*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI_EXT1(v)			(((v) & 0x3) << 28)
453*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI_EXT2_OFFSET			30
454*4882a593Smuzhiyun #define MXC_CCM_CCGR3_SSI_EXT2(v)			(((v) & 0x3) << 30)
455*4882a593Smuzhiyun 
456*4882a593Smuzhiyun #define MXC_CCM_CCGR4_PATA_OFFSET			0
457*4882a593Smuzhiyun #define MXC_CCM_CCGR4_PATA(v)				(((v) & 0x3) << 0)
458*4882a593Smuzhiyun #if defined(CONFIG_MX51)
459*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SIM_IPG_OFFSET			2
460*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SIM_IPG(v)			(((v) & 0x3) << 2)
461*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SIM_SERIAL_OFFSET			4
462*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SIM_SERIAL(v)			(((v) & 0x3) << 4)
463*4882a593Smuzhiyun #elif defined(CONFIG_MX53)
464*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SATA_OFFSET			2
465*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SATA(v)				(((v) & 0x3) << 2)
466*4882a593Smuzhiyun #define MXC_CCM_CCGR4_CAN2_IPG_OFFSET			6
467*4882a593Smuzhiyun #define MXC_CCM_CCGR4_CAN2_IPG(v)			(((v) & 0x3) << 6)
468*4882a593Smuzhiyun #define MXC_CCM_CCGR4_CAN2_SERIAL_OFFSET		8
469*4882a593Smuzhiyun #define MXC_CCM_CCGR4_CAN2_SERIAL(v)			(((v) & 0x3) << 8)
470*4882a593Smuzhiyun #define MXC_CCM_CCGR4_USB_PHY1_OFFSET			10
471*4882a593Smuzhiyun #define MXC_CCM_CCGR4_USB_PHY1(v)			(((v) & 0x3) << 10)
472*4882a593Smuzhiyun #define MXC_CCM_CCGR4_USB_PHY2_OFFSET			12
473*4882a593Smuzhiyun #define MXC_CCM_CCGR4_USB_PHY2(v)			(((v) & 0x3) << 12)
474*4882a593Smuzhiyun #endif
475*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SAHARA_OFFSET			14
476*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SAHARA(v)				(((v) & 0x3) << 14)
477*4882a593Smuzhiyun #define MXC_CCM_CCGR4_RTIC_OFFSET			16
478*4882a593Smuzhiyun #define MXC_CCM_CCGR4_RTIC(v)				(((v) & 0x3) << 16)
479*4882a593Smuzhiyun #define MXC_CCM_CCGR4_ECSPI1_IPG_OFFSET			18
480*4882a593Smuzhiyun #define MXC_CCM_CCGR4_ECSPI1_IPG(v)			(((v) & 0x3) << 18)
481*4882a593Smuzhiyun #define MXC_CCM_CCGR4_ECSPI1_PER_OFFSET			20
482*4882a593Smuzhiyun #define MXC_CCM_CCGR4_ECSPI1_PER(v)			(((v) & 0x3) << 20)
483*4882a593Smuzhiyun #define MXC_CCM_CCGR4_ECSPI2_IPG_OFFSET			22
484*4882a593Smuzhiyun #define MXC_CCM_CCGR4_ECSPI2_IPG(v)			(((v) & 0x3) << 22)
485*4882a593Smuzhiyun #define MXC_CCM_CCGR4_ECSPI2_PER_OFFSET			24
486*4882a593Smuzhiyun #define MXC_CCM_CCGR4_ECSPI2_PER(v)			(((v) & 0x3) << 24)
487*4882a593Smuzhiyun #define MXC_CCM_CCGR4_CSPI_IPG_OFFSET			26
488*4882a593Smuzhiyun #define MXC_CCM_CCGR4_CSPI_IPG(v)			(((v) & 0x3) << 26)
489*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SRTC_OFFSET			28
490*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SRTC(v)				(((v) & 0x3) << 28)
491*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SDMA_OFFSET			30
492*4882a593Smuzhiyun #define MXC_CCM_CCGR4_SDMA(v)				(((v) & 0x3) << 30)
493*4882a593Smuzhiyun 
494*4882a593Smuzhiyun #define MXC_CCM_CCGR5_SPBA_OFFSET			0
495*4882a593Smuzhiyun #define MXC_CCM_CCGR5_SPBA(v)				(((v) & 0x3) << 0)
496*4882a593Smuzhiyun #define MXC_CCM_CCGR5_GPU_OFFSET			2
497*4882a593Smuzhiyun #define MXC_CCM_CCGR5_GPU(v)				(((v) & 0x3) << 2)
498*4882a593Smuzhiyun #define MXC_CCM_CCGR5_GARB_OFFSET			4
499*4882a593Smuzhiyun #define MXC_CCM_CCGR5_GARB(v)				(((v) & 0x3) << 4)
500*4882a593Smuzhiyun #define MXC_CCM_CCGR5_VPU_OFFSET			6
501*4882a593Smuzhiyun #define MXC_CCM_CCGR5_VPU(v)				(((v) & 0x3) << 6)
502*4882a593Smuzhiyun #define MXC_CCM_CCGR5_VPU_REF_OFFSET			8
503*4882a593Smuzhiyun #define MXC_CCM_CCGR5_VPU_REF(v)			(((v) & 0x3) << 8)
504*4882a593Smuzhiyun #define MXC_CCM_CCGR5_IPU_OFFSET			10
505*4882a593Smuzhiyun #define MXC_CCM_CCGR5_IPU(v)				(((v) & 0x3) << 10)
506*4882a593Smuzhiyun #if defined(CONFIG_MX51)
507*4882a593Smuzhiyun #define MXC_CCM_CCGR5_IPUMUX12_OFFSET			12
508*4882a593Smuzhiyun #define MXC_CCM_CCGR5_IPUMUX12(v)			(((v) & 0x3) << 12)
509*4882a593Smuzhiyun #elif defined(CONFIG_MX53)
510*4882a593Smuzhiyun #define MXC_CCM_CCGR5_IPUMUX1_OFFSET			12
511*4882a593Smuzhiyun #define MXC_CCM_CCGR5_IPUMUX1(v)			(((v) & 0x3) << 12)
512*4882a593Smuzhiyun #endif
513*4882a593Smuzhiyun #define MXC_CCM_CCGR5_EMI_FAST_OFFSET			14
514*4882a593Smuzhiyun #define MXC_CCM_CCGR5_EMI_FAST(v)			(((v) & 0x3) << 14)
515*4882a593Smuzhiyun #define MXC_CCM_CCGR5_EMI_SLOW_OFFSET			16
516*4882a593Smuzhiyun #define MXC_CCM_CCGR5_EMI_SLOW(v)			(((v) & 0x3) << 16)
517*4882a593Smuzhiyun #define MXC_CCM_CCGR5_EMI_INT1_OFFSET			18
518*4882a593Smuzhiyun #define MXC_CCM_CCGR5_EMI_INT1(v)			(((v) & 0x3) << 18)
519*4882a593Smuzhiyun #define MXC_CCM_CCGR5_EMI_ENFC_OFFSET			20
520*4882a593Smuzhiyun #define MXC_CCM_CCGR5_EMI_ENFC(v)			(((v) & 0x3) << 20)
521*4882a593Smuzhiyun #define MXC_CCM_CCGR5_EMI_WRCK_OFFSET			22
522*4882a593Smuzhiyun #define MXC_CCM_CCGR5_EMI_WRCK(v)			(((v) & 0x3) << 22)
523*4882a593Smuzhiyun #define MXC_CCM_CCGR5_GPC_IPG_OFFSET			24
524*4882a593Smuzhiyun #define MXC_CCM_CCGR5_GPC_IPG(v)			(((v) & 0x3) << 24)
525*4882a593Smuzhiyun #define MXC_CCM_CCGR5_SPDIF0_OFFSET			26
526*4882a593Smuzhiyun #define MXC_CCM_CCGR5_SPDIF0(v)				(((v) & 0x3) << 26)
527*4882a593Smuzhiyun #if defined(CONFIG_MX51)
528*4882a593Smuzhiyun #define MXC_CCM_CCGR5_SPDIF1_OFFSET			28
529*4882a593Smuzhiyun #define MXC_CCM_CCGR5_SPDIF1(v)				(((v) & 0x3) << 28)
530*4882a593Smuzhiyun #endif
531*4882a593Smuzhiyun #define MXC_CCM_CCGR5_SPDIF_IPG_OFFSET			30
532*4882a593Smuzhiyun #define MXC_CCM_CCGR5_SPDIF_IPG(v)			(((v) & 0x3) << 30)
533*4882a593Smuzhiyun 
534*4882a593Smuzhiyun #if defined(CONFIG_MX53)
535*4882a593Smuzhiyun #define MXC_CCM_CCGR6_IPUMUX2_OFFSET			0
536*4882a593Smuzhiyun #define MXC_CCM_CCGR6_IPUMUX2(v)			(((v) & 0x3) << 0)
537*4882a593Smuzhiyun #define MXC_CCM_CCGR6_OCRAM_OFFSET			2
538*4882a593Smuzhiyun #define MXC_CCM_CCGR6_OCRAM(v)				(((v) & 0x3) << 2)
539*4882a593Smuzhiyun #endif
540*4882a593Smuzhiyun #define MXC_CCM_CCGR6_CSI_MCLK1_OFFSET			4
541*4882a593Smuzhiyun #define MXC_CCM_CCGR6_CSI_MCLK1(v)			(((v) & 0x3) << 4)
542*4882a593Smuzhiyun #if defined(CONFIG_MX51)
543*4882a593Smuzhiyun #define MXC_CCM_CCGR6_CSI_MCLK2_OFFSET			6
544*4882a593Smuzhiyun #define MXC_CCM_CCGR6_CSI_MCLK2(v)			(((v) & 0x3) << 6)
545*4882a593Smuzhiyun #define MXC_CCM_CCGR6_EMI_GARB_OFFSET			8
546*4882a593Smuzhiyun #define MXC_CCM_CCGR6_EMI_GARB(v)			(((v) & 0x3) << 8)
547*4882a593Smuzhiyun #elif defined(CONFIG_MX53)
548*4882a593Smuzhiyun #define MXC_CCM_CCGR6_EMI_INT2_OFFSET			8
549*4882a593Smuzhiyun #define MXC_CCM_CCGR6_EMI_INT2(v)			(((v) & 0x3) << 8)
550*4882a593Smuzhiyun #endif
551*4882a593Smuzhiyun #define MXC_CCM_CCGR6_IPU_DI0_OFFSET			10
552*4882a593Smuzhiyun #define MXC_CCM_CCGR6_IPU_DI0(v)			(((v) & 0x3) << 10)
553*4882a593Smuzhiyun #define MXC_CCM_CCGR6_IPU_DI1_OFFSET			12
554*4882a593Smuzhiyun #define MXC_CCM_CCGR6_IPU_DI1(v)			(((v) & 0x3) << 12)
555*4882a593Smuzhiyun #define MXC_CCM_CCGR6_GPU2D_OFFSET			14
556*4882a593Smuzhiyun #define MXC_CCM_CCGR6_GPU2D(v)				(((v) & 0x3) << 14)
557*4882a593Smuzhiyun #if defined(CONFIG_MX53)
558*4882a593Smuzhiyun #define MXC_CCM_CCGR6_ESAI_IPG_OFFSET			16
559*4882a593Smuzhiyun #define MXC_CCM_CCGR6_ESAI_IPG(v)			(((v) & 0x3) << 16)
560*4882a593Smuzhiyun #define MXC_CCM_CCGR6_ESAI_ROOT_OFFSET			18
561*4882a593Smuzhiyun #define MXC_CCM_CCGR6_ESAI_ROOT(v)			(((v) & 0x3) << 18)
562*4882a593Smuzhiyun #define MXC_CCM_CCGR6_CAN1_IPG_OFFSET			20
563*4882a593Smuzhiyun #define MXC_CCM_CCGR6_CAN1_IPG(v)			(((v) & 0x3) << 20)
564*4882a593Smuzhiyun #define MXC_CCM_CCGR6_CAN1_SERIAL_OFFSET		22
565*4882a593Smuzhiyun #define MXC_CCM_CCGR6_CAN1_SERIAL(v)			(((v) & 0x3) << 22)
566*4882a593Smuzhiyun #define MXC_CCM_CCGR6_PL301_4X1_OFFSET			24
567*4882a593Smuzhiyun #define MXC_CCM_CCGR6_PL301_4X1(v)			(((v) & 0x3) << 24)
568*4882a593Smuzhiyun #define MXC_CCM_CCGR6_PL301_2X2_OFFSET			26
569*4882a593Smuzhiyun #define MXC_CCM_CCGR6_PL301_2X2(v)			(((v) & 0x3) << 26)
570*4882a593Smuzhiyun #define MXC_CCM_CCGR6_LDB_DI0_OFFSET			28
571*4882a593Smuzhiyun #define MXC_CCM_CCGR6_LDB_DI0(v)			(((v) & 0x3) << 28)
572*4882a593Smuzhiyun #define MXC_CCM_CCGR6_LDB_DI1_OFFSET			30
573*4882a593Smuzhiyun #define MXC_CCM_CCGR6_LDB_DI1(v)			(((v) & 0x3) << 30)
574*4882a593Smuzhiyun 
575*4882a593Smuzhiyun #define MXC_CCM_CCGR7_ASRC_IPG_OFFSET			0
576*4882a593Smuzhiyun #define MXC_CCM_CCGR7_ASRC_IPG(v)			(((v) & 0x3) << 0)
577*4882a593Smuzhiyun #define MXC_CCM_CCGR7_ASRC_ASRCK_OFFSET			2
578*4882a593Smuzhiyun #define MXC_CCM_CCGR7_ASRC_ASRCK(v)			(((v) & 0x3) << 2)
579*4882a593Smuzhiyun #define MXC_CCM_CCGR7_MLB_OFFSET			4
580*4882a593Smuzhiyun #define MXC_CCM_CCGR7_MLB(v)				(((v) & 0x3) << 4)
581*4882a593Smuzhiyun #define MXC_CCM_CCGR7_IEEE1588_OFFSET			6
582*4882a593Smuzhiyun #define MXC_CCM_CCGR7_IEEE1588(v)			(((v) & 0x3) << 6)
583*4882a593Smuzhiyun #define MXC_CCM_CCGR7_UART4_IPG_OFFSET			8
584*4882a593Smuzhiyun #define MXC_CCM_CCGR7_UART4_IPG(v)			(((v) & 0x3) << 8)
585*4882a593Smuzhiyun #define MXC_CCM_CCGR7_UART4_PER_OFFSET			10
586*4882a593Smuzhiyun #define MXC_CCM_CCGR7_UART4_PER(v)			(((v) & 0x3) << 10)
587*4882a593Smuzhiyun #define MXC_CCM_CCGR7_UART5_IPG_OFFSET			12
588*4882a593Smuzhiyun #define MXC_CCM_CCGR7_UART5_IPG(v)			(((v) & 0x3) << 12)
589*4882a593Smuzhiyun #define MXC_CCM_CCGR7_UART5_PER_OFFSET			14
590*4882a593Smuzhiyun #define MXC_CCM_CCGR7_UART5_PER(v)			(((v) & 0x3) << 14)
591*4882a593Smuzhiyun #endif
592*4882a593Smuzhiyun 
593*4882a593Smuzhiyun /* Define the bits in register CLPCR */
594*4882a593Smuzhiyun #define MXC_CCM_CLPCR_BYPASS_IPU_LPM_HS                 (0x1 << 18)
595*4882a593Smuzhiyun 
596*4882a593Smuzhiyun #define	MXC_DPLLC_CTL_HFSM				(1 << 7)
597*4882a593Smuzhiyun #define	MXC_DPLLC_CTL_DPDCK0_2_EN			(1 << 12)
598*4882a593Smuzhiyun 
599*4882a593Smuzhiyun #define	MXC_DPLLC_OP_PDF_MASK				0xf
600*4882a593Smuzhiyun #define	MXC_DPLLC_OP_MFI_OFFSET				4
601*4882a593Smuzhiyun #define	MXC_DPLLC_OP_MFI_MASK				(0xf << 4)
602*4882a593Smuzhiyun #define	MXC_DPLLC_OP_MFI(v)				(((v) & 0xf) << 4)
603*4882a593Smuzhiyun #define	MXC_DPLLC_OP_MFI_RD(r)				(((r) >> 4) & 0xf)
604*4882a593Smuzhiyun 
605*4882a593Smuzhiyun #define	MXC_DPLLC_MFD_MFD_MASK				0x7ffffff
606*4882a593Smuzhiyun 
607*4882a593Smuzhiyun #define	MXC_DPLLC_MFN_MFN_MASK				0x7ffffff
608*4882a593Smuzhiyun 
609*4882a593Smuzhiyun #endif				/* __ARCH_ARM_MACH_MX51_CRM_REGS_H__ */
610