xref: /freebsd/sys/arm/freescale/imx/imx6_ccmreg.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
19808ebfaSIan Lepore /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
3af3dc4a7SPedro F. Giffuni  *
49808ebfaSIan Lepore  * Copyright (c) 2013 Ian Lepore <ian@freebsd.org>
59808ebfaSIan Lepore  * All rights reserved.
69808ebfaSIan Lepore  *
79808ebfaSIan Lepore  * Redistribution and use in source and binary forms, with or without
89808ebfaSIan Lepore  * modification, are permitted provided that the following conditions
99808ebfaSIan Lepore  * are met:
109808ebfaSIan Lepore  * 1. Redistributions of source code must retain the above copyright
119808ebfaSIan Lepore  *    notice, this list of conditions and the following disclaimer.
129808ebfaSIan Lepore  * 2. Redistributions in binary form must reproduce the above copyright
139808ebfaSIan Lepore  *    notice, this list of conditions and the following disclaimer in the
149808ebfaSIan Lepore  *    documentation and/or other materials provided with the distribution.
159808ebfaSIan Lepore  *
169808ebfaSIan Lepore  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
179808ebfaSIan Lepore  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
189808ebfaSIan Lepore  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
199808ebfaSIan Lepore  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
209808ebfaSIan Lepore  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
219808ebfaSIan Lepore  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
229808ebfaSIan Lepore  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
239808ebfaSIan Lepore  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
249808ebfaSIan Lepore  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
259808ebfaSIan Lepore  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
269808ebfaSIan Lepore  * SUCH DAMAGE.
279808ebfaSIan Lepore  */
289808ebfaSIan Lepore 
299808ebfaSIan Lepore #ifndef	IMX6_CCMREG_H
309808ebfaSIan Lepore #define	IMX6_CCMREG_H
319808ebfaSIan Lepore 
32955691feSIan Lepore #define	CCM_CACCR				0x010
33c0f3a6c2SOleksandr Tymoshenko #define	CCM_CBCDR				0x014
34c0f3a6c2SOleksandr Tymoshenko #define	  CBCDR_MMDC_CH1_AXI_PODF_SHIFT		  3
35c0f3a6c2SOleksandr Tymoshenko #define	  CBCDR_MMDC_CH1_AXI_PODF_MASK		  (7 << 3)
36f0583578SRuslan Bukin #define	CCM_CSCMR1				0x01C
37f0583578SRuslan Bukin #define	  SSI1_CLK_SEL_S			  10
38f0583578SRuslan Bukin #define	  SSI2_CLK_SEL_S			  12
39f0583578SRuslan Bukin #define	  SSI3_CLK_SEL_S			  14
40f0583578SRuslan Bukin #define	  SSI_CLK_SEL_M				  0x3
41f0583578SRuslan Bukin #define	  SSI_CLK_SEL_508_PFD			  0
42f0583578SRuslan Bukin #define	  SSI_CLK_SEL_454_PFD			  1
43f0583578SRuslan Bukin #define	  SSI_CLK_SEL_PLL4			  2
44f0583578SRuslan Bukin #define	CCM_CSCMR2				0x020
45c0f3a6c2SOleksandr Tymoshenko #define	  CSCMR2_LDB_DI0_IPU_DIV_SHIFT		  10
46f0583578SRuslan Bukin #define	CCM_CS1CDR				0x028
47f0583578SRuslan Bukin #define	  SSI1_CLK_PODF_SHIFT			  0
48f0583578SRuslan Bukin #define	  SSI1_CLK_PRED_SHIFT			  6
49f0583578SRuslan Bukin #define	  SSI3_CLK_PODF_SHIFT			  16
50f0583578SRuslan Bukin #define	  SSI3_CLK_PRED_SHIFT			  22
51f0583578SRuslan Bukin #define	  SSI_CLK_PODF_MASK			  0x3f
52f0583578SRuslan Bukin #define	  SSI_CLK_PRED_MASK			  0x7
53f0583578SRuslan Bukin #define	CCM_CS2CDR				0x02C
54f0583578SRuslan Bukin #define	  SSI2_CLK_PODF_SHIFT			  0
55f0583578SRuslan Bukin #define	  SSI2_CLK_PRED_SHIFT			  6
56c0f3a6c2SOleksandr Tymoshenko #define	  LDB_DI0_CLK_SEL_SHIFT			  9
57c0f3a6c2SOleksandr Tymoshenko #define	  LDB_DI0_CLK_SEL_MASK			  (3 << LDB_DI0_CLK_SEL_SHIFT)
58c0f3a6c2SOleksandr Tymoshenko #define	CCM_CHSCCDR				0x034
59c0f3a6c2SOleksandr Tymoshenko #define	  CHSCCDR_IPU1_DI0_PRE_CLK_SEL_MASK	  (0x7 << 6)
60c0f3a6c2SOleksandr Tymoshenko #define	  CHSCCDR_IPU1_DI0_PRE_CLK_SEL_SHIFT	  6
61c0f3a6c2SOleksandr Tymoshenko #define	  CHSCCDR_IPU1_DI0_PODF_MASK		  (0x7 << 3)
62c0f3a6c2SOleksandr Tymoshenko #define	  CHSCCDR_IPU1_DI0_PODF_SHIFT		  3
63c0f3a6c2SOleksandr Tymoshenko #define	  CHSCCDR_IPU1_DI0_CLK_SEL_MASK		  (0x7)
64c0f3a6c2SOleksandr Tymoshenko #define	  CHSCCDR_IPU1_DI0_CLK_SEL_SHIFT	  0
65da21a623SOleksandr Tymoshenko #define	  CHSCCDR_CLK_SEL_PREMUXED		  0
66c0f3a6c2SOleksandr Tymoshenko #define	  CHSCCDR_CLK_SEL_LDB_DI0		  3
67c0f3a6c2SOleksandr Tymoshenko #define	  CHSCCDR_PODF_DIVIDE_BY_3		  2
68da21a623SOleksandr Tymoshenko #define	  CHSCCDR_PODF_DIVIDE_BY_1		  0
69c0f3a6c2SOleksandr Tymoshenko #define	  CHSCCDR_IPU_PRE_CLK_540M_PFD		  5
70da21a623SOleksandr Tymoshenko #define	  CHSCCDR_IPU_PRE_CLK_PLL5		  2
71f0583578SRuslan Bukin #define	CCM_CSCDR2				0x038
72a78ec805SIan Lepore #define	CCM_CLPCR				0x054
73a78ec805SIan Lepore #define	  CCM_CLPCR_LPM_MASK			  0x03
74a78ec805SIan Lepore #define	  CCM_CLPCR_LPM_RUN			  0x00
75a78ec805SIan Lepore #define	  CCM_CLPCR_LPM_WAIT			  0x01
76a78ec805SIan Lepore #define	  CCM_CLPCR_LPM_STOP			  0x02
77a78ec805SIan Lepore #define	CCM_CGPR				0x064
78a78ec805SIan Lepore #define	  CCM_CGPR_INT_MEM_CLK_LPM		  (1 << 17)
799ce4512cSIan Lepore #define	CCM_CCGR0				0x068
80183413c8SOleksandr Tymoshenko #define	  CCGR0_AIPS_TZ1			  (0x3 << 0)
81183413c8SOleksandr Tymoshenko #define	  CCGR0_AIPS_TZ2			  (0x3 << 2)
82183413c8SOleksandr Tymoshenko #define	  CCGR0_ABPHDMA				  (0x3 << 4)
839808ebfaSIan Lepore #define	CCM_CCGR1				0x06C
84a0fd2339SIan Lepore #define	  CCGR1_ECSPI1				  (0x3 <<  0)
85a0fd2339SIan Lepore #define	  CCGR1_ECSPI2				  (0x3 <<  2)
86a0fd2339SIan Lepore #define	  CCGR1_ECSPI3				  (0x3 <<  4)
87a0fd2339SIan Lepore #define	  CCGR1_ECSPI4				  (0x3 <<  6)
88a0fd2339SIan Lepore #define	  CCGR1_ECSPI5				  (0x3 <<  8)
89183413c8SOleksandr Tymoshenko #define	  CCGR1_ENET				  (0x3 << 10)
90fc0dd0d3SIan Lepore #define	  CCGR1_EPIT1				  (0x3 << 12)
91fc0dd0d3SIan Lepore #define	  CCGR1_EPIT2				  (0x3 << 14)
92a0fd2339SIan Lepore #define	  CCGR1_ESAI				  (0x3 << 16)
93183413c8SOleksandr Tymoshenko #define	  CCGR1_GPT				  (0x3 << 20)
94fc0dd0d3SIan Lepore #define	  CCGR1_GPT_SERIAL			  (0x3 << 22)
959808ebfaSIan Lepore #define	CCM_CCGR2				0x070
96183413c8SOleksandr Tymoshenko #define	  CCGR2_HDMI_TX				  (0x3 << 0)
97183413c8SOleksandr Tymoshenko #define	  CCGR2_HDMI_TX_ISFR			  (0x3 << 4)
98183413c8SOleksandr Tymoshenko #define	  CCGR2_I2C1				  (0x3 << 6)
99183413c8SOleksandr Tymoshenko #define	  CCGR2_I2C2				  (0x3 << 8)
100183413c8SOleksandr Tymoshenko #define	  CCGR2_I2C3				  (0x3 << 10)
101183413c8SOleksandr Tymoshenko #define	  CCGR2_IIM				  (0x3 << 12)
102183413c8SOleksandr Tymoshenko #define	  CCGR2_IOMUX_IPT			  (0x3 << 14)
103183413c8SOleksandr Tymoshenko #define	  CCGR2_IPMUX1				  (0x3 << 16)
104183413c8SOleksandr Tymoshenko #define	  CCGR2_IPMUX2				  (0x3 << 18)
105183413c8SOleksandr Tymoshenko #define	  CCGR2_IPMUX3				  (0x3 << 20)
106183413c8SOleksandr Tymoshenko #define	  CCGR2_IPSYNC_IP2APB_TZASC1		  (0x3 << 22)
107183413c8SOleksandr Tymoshenko #define	  CCGR2_IPSYNC_IP2APB_TZASC2		  (0x3 << 24)
108183413c8SOleksandr Tymoshenko #define	  CCGR2_IPSYNC_VDOA			  (0x3 << 26)
1099808ebfaSIan Lepore #define	CCM_CCGR3				0x074
110183413c8SOleksandr Tymoshenko #define	  CCGR3_IPU1_IPU			  (0x3 << 0)
111183413c8SOleksandr Tymoshenko #define	  CCGR3_IPU1_DI0			  (0x3 << 2)
112183413c8SOleksandr Tymoshenko #define	  CCGR3_IPU1_DI1			  (0x3 << 4)
113183413c8SOleksandr Tymoshenko #define	  CCGR3_IPU2_IPU			  (0x3 << 6)
114183413c8SOleksandr Tymoshenko #define	  CCGR3_IPU2_DI0			  (0x3 << 8)
115183413c8SOleksandr Tymoshenko #define	  CCGR3_IPU2_DI1			  (0x3 << 10)
116183413c8SOleksandr Tymoshenko #define	  CCGR3_LDB_DI0				  (0x3 << 12)
117183413c8SOleksandr Tymoshenko #define	  CCGR3_LDB_DI1				  (0x3 << 14)
118183413c8SOleksandr Tymoshenko #define	  CCGR3_MMDC_CORE_ACLK_FAST		  (0x3 << 20)
119183413c8SOleksandr Tymoshenko #define	  CCGR3_CG11				  (0x3 << 22)
120183413c8SOleksandr Tymoshenko #define	  CCGR3_MMDC_CORE_IPG			  (0x3 << 24)
121183413c8SOleksandr Tymoshenko #define	  CCGR3_CG13				  (0x3 << 26)
122183413c8SOleksandr Tymoshenko #define	  CCGR3_OCRAM				  (0x3 << 28)
1239808ebfaSIan Lepore #define	CCM_CCGR4				0x078
124183413c8SOleksandr Tymoshenko #define	  CCGR4_PL301_MX6QFAST1_S133		  (0x3 << 8)
125183413c8SOleksandr Tymoshenko #define	  CCGR4_PL301_MX6QPER1_BCH		  (0x3 << 12)
126183413c8SOleksandr Tymoshenko #define	  CCGR4_PL301_MX6QPER2_MAIN		  (0x3 << 14)
1279808ebfaSIan Lepore #define	CCM_CCGR5				0x07C
128854519fdSIan Lepore #define	  CCGR5_SATA        			  (0x3 << 4)
129183413c8SOleksandr Tymoshenko #define	  CCGR5_SDMA				  (0x3 << 6)
130183413c8SOleksandr Tymoshenko #define	  CCGR5_SSI1				  (0x3 << 18)
131183413c8SOleksandr Tymoshenko #define	  CCGR5_SSI2				  (0x3 << 20)
132183413c8SOleksandr Tymoshenko #define	  CCGR5_SSI3				  (0x3 << 22)
133183413c8SOleksandr Tymoshenko #define	  CCGR5_UART				  (0x3 << 24)
134183413c8SOleksandr Tymoshenko #define	  CCGR5_UART_SERIAL			  (0x3 << 26)
1359808ebfaSIan Lepore #define	CCM_CCGR6				0x080
136183413c8SOleksandr Tymoshenko #define	  CCGR6_USBOH3				  (0x3 << 0)
137183413c8SOleksandr Tymoshenko #define	  CCGR6_USDHC1				  (0x3 << 2)
138183413c8SOleksandr Tymoshenko #define	  CCGR6_USDHC2				  (0x3 << 4)
139183413c8SOleksandr Tymoshenko #define	  CCGR6_USDHC3				  (0x3 << 6)
140183413c8SOleksandr Tymoshenko #define	  CCGR6_USDHC4				  (0x3 << 8)
1419808ebfaSIan Lepore #define	CCM_CMEOR				0x088
1429808ebfaSIan Lepore 
143da21a623SOleksandr Tymoshenko #define	CCM_ANALOG_PLL_VIDEO			0x000040a0
144da21a623SOleksandr Tymoshenko #define	  CCM_ANALOG_PLL_VIDEO_LOCK		  (1u << 31)
145da21a623SOleksandr Tymoshenko #define	  CCM_ANALOG_PLL_VIDEO_BYPASS		  (1u << 16)
146da21a623SOleksandr Tymoshenko #define	  CCM_ANALOG_PLL_VIDEO_ENABLE		  (1u << 13)
147da21a623SOleksandr Tymoshenko #define	  CCM_ANALOG_PLL_VIDEO_POWERDOWN	  (1u << 12)
148da21a623SOleksandr Tymoshenko #define	  CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT_MASK	(3u << 19)
149da21a623SOleksandr Tymoshenko #define	  CCM_ANALOG_PLL_VIDEO_POST_DIV_2	(1u << 19)
150da21a623SOleksandr Tymoshenko #define	  CCM_ANALOG_PLL_VIDEO_DIV_SELECT_MASK	(0x7f << 0)
151da21a623SOleksandr Tymoshenko #define	  CCM_ANALOG_PLL_VIDEO_DIV_SELECT_SHIFT	0
152da21a623SOleksandr Tymoshenko 
153da21a623SOleksandr Tymoshenko #define	CCM_ANALOG_PLL_VIDEO_NUM		0x000040b0
154da21a623SOleksandr Tymoshenko #define	CCM_ANALOG_PLL_VIDEO_DENOM		0x000040c0
155da21a623SOleksandr Tymoshenko 
156854519fdSIan Lepore #define	CCM_ANALOG_PLL_ENET			0x000040e0
157854519fdSIan Lepore #define	  CCM_ANALOG_PLL_ENET_LOCK		  (1u << 31)
158854519fdSIan Lepore #define	  CCM_ANALOG_PLL_ENET_ENABLE_100M	  (1u << 20)  /* SATA */
159854519fdSIan Lepore #define	  CCM_ANALOG_PLL_ENET_BYPASS		  (1u << 16)
160854519fdSIan Lepore #define	  CCM_ANALOG_PLL_ENET_ENABLE		  (1u << 13)  /* Ether */
161854519fdSIan Lepore #define	  CCM_ANALOG_PLL_ENET_POWERDOWN		  (1u << 12)
162854519fdSIan Lepore 
1639808ebfaSIan Lepore #endif
164