xref: /netbsd-src/sys/arch/arm/nxp/imx6_ccmreg.h (revision 2718af68c3efc72c9769069b5c7f9ed36f6b9def)
1 /*	$NetBSD: imx6_ccmreg.h,v 1.1 2020/12/23 14:42:38 skrll Exp $	*/
2 
3 /*
4  * Copyright (c) 2014 Ryo Shimizu <ryo@nerv.org>
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
20  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
24  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
25  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  * POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 #ifndef _ARM_NXP_IMX6_CCMREG_H
30 #define _ARM_NXP_IMX6_CCMREG_H
31 
32 #include <sys/cdefs.h>
33 
34 /*
35  * PERIPHCLK_N is an arm root clock divider for MPcore interrupt controller.
36  * PERIPHCLK_N is equal to, or greater than two.
37  * see "Cortex-A9 MPCore Technical Reference Manual" -
38  *     Chapter 5: Clocks, Resets, and Power Management, 5.1: Clocks.
39  */
40 #ifndef IMX6_PERIPHCLK_N
41 #define IMX6_PERIPHCLK_N	2
42 #endif
43 
44 #ifndef IMX6_CKIL_FREQ
45 #define IMX6_CKIL_FREQ	32768
46 #endif
47 #ifndef IMX6_CKIH_FREQ
48 #define IMX6_CKIH_FREQ	0
49 #endif
50 #ifndef IMX6_OSC_FREQ
51 #define IMX6_OSC_FREQ	(24 * 1000 * 1000)	/* 24MHz */
52 #endif
53 #ifndef IMX6_ANACLK1_FREQ
54 #define IMX6_ANACLK1_FREQ	0
55 #endif
56 #ifndef IMX6_ANACLK2_FREQ
57 #define IMX6_ANACLK2_FREQ	0
58 #endif
59 
60 #define CCM_CCR					0x00000000
61 #define  CCM_CCR_RBC_EN				__BIT(27)
62 #define  CCM_CCR_REG_BYPASS_COUNT		__BITS(26, 21)
63 #define  CCM_CCR_WB_COUNT			__BITS(18, 16)
64 #define  CCM_CCR_COSC_EN			__BIT(12)
65 #define  CCM_CCR_OSCNT				__BITS(7, 0)
66 
67 #define CCM_CCDR				0x00000004
68 #define CCM_CSR					0x00000008
69 #define CCM_CCSR				0x0000000c
70 #define  CCM_CCSR_PLL3_PFD1_DIS_MASK		__BIT(15)
71 #define  CCM_CCSR_PLL3_PFD0_DIS_MASK		__BIT(14)
72 #define  CCM_CCSR_PLL3_PFD3_DIS_MASK		__BIT(13)
73 #define  CCM_CCSR_PLL3_PFD2_DIS_MASK		__BIT(12)
74 #define  CCM_CCSR_PLL2_PFD1_594M_DIS_MASK	__BIT(11)
75 #define  CCM_CCSR_PLL2_PFD0_DIS_MASK		__BIT(10)
76 #define  CCM_CCSR_PLL2_PFD2_DIS_MASK		__BIT(9)
77 #define  CCM_CCSR_STEP_SEL			__BIT(8)
78 #define  CCM_CCSR_PLL1_SW_CLK_SEL		__BIT(2)
79 #define  CCM_CCSR_PLL3_SW_CLK_SEL		__BIT(0)
80 #define CCM_CACRR				0x00000010
81 #define  CCM_CACRR_ARM_PODF			__BITS(2, 0)
82 
83 #define CCM_CBCDR				0x00000014
84 #define  CCM_CBCDR_PERIPH_CLK2_PODF		__BITS(29, 27)
85 /* source of mmdc_ch1_axi_clk_root */
86 #define  CCM_CBCDR_PERIPH2_CLK_SEL		__BIT(26)
87 /* source of mmdc_ch0_axi_clk_root */
88 #define  CCM_CBCDR_PERIPH_CLK_SEL		__BIT(25)
89 #define  CCM_CBCDR_MMDC_CH0_AXI_PODF		__BITS(21, 19)
90 #define  CCM_CBCDR_AXI_PODF			__BITS(18, 16)
91 #define  CCM_CBCDR_AHB_PODF			__BITS(12, 10)
92 #define  CCM_CBCDR_IPG_PODF			__BITS(9, 8)
93 #define  CCM_CBCDR_AXI_ALT_SEL			__BIT(7)
94 #define  CCM_CBCDR_AXI_SEL			__BITS(7, 6)
95 #define  CCM_CBCDR_MMDC_CH1_AXI_PODF		__BITS(5, 3)
96 #define  CCM_CBCDR_PERIPH2_CLK2_PODF		__BITS(2, 0)
97 
98 #define CCM_CBCMR				0x00000018
99 #define  CCM_CBCMR_GPU3D_SHADER_PODF		__BITS(31, 29)
100 #define  CCM_CBCMR_GPU3D_CORE_PODF		__BITS(28, 26)
101 #define  CCM_CBCMR_GPU2D_CORE_CLK_PODF		__BITS(25, 23)
102 #define  CCM_CBCMR_PRE_PERIPH2_CLK_SEL		__BITS(22, 21)
103 #define  CCM_CBCMR_PERIPH2_CLK2_SEL		__BIT(20)
104 #define  CCM_CBCMR_PRE_PERIPH_CLK_SEL		__BITS(19, 18)
105 #define  CCM_CBCMR_GPU2D_CLK_SEL		__BITS(17, 16)
106 #define  CCM_CBCMR_VPU_AXI_CLK_SEL		__BITS(15, 14)
107 #define  CCM_CBCMR_PERIPH_CLK2_SEL		__BITS(13, 12)
108 #define  CCM_CBCMR_VDOAXI_CLK_SEL		__BIT(11)
109 #define  CCM_CBCMR_PCIE_AXI_CLK_SEL		__BIT(10)
110 #define  CCM_CBCMR_GPU3D_SHADER_CLK_SEL		__BITS(9, 8)
111 #define  CCM_CBCMR_GPU3D_CORE_CLK_SEL		__BITS(5, 4)
112 #define  CCM_CBCMR_GPU3D_AXI_CLK_SEL		__BIT(1)
113 #define  CCM_CBCMR_GPU2D_AXI_CLK_SEL		__BIT(0)
114 
115 #define CCM_CSCMR1				0x0000001c
116 #define  CCM_CSCMR1_ACLK_EIM_SLOW_SEL		__BITS(30, 29)
117 #define  CCM_CSCMR1_ACLK_SEL			__BITS(28, 27)
118 #define  CCM_CSCMR1_ACLK_EIM_SLOW_PODF		__BITS(25, 23)
119 #define  CCM_CSCMR1_ACLK_PODF			__BITS(22, 20)
120 #define  CCM_CSCMR1_USDHC4_CLK_SEL		__BIT(19)
121 #define  CCM_CSCMR1_USDHC3_CLK_SEL		__BIT(18)
122 #define  CCM_CSCMR1_USDHC2_CLK_SEL		__BIT(17)
123 #define  CCM_CSCMR1_USDHC1_CLK_SEL		__BIT(16)
124 #define  CCM_CSCMR1_SSI3_CLK_SEL		__BITS(15, 14)
125 #define  CCM_CSCMR1_SSI2_CLK_SEL		__BITS(13, 12)
126 #define  CCM_CSCMR1_SSI1_CLK_SEL		__BITS(11, 10)
127 #define  CCM_CSCMR1_PERCLK_PODF			__BITS(5, 0)
128 
129 #define CCM_CSCMR2				0x00000020
130 #define  CCM_CSCMR2_ESAI_CLK_SEL		__BITS(20, 19)
131 #define  CCM_CSCMR2_LDB_DI1_IPU_DIV		__BIT(11)
132 #define  CCM_CSCMR2_LDB_DI0_IPU_DIV		__BIT(10)
133 #define  CCM_CSCMR2_CAN_CLK_PODF		__BITS(7, 2)
134 
135 #define CCM_CSCDR1				0x00000024
136 #define  CCM_CSCDR1_VPU_AXI_PODF		__BITS(27, 25)
137 #define  CCM_CSCDR1_USDHC4_PODF			__BITS(24, 22)
138 #define  CCM_CSCDR1_USDHC3_PODF			__BITS(21, 19)
139 #define  CCM_CSCDR1_USDHC2_PODF			__BITS(18, 16)
140 #define  CCM_CSCDR1_USDHC1_PODF			__BITS(13, 11)
141 #define  CCM_CSCDR1_UART_CLK_PODF		__BITS(5, 0)
142 
143 #define CCM_CS1CDR				0x00000028
144 #define  CCM_CS1CDR_ESAI_CLK_PODF		__BITS(27, 25)
145 #define  CCM_CS1CDR_SSI3_CLK_PRED		__BITS(24, 22)
146 #define  CCM_CS1CDR_SSI3_CLK_PODF		__BITS(21, 16)
147 #define  CCM_CS1CDR_ESAI_CLK_PRED		__BITS(11, 9)
148 #define  CCM_CS1CDR_SSI1_CLK_PRED		__BITS(8, 6)
149 #define  CCM_CS1CDR_SSI1_CLK_PODF		__BITS(5, 0)
150 
151 #define CCM_CS2CDR				0x0000002c
152 #define  CCM_CS2CDR_ENFC_CLK_PODF		__BITS(26, 21)
153 #define  CCM_CS2CDR_ENFC_CLK_PRED		__BITS(20, 18)
154 #define  CCM_CS2CDR_ENFC_CLK_SEL		__BITS(17, 16)
155 #define  CCM_CS2CDR_LDB_DI1_CLK_SEL		__BITS(14, 12)
156 #define  CCM_CS2CDR_LDB_DI0_CLK_SEL		__BITS(11, 9)
157 #define  CCM_CS2CDR_SSI2_CLK_PRED		__BITS(8, 6)
158 #define  CCM_CS2CDR_SSI2_CLK_PODF		__BITS(5, 0)
159 
160 #define CCM_CDCDR				0x00000030
161 #define  CCM_CDCDR_HSI_TX_PODF			__BITS(31, 29)
162 #define  CCM_CDCDR_HSI_TX_CLK_SEL		__BIT(28)
163 #define  CCM_CDCDR_SPDIF0_CLK_PRED		__BITS(27, 25)
164 #define  CCM_CDCDR_SPDIF0_CLK_PODF		__BITS(24, 22)
165 #define  CCM_CDCDR_SPDIF0_CLK_SEL		__BITS(21, 20)
166 #define  CCM_CDCDR_SPDIF1_CLK_PRED		__BITS(14, 12)
167 #define  CCM_CDCDR_SPDIF1_CLK_PODF		__BITS(11, 9)
168 #define  CCM_CDCDR_SPDIF1_CLK_SEL		__BITS(8, 7)
169 
170 #define CCM_CHSCCDR				0x00000034
171 #define  CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL	__BITS(17, 15)
172 #define  CCM_CHSCCDR_IPU1_DI1_PODF		__BITS(14, 12)
173 #define  CCM_CHSCCDR_IPU1_DI1_CLK_SEL		__BITS(11, 9)
174 #define  CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL	__BITS(8, 6)
175 #define  CCM_CHSCCDR_IPU1_DI0_PODF		__BITS(5, 3)
176 #define  CCM_CHSCCDR_IPU1_DI0_CLK_SEL		__BITS(2, 0)
177 
178 #define CCM_CSCDR2				0x00000038
179 #define  CCM_CSCDR2_ECSPI_CLK_PODF		__BITS(24, 19)
180 #define  CCM_CSCDR2_IPU2_DI1_PRE_CLK_SEL	__BITS(17, 15)
181 #define  CCM_CSCDR2_IPU2_DI1_PODF		__BITS(14, 12)
182 #define  CCM_CSCDR2_IPU2_DI1_CLK_SEL		__BITS(11, 9)
183 #define  CCM_CSCDR2_IPU2_DI0_PRE_CLK_SEL	__BITS(8, 6)
184 #define  CCM_CSCDR2_IPU2_DI0_PODF		__BITS(5, 3)
185 #define  CCM_CSCDR2_IPU2_DI0_CLK_SEL		__BITS(2, 0)
186 
187 #define CCM_CDHIPR				0x00000048
188 #define  CCM_CDHIPR_ARM_PODF_BUSY		__BIT(16)
189 #define  CCM_CDHIPR_PERIPH_CLK_SEL_BUSY		__BIT(5)
190 #define  CCM_CDHIPR_MMDC_CH0_PODF_BUSY		__BIT(4)
191 #define  CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY	__BIT(3)
192 #define  CCM_CDHIPR_MMDC_CH1_PODF_BUSY		__BIT(2)
193 #define  CCM_CDHIPR_AHB_PODF_BUSY		__BIT(1)
194 #define  CCM_CDHIPR_AXI_PODF_BUSY		__BIT(0)
195 
196 #define CCM_CSCDR3				0x0000003c
197 #define  CCM_CSCDR3_IPU2_HSP_PODF		__BITS(18, 16)
198 #define  CCM_CSCDR3_IPU2_HSP_CLK_SEL		__BITS(15, 14)
199 #define  CCM_CSCDR3_IPU1_HSP_PODF		__BITS(13, 11)
200 #define  CCM_CSCDR3_IPU1_HSP_CLK_SEL		__BITS(10, 9)
201 
202 #define CCM_CCOSR				0x00000060
203 #define  CCM_CCOSR_CLKO2_EN			__BIT(24)
204 #define  CCM_CCOSR_CLKO2_DIV			__BITS(23, 21)
205 #define  CCM_CCOSR_CLKO2_SEL			__BITS(20, 16)
206 #define  CCM_CCOSR_CLK_OUT_SEL			__BIT(8)
207 #define  CCM_CCOSR_CLKO1_EN			__BIT(7)
208 #define  CCM_CCOSR_CLKO1_DIV			__BITS(6, 4)
209 #define  CCM_CCOSR_CLKO1_SEL			__BITS(3, 0)
210 
211 #define CCM_CCGR0				0x00000068
212 #define  CCM_CCGR0_DTCP_CLK_ENABLE		__BITS(29, 28)
213 #define  CCM_CCGR0_DCIC2_CLK_ENABLE		__BITS(27, 26)
214 #define  CCM_CCGR0_DCIC1_CLK_ENABLE		__BITS(25, 24)
215 #define  CCM_CCGR0_ARM_DBG_CLK_ENABLE		__BITS(23, 22)
216 #define  CCM_CCGR0_CAN2_SERIAL_CLK_ENABLE	__BITS(21, 20)
217 #define  CCM_CCGR0_CAN2_CLK_ENABLE		__BITS(19, 18)
218 #define  CCM_CCGR0_CAN1_SERIAL_CLK_ENABLE	__BITS(17, 16)
219 #define  CCM_CCGR0_CAN1_CLK_ENABLE		__BITS(15, 14)
220 #define  CCM_CCGR0_CAAM_WRAPPER_IPG_ENABLE	__BITS(13, 12)
221 #define  CCM_CCGR0_CAAM_WRAPPER_ACLK_ENABLE	__BITS(11, 10)
222 #define  CCM_CCGR0_CAAM_SECURE_MEM_CLK_ENABLE	__BITS(9, 8)
223 #define  CCM_CCGR0_ASRC_CLK_ENABLE		__BITS(7, 6)
224 #define  CCM_CCGR0_APBHDMA_HCLK_ENABLE		__BITS(5, 4)
225 #define  CCM_CCGR0_AIPS_TZ2_CLK_ENABLE		__BITS(3, 2)
226 #define  CCM_CCGR0_AIPS_TZ1_CLK_ENABLE		__BITS(1, 0)
227 #define CCM_CCGR1				0x0000006C
228 #define  CCM_CCGR1_GPU3D_CLK_ENABLE		__BITS(27, 26)
229 #define  CCM_CCGR1_GPU2D_CLK_ENABLE		__BITS(25, 24)
230 #define  CCM_CCGR1_GPT_SERIAL_CLK_ENABLE	__BITS(23, 22)
231 #define  CCM_CCGR1_GPT_CLK_ENABLE		__BITS(21, 20)
232 #define  CCM_CCGR1_ESAI_CLK_ENABLE		__BITS(17, 16)
233 #define  CCM_CCGR1_EPIT2_CLK_ENABLE		__BITS(15, 14)
234 #define  CCM_CCGR1_EPIT1_CLK_ENABLE		__BITS(13, 12)
235 #define  CCM_CCGR1_ENET_CLK_ENABLE		__BITS(11, 10)
236 #define  CCM_CCGR1_I2C4_CLK_ENABLE		__BITS(9, 8)	/* i.MX6DL */
237 #define  CCM_CCGR1_ECSPI5_CLK_ENABLE		__BITS(9, 8)	/* i.MX6Q */
238 #define  CCM_CCGR1_ECSPI4_CLK_ENABLE		__BITS(7, 6)
239 #define  CCM_CCGR1_ECSPI3_CLK_ENABLE		__BITS(5, 4)
240 #define  CCM_CCGR1_ECSPI2_CLK_ENABLE		__BITS(3, 2)
241 #define  CCM_CCGR1_ECSPI1_CLK_ENABLE		__BITS(1, 0)
242 #define CCM_CCGR2				0x00000070
243 #define  CCM_CCGR2_IPSYNC_VDOA_IPG_CLK_ENABLE		__BITS(27, 26)
244 #define  CCM_CCGR2_IPSYNC_IP2APB_TZASC2_IPG_CLK_ENABLE	__BITS(25, 24)
245 #define  CCM_CCGR2_IPSYNC_IP2APB_TZASC1_IPG_CLK_ENABLE	__BITS(23, 22)
246 #define  CCM_CCGR2_IPMUX3_CLK_ENABLE			__BITS(21, 20)
247 #define  CCM_CCGR2_IPMUX2_CLK_ENABLE			__BITS(19, 18)
248 #define  CCM_CCGR2_IPMUX1_CLK_ENABLE			__BITS(17, 16)
249 #define  CCM_CCGR2_IOMUX_IPT_CLK_IO_CLK_ENABLE		__BITS(15, 14)
250 #define  CCM_CCGR2_IIM_CLK_ENABLE			__BITS(13, 12)
251 #define  CCM_CCGR2_I2C3_SERIAL_CLK_ENABLE		__BITS(11, 10)
252 #define  CCM_CCGR2_I2C2_SERIAL_CLK_ENABLE		__BITS(9, 8)
253 #define  CCM_CCGR2_I2C1_SERIAL_CLK_ENABLE		__BITS(7, 6)
254 #define  CCM_CCGR2_HDMI_TX_ISFRCLK_ENABLE		__BITS(5, 4)
255 #define  CCM_CCGR2_HDMI_TX_IAHBCLK_ENABLE		__BITS(1, 0)
256 #define CCM_CCGR3				0x00000074
257 #define  CCM_CCGR3_OPENVGAXICLK_CLK_ROOT_ENABLE		__BITS(31, 30)
258 #define  CCM_CCGR3_OCRAM_CLK_ENABLE			__BITS(29, 28)
259 #define  CCM_CCGR3_MMDC_CORE_IPG_CLK_P0_ENABLE		__BITS(25, 24)
260 #define  CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P1_ENABLE	__BITS(23, 22)
261 #define  CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P0_ENABLE	__BITS(21, 20)
262 #define  CCM_CCGR3_MLB_CLK_ENABLE			__BITS(19, 18)
263 #define  CCM_CCGR3_MIPI_CORE_CFG_CLK_ENABLE		__BITS(17, 16)
264 #define  CCM_CCGR3_LDB_DI1_CLK_ENABLE			__BITS(15, 14)
265 #define  CCM_CCGR3_LDB_DI0_CLK_ENABLE			__BITS(13, 12)
266 #define  CCM_CCGR3_IPU2_IPU_DI1_CLK_ENABLE		__BITS(11, 10)
267 #define  CCM_CCGR3_IPU2_IPU_DI0_CLK_ENABLE		__BITS(9, 8)
268 #define  CCM_CCGR3_IPU2_IPU_CLK_ENABLE			__BITS(7, 6)
269 #define  CCM_CCGR3_IPU1_IPU_DI1_CLK_ENABLE		__BITS(5, 4)
270 #define  CCM_CCGR3_IPU1_IPU_DI0_CLK_ENABLE		__BITS(3, 2)
271 #define  CCM_CCGR3_IPU1_IPU_CLK_ENABLE			__BITS(1, 0)
272 #define CCM_CCGR4				0x00000078
273 #define  CCM_CCGR4_RAWNAND_U_GPMI_INPUT_APB_CLK_ENABLE		__BITS(31, 30)
274 #define  CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_GPMI_IO_CLK_ENABLE	__BITS(29, 28)
275 #define  CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_BCH_CLK_ENABLE	__BITS(27, 26)
276 #define  CCM_CCGR4_RAWNAND_U_BCH_INPUT_APB_CLK_ENABLE		__BITS(25, 24)
277 #define  CCM_CCGR4_PWM4_CLK_ENABLE				__BITS(23, 22)
278 #define  CCM_CCGR4_PWM3_CLK_ENABLE				__BITS(21, 20)
279 #define  CCM_CCGR4_PWM2_CLK_ENABLE				__BITS(19, 18)
280 #define  CCM_CCGR4_PWM1_CLK_ENABLE				__BITS(17, 16)
281 #define  CCM_CCGR4_PL301_MX6QPER2_MAINCLK_ENABLE		__BITS(15, 14)
282 #define  CCM_CCGR4_PL301_MX6QPER1_BCHCLK_ENABLE			__BITS(13, 12)
283 #define  CCM_CCGR4_PL301_MX6QFAST1_S133CLK_ENABLE		__BITS(9, 8)
284 #define  CCM_CCGR4_PCIE_ROOT_ENABLE				__BITS(1, 0)
285 #define CCM_CCGR5				0x0000007c
286 #define  CCM_CCGR5_UART_SERIAL_CLK_ENABLE	__BITS(27, 26)
287 #define  CCM_CCGR5_UART_CLK_ENABLE		__BITS(25, 24)
288 #define  CCM_CCGR5_SSI3_CLK_ENABLE		__BITS(23, 22)
289 #define  CCM_CCGR5_SSI2_CLK_ENABLE		__BITS(21, 20)
290 #define  CCM_CCGR5_SSI1_CLK_ENABLE		__BITS(19, 18)
291 #define  CCM_CCGR5_SPDIF_CLK_ENABLE		__BITS(15, 14)
292 #define  CCM_CCGR5_SPBA_CLK_ENABLE		__BITS(13, 12)
293 #define  CCM_CCGR5_SDMA_CLK_ENABLE		__BITS(7, 6)
294 #define  CCM_CCGR5_SATA_CLK_ENABLE		__BITS(5, 4)
295 #define  CCM_CCGR5_ROM_CLK_ENABLE		__BITS(1, 0)
296 #define CCM_CCGR6				0x00000080
297 #define  CCM_CCGR6_VPU_CLK_ENABLE		__BITS(15, 14)
298 #define  CCM_CCGR6_VDOAXICLK_CLK_ENABLE		__BITS(13, 12)
299 #define  CCM_CCGR6_EIM_SLOW_CLK_ENABLE		__BITS(11, 10)
300 #define  CCM_CCGR6_USDHC4_CLK_ENABLE		__BITS(9, 8)
301 #define  CCM_CCGR6_USDHC3_CLK_ENABLE		__BITS(7, 6)
302 #define  CCM_CCGR6_USDHC2_CLK_ENABLE		__BITS(5, 4)
303 #define  CCM_CCGR6_USDHC1_CLK_ENABLE		__BITS(3, 2)
304 #define  CCM_CCGR6_USBOH3_CLK_ENABLE		__BITS(1, 0)
305 
306 #define CCM_ANALOG_BASE				0x00004000
307 #define CCM_ANALOG_SIZE				0x00001000
308 
309 #define CCM_ANALOG_PLL_ARM			0x00000000	/* = 020c8000 */
310 #define CCM_ANALOG_PLL_ARM_SET			0x00000004
311 #define CCM_ANALOG_PLL_ARM_CLR			0x00000008
312 #define CCM_ANALOG_PLL_ARM_TOG			0x0000000c
313 #define  CCM_ANALOG_PLL_ARM_LOCK		__BIT(31)
314 #define  CCM_ANALOG_PLL_ARM_PLL_SEL		__BIT(19)
315 #define  CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL	__BIT(18)
316 #define  CCM_ANALOG_PLL_ARM_LVDS_SEL		__BIT(17)
317 #define  CCM_ANALOG_PLL_ARM_BYPASS		__BIT(16)
318 #define  CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC	__BITS(15, 14)
319 #define  CCM_ANALOG_PLL_ARM_ENABLE		__BIT(13)
320 #define  CCM_ANALOG_PLL_ARM_POWERDOWN		__BIT(12)
321 #define  CCM_ANALOG_PLL_ARM_DIV_SELECT		__BITS(6, 0)
322 
323 #define  CCM_ANALOG_PLL_LOCK			__BIT(31)
324 #define  CCM_ANALOG_PLL_BYPASS			__BIT(16)
325 #define  CCM_ANALOG_PLL_BYPASS_CLK_SRC		__BITS(15, 14)
326 #define  CCM_ANALOG_PLL_ENABLE			__BIT(13)
327 #define  CCM_ANALOG_PLL_POWER			__BIT(12)
328 #define  CCM_ANALOG_PLL_EN_USB_CLK		__BIT(6)
329 #define  CCM_ANALOG_PLL_DIV_SELECT		__BITS(1, 0)
330 
331 #define CCM_ANALOG_PLL_USB1			0x00000010
332 #define CCM_ANALOG_PLL_USB1_SET			0x00000014
333 #define CCM_ANALOG_PLL_USB1_CLR			0x00000018
334 #define CCM_ANALOG_PLL_USB1_TOG			0x0000001c
335 #define  CCM_ANALOG_PLL_USB1_LOCK		__BIT(31)
336 #define  CCM_ANALOG_PLL_USB1_RESERVED		__BIT(20)
337 #define  CCM_ANALOG_PLL_USB1_BYPASS		__BIT(16)
338 #define  CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC	__BITS(15, 14)
339 #define  CCM_ANALOG_PLL_USB1_ENABLE		__BIT(13)
340 #define  CCM_ANALOG_PLL_USB1_POWER		__BIT(12)
341 #define  CCM_ANALOG_PLL_USB1_EN_USB_CLK		__BIT(6)
342 #define  CCM_ANALOG_PLL_USB1_DIV_SELECT		__BITS(1, 0)
343 
344 #define CCM_ANALOG_PLL_USB2			0x00000020
345 #define CCM_ANALOG_PLL_USB2_SET			0x00000024
346 #define CCM_ANALOG_PLL_USB2_CLR			0x00000028
347 #define CCM_ANALOG_PLL_USB2_TOG			0x0000002c
348 #define  CCM_ANALOG_PLL_USB2_LOCK		__BIT(31)
349 #define  CCM_ANALOG_PLL_USB2_RESERVED		__BIT(20)
350 #define  CCM_ANALOG_PLL_USB2_BYPASS		__BIT(16)
351 #define  CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC	__BITS(15, 14)
352 #define  CCM_ANALOG_PLL_USB2_ENABLE		__BIT(13)
353 #define  CCM_ANALOG_PLL_USB2_POWER		__BIT(12)
354 #define  CCM_ANALOG_PLL_USB2_EN_USB_CLK		__BIT(6)
355 #define  CCM_ANALOG_PLL_USB2_DIV_SELECT		__BITS(1, 0)
356 
357 #define CCM_ANALOG_PLL_SYS			0x00000030
358 #define CCM_ANALOG_PLL_SYS_SET			0x00000034
359 #define CCM_ANALOG_PLL_SYS_CLR			0x00000038
360 #define CCM_ANALOG_PLL_SYS_TOG			0x0000003c
361 #define  CCM_ANALOG_PLL_SYS_BYPASS		__BIT(16)
362 #define  CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC	__BITS(15, 14)
363 #define  CCM_ANALOG_PLL_SYS_ENABLE		__BIT(13)
364 #define  CCM_ANALOG_PLL_SYS_POWERDOWN		__BIT(12)
365 #define  CCM_ANALOG_PLL_SYS_DIV_SELECT		__BIT(0)
366 #define CCM_ANALOG_PLL_SYS_SS			0x00000040
367 #define CCM_ANALOG_PLL_SYS_NUM			0x00000050
368 #define CCM_ANALOG_PLL_SYS_DENOM		0x00000060
369 #define CCM_ANALOG_PLL_AUDIO			0x00000070
370 #define CCM_ANALOG_PLL_AUDIO_SET		0x00000074
371 #define CCM_ANALOG_PLL_AUDIO_CLR		0x00000078
372 #define CCM_ANALOG_PLL_AUDIO_TOG		0x0000007c
373 #define  CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT	__BITS(20, 19)
374 #define  CCM_ANALOG_PLL_AUDIO_BYPASS		__BIT(16)
375 #define  CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC	__BITS(15, 14)
376 #define  CCM_ANALOG_PLL_AUDIO_ENABLE		__BIT(13)
377 #define  CCM_ANALOG_PLL_AUDIO_POWERDOWN		__BIT(12)
378 #define  CCM_ANALOG_PLL_AUDIO_DIV_SELECT	__BITS(6, 0)
379 #define CCM_ANALOG_PLL_AUDIO_NUM		0x00000080
380 #define CCM_ANALOG_PLL_AUDIO_DENOM		0x00000090
381 #define CCM_ANALOG_PLL_VIDEO			0x000000a0
382 #define  CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT	__BITS(20, 19)
383 #define  CCM_ANALOG_PLL_VIDEO_BYPASS		__BIT(16)
384 #define  CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC	__BITS(15, 14)
385 #define  CCM_ANALOG_PLL_VIDEO_ENABLE		__BIT(13)
386 #define  CCM_ANALOG_PLL_VIDEO_POWERDOWN		__BIT(12)
387 #define  CCM_ANALOG_PLL_VIDEO_DIV_SELECT	__BITS(6, 0)
388 #define CCM_ANALOG_PLL_VIDEO_SET		0x000000a4
389 #define CCM_ANALOG_PLL_VIDEO_CLR		0x000000a8
390 #define CCM_ANALOG_PLL_VIDEO_TOG		0x000000ac
391 #define CCM_ANALOG_PLL_VIDEO_NUM		0x000000b0
392 #define CCM_ANALOG_PLL_VIDEO_DENOM		0x000000c0
393 #define CCM_ANALOG_PLL_MLB			0x000000d0
394 #define CCM_ANALOG_PLL_MLB_SET			0x000000d4
395 #define CCM_ANALOG_PLL_MLB_CLR			0x000000d8
396 #define CCM_ANALOG_PLL_MLB_TOG			0x000000dc
397 #define CCM_ANALOG_PLL_ENET			0x000000e0
398 #define CCM_ANALOG_PLL_ENET_SET			0x000000e4
399 #define CCM_ANALOG_PLL_ENET_CLR			0x000000e8
400 #define CCM_ANALOG_PLL_ENET_TOG			0x000000ec
401 #define  CCM_ANALOG_PLL_ENET_LOCK		__BIT(31)
402 #define  CCM_ANALOG_PLL_ENET_ENET_25M_REF_EN	__BIT(21)	/* iMX6UL */
403 #define  CCM_ANALOG_PLL_ENET_ENET2_125M_EN	__BIT(20)	/* iMX6UL */
404 #define  CCM_ANALOG_PLL_ENET_ENABLE_100M	__BIT(20)	/* SATA */
405 #define  CCM_ANALOG_PLL_ENET_ENABLE_125M	__BIT(19)	/* PCIe */
406 #define  CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN	__BIT(18)
407 #define  CCM_ANALOG_PLL_ENET_BYPASS		__BIT(16)
408 #define  CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC	__BITS(15, 14)
409 #define  CCM_ANALOG_PLL_ENET_ENET1_125M_EN	__BIT(13)	/* iMX6UL */
410 #define  CCM_ANALOG_PLL_ENET_ENABLE		__BIT(13)	/* Ether */
411 #define  CCM_ANALOG_PLL_ENET_POWERDOWN		__BIT(12)
412 #define  CCM_ANALOG_PLL_ENET_DIV_SELECT		__BITS(1, 0)
413 #define CCM_ANALOG_PFD_480			0x000000f0
414 #define CCM_ANALOG_PFD_480_SET			0x000000f4
415 #define CCM_ANALOG_PFD_480_CLR			0x000000f8
416 #define CCM_ANALOG_PFD_480_TOG			0x000000fc
417 #define  CCM_ANALOG_PFD_480_PFD3_CLKGATE	__BIT(31)
418 #define  CCM_ANALOG_PFD_480_PFD3_STABLE		__BIT(30)
419 #define  CCM_ANALOG_PFD_480_PFD3_FRAC		__BITS(29, 24)
420 #define  CCM_ANALOG_PFD_480_PFD2_CLKGATE	__BIT(23)
421 #define  CCM_ANALOG_PFD_480_PFD2_STABLE		__BIT(22)
422 #define  CCM_ANALOG_PFD_480_PFD2_FRAC		__BITS(21, 16)
423 #define  CCM_ANALOG_PFD_480_PFD1_CLKGATE	__BIT(15)
424 #define  CCM_ANALOG_PFD_480_PFD1_STABLE		__BIT(14)
425 #define  CCM_ANALOG_PFD_480_PFD1_FRAC		__BITS(13, 8)
426 #define  CCM_ANALOG_PFD_480_PFD0_CLKGATE	__BIT(7)
427 #define  CCM_ANALOG_PFD_480_PFD0_STABLE		__BIT(6)
428 #define  CCM_ANALOG_PFD_480_PFD0_FRAC		__BITS(5, 0)
429 #define CCM_ANALOG_PFD_528			0x00000100
430 #define CCM_ANALOG_PFD_528_SET			0x00000104
431 #define CCM_ANALOG_PFD_528_CLR			0x00000108
432 #define CCM_ANALOG_PFD_528_TOG			0x0000010c
433 #define  CCM_ANALOG_PFD_528_PFD2_CLKGATE	__BIT(23)
434 #define  CCM_ANALOG_PFD_528_PFD2_STABLE		__BIT(22)
435 #define  CCM_ANALOG_PFD_528_PFD2_FRAC		__BITS(21, 16)
436 #define  CCM_ANALOG_PFD_528_PFD1_CLKGATE	__BIT(15)
437 #define  CCM_ANALOG_PFD_528_PFD1_STABLE		__BIT(14)
438 #define  CCM_ANALOG_PFD_528_PFD1_FRAC		__BITS(13, 8)
439 #define  CCM_ANALOG_PFD_528_PFD0_CLKGATE	__BIT(7)
440 #define  CCM_ANALOG_PFD_528_PFD0_STABLE		__BIT(6)
441 #define  CCM_ANALOG_PFD_528_PFD0_FRAC		__BITS(5, 0)
442 #define CCM_ANALOG_MISC0			0x00000150
443 #define CCM_ANALOG_MISC0_SET			0x00000154
444 #define CCM_ANALOG_MISC0_CLR			0x00000158
445 #define CCM_ANALOG_MISC0_TOG			0x0000015c
446 #define CCM_ANALOG_MISC1			0x00000160
447 #define CCM_ANALOG_MISC1_SET			0x00000164
448 #define CCM_ANALOG_MISC1_CLR			0x00000168
449 #define CCM_ANALOG_MISC1_TOG			0x0000016c
450 #define  CCM_ANALOG_MISC1_LVDS_CLK1_SRC		__BITS(4, 0)
451 #define  CCM_ANALOG_MISC1_LVDS_CLK1_SRC_PCIE	__SHIFTIN(0xa, CCM_ANALOG_MISC1_LVDS_CLK1_SRC)
452 #define  CCM_ANALOG_MISC1_LVDS_CLK1_SRC_SATA	__SHIFTIN(0xb, CCM_ANALOG_MISC1_LVDS_CLK1_SRC)
453 #define  CCM_ANALOG_MISC1_LVDS_CLK2_SRC		__BITS(9, 5)
454 #define  CCM_ANALOG_MISC1_LVDS_CLK1_OBEN	__BIT(10)
455 #define  CCM_ANALOG_MISC1_LVDS_CLK2_OBEN	__BIT(11)
456 #define  CCM_ANALOG_MISC1_LVDS_CLK1_IBEN	__BIT(12)
457 #define  CCM_ANALOG_MISC1_LVDS_CLK2_IBEN	__BIT(13)
458 #define CCM_ANALOG_MISC2			0x00000170
459 #define CCM_ANALOG_MISC2_SET			0x00000174
460 #define CCM_ANALOG_MISC2_CLR			0x00000178
461 #define CCM_ANALOG_MISC2_TOG			0x0000017C
462 #define  CCM_ANALOG_MISC2_VIDEO_DIV		__BITS(31, 30)
463 #define  CCM_ANALOG_MISC2_REG2_STEP_TIME	__BITS(29, 28)
464 #define  CCM_ANALOG_MISC2_REG1_STEP_TIME	__BITS(27, 26)
465 #define  CCM_ANALOG_MISC2_REG0_STEP_TIME	__BITS(25, 24)
466 #define  CCM_ANALOG_MISC2_AUDIO_DIV_MSB		__BIT(23)
467 #define  CCM_ANALOG_MISC2_REG2_OK		__BIT(22)
468 #define  CCM_ANALOG_MISC2_REG2_ENABLE_BO	__BIT(21)
469 #define  CCM_ANALOG_MISC2_REG2_BO_STATUS	__BIT(19)
470 #define  CCM_ANALOG_MISC2_REG2_BO_OFFSET	__BITS(18, 16)
471 #define  CCM_ANALOG_MISC2_AUDIO_DIV_LSB		__BIT(15)
472 #define  CCM_ANALOG_MISC2_REG1_ENABLE_BO	__BIT(13)
473 #define  CCM_ANALOG_MISC2_REG1_BO_STATUS	__BIT(11)
474 #define  CCM_ANALOG_MISC2_REG1_BO_OFFSET	__BITS(10, 8)
475 #define  CCM_ANALOG_MISC2_PLL3_DISABLE		__BIT(7)
476 #define  CCM_ANALOG_MISC2_REG0_ENABLE_BO	__BIT(5)
477 #define  CCM_ANALOG_MISC2_REG0_BO_STATUS	__BIT(3)
478 #define  CCM_ANALOG_MISC2_REG0_BO_OFFSET	__BITS(2, 0)
479 
480 #define CCM_TEMPMON_TEMPSENSE0			0x00000180
481 #define  CCM_TEMPMON_TEMPSENSE0_ALARM_VALUE	__BIT(31, 30)
482 #define  CCM_TEMPMON_TEMPSENSE0_TEMP_CNT	__BITS(19, 8)
483 #define  CCM_TEMPMON_TEMPSENSE0_FINISHED	__BIT(2)
484 #define  CCM_TEMPMON_TEMPSENSE0_MEASURE_TEMP	__BIT(1)
485 #define  CCM_TEMPMON_TEMPSENSE0_POWER_DOWN	__BIT(0)
486 #define CCM_TEMPMON_TEMPSENSE1			0x00000180
487 #define  CCM_TEMPMON_TEMPSENSE1_MEASURE_FREQ	__BITS(15, 0)
488 
489 #define USB_ANALOG_USB1_VBUS_DETECT		0x000001a0
490 #define USB_ANALOG_USB1_CHRG_DETECT		0x000001b0
491 #define  USB_ANALOG_USB_CHRG_DETECT_EN_B	__BIT(20)
492 #define  USB_ANALOG_USB_CHRG_DETECT_CHK_CHRG_B	__BIT(19)
493 #define  USB_ANALOG_USB_CHRG_DETECT_CHK_CHK_CONTACT __BIT(18)
494 #define USB_ANALOG_USB1_VBUS_DETECT_STAT	0x000001c0
495 #define USB_ANALOG_USB1_CHRG_DETECT_STAT	0x000001d0
496 #define USB_ANALOG_USB1_MISC			0x000001f0
497 #define USB_ANALOG_USB2_VBUS_DETECT		0x00000200
498 #define USB_ANALOG_USB2_CHRG_DETECT		0x00000210
499 #define USB_ANALOG_USB2_VBUS_DETECT_STAT	0x00000220
500 #define USB_ANALOG_USB2_CHRG_DETECT_STAT	0x00000230
501 #define USB_ANALOG_USB2_MISC			0x00000250
502 
503 #define USB_ANALOG_DIGPROG			0x00000260
504 #define USB_ANALOG_DIGPROG_SOLOLITE		0x00000280
505 #define  USB_ANALOG_DIGPROG_MAJOR		__BITS(23, 8)
506 #define  USB_ANALOG_DIGPROG_MINOR		__BITS(7, 0)
507 
508 #endif /* _ARM_NXP_IMX6_CCMREG_H */
509