xref: /nrf52832-nimble/rt-thread/libcpu/mips/x1000/x1000_cpm.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * File      : x1000_cpm.h
3*10465441SEvalZero  * This file is part of RT-Thread RTOS
4*10465441SEvalZero  * COPYRIGHT (C) 2008 - 2012, RT-Thread Development Team
5*10465441SEvalZero  *
6*10465441SEvalZero  *  This program is free software; you can redistribute it and/or modify
7*10465441SEvalZero  *  it under the terms of the GNU General Public License as published by
8*10465441SEvalZero  *  the Free Software Foundation; either version 2 of the License, or
9*10465441SEvalZero  *  (at your option) any later version.
10*10465441SEvalZero  *
11*10465441SEvalZero  *  This program is distributed in the hope that it will be useful,
12*10465441SEvalZero  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13*10465441SEvalZero  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*10465441SEvalZero  *  GNU General Public License for more details.
15*10465441SEvalZero  *
16*10465441SEvalZero  *  You should have received a copy of the GNU General Public License along
17*10465441SEvalZero  *  with this program; if not, write to the Free Software Foundation, Inc.,
18*10465441SEvalZero  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*10465441SEvalZero  *
20*10465441SEvalZero  * Change Logs:
21*10465441SEvalZero  * Date           Author       Notes
22*10465441SEvalZero  * 2017-02-03     Urey         the first version
23*10465441SEvalZero  */
24*10465441SEvalZero 
25*10465441SEvalZero #ifndef _X1000_CPM_H_
26*10465441SEvalZero #define _X1000_CPM_H_
27*10465441SEvalZero 
28*10465441SEvalZero #define CPM_CPCCR       (0x00)
29*10465441SEvalZero #define CPM_CPCSR       (0xd4)
30*10465441SEvalZero 
31*10465441SEvalZero #define CPM_DDRCDR      (0x2c)
32*10465441SEvalZero #define CPM_I2SCDR      (0x60)
33*10465441SEvalZero #define CPM_I2SCDR1     (0x70)
34*10465441SEvalZero #define CPM_LPCDR       (0x64)
35*10465441SEvalZero #define CPM_MSC0CDR     (0x68)
36*10465441SEvalZero #define CPM_MSC1CDR     (0xa4)
37*10465441SEvalZero #define CPM_USBCDR      (0x50)
38*10465441SEvalZero #define CPM_MACCDR      (0x54)
39*10465441SEvalZero #define CPM_UHCCDR      (0x6c)
40*10465441SEvalZero #define CPM_SFCCDR      (0x74)
41*10465441SEvalZero #define CPM_CIMCDR      (0x7c)
42*10465441SEvalZero #define CPM_PCMCDR      (0x84)
43*10465441SEvalZero #define CPM_PCMCDR1     (0xe0)
44*10465441SEvalZero #define CPM_MPHYC       (0xe8)
45*10465441SEvalZero 
46*10465441SEvalZero #define CPM_INTR        (0xb0)
47*10465441SEvalZero #define CPM_INTRE       (0xb4)
48*10465441SEvalZero #define CPM_DRCG        (0xd0)
49*10465441SEvalZero #define CPM_CPSPPR      (0x38)
50*10465441SEvalZero #define CPM_CPPSR       (0x34)
51*10465441SEvalZero 
52*10465441SEvalZero #define CPM_USBPCR      (0x3c)
53*10465441SEvalZero #define CPM_USBRDT      (0x40)
54*10465441SEvalZero #define CPM_USBVBFIL    (0x44)
55*10465441SEvalZero #define CPM_USBPCR1     (0x48)
56*10465441SEvalZero 
57*10465441SEvalZero #define CPM_CPAPCR      (0x10)
58*10465441SEvalZero #define CPM_CPMPCR      (0x14)
59*10465441SEvalZero 
60*10465441SEvalZero #define CPM_LCR         (0x04)
61*10465441SEvalZero #define CPM_PSWC0ST     (0x90)
62*10465441SEvalZero #define CPM_PSWC1ST     (0x94)
63*10465441SEvalZero #define CPM_PSWC2ST     (0x98)
64*10465441SEvalZero #define CPM_PSWC3ST     (0x9c)
65*10465441SEvalZero #define CPM_CLKGR       (0x20)
66*10465441SEvalZero #define CPM_CLKGR0       (0x20)
67*10465441SEvalZero #define CPM_MESTSEL     (0xec)
68*10465441SEvalZero #define CPM_SRBC        (0xc4)
69*10465441SEvalZero #define CPM_ERNG        (0xd8)
70*10465441SEvalZero #define CPM_RNG         (0xdc)
71*10465441SEvalZero #define CPM_SLBC        (0xc8)
72*10465441SEvalZero #define CPM_SLPC        (0xcc)
73*10465441SEvalZero #define CPM_OPCR        (0x24)
74*10465441SEvalZero #define CPM_RSR         (0x08)
75*10465441SEvalZero 
76*10465441SEvalZero 
77*10465441SEvalZero 
78*10465441SEvalZero 
79*10465441SEvalZero /*
80*10465441SEvalZero  * CPM registers common define
81*10465441SEvalZero  */
82*10465441SEvalZero 
83*10465441SEvalZero /* Clock control register(CPCCR) */
84*10465441SEvalZero #define CPCCR_SEL_SRC_LSB       30
85*10465441SEvalZero #define CPCCR_SEL_SRC_MASK      BITS_H2L(31, CPCCR_SEL_SRC_LSB)
86*10465441SEvalZero 
87*10465441SEvalZero #define CPCCR_SEL_CPLL_LSB      28
88*10465441SEvalZero #define CPCCR_SEL_CPLL_MASK     BITS_H2L(29, CPCCR_SEL_CPLL_LSB)
89*10465441SEvalZero 
90*10465441SEvalZero #define CPCCR_SEL_H0PLL_LSB     26
91*10465441SEvalZero #define CPCCR_SEL_H0PLL_MASK    BITS_H2L(27, CPCCR_SEL_H0PLL_LSB)
92*10465441SEvalZero 
93*10465441SEvalZero #define CPCCR_SEL_H2PLL_LSB     24
94*10465441SEvalZero #define CPCCR_SEL_H2PLL_MASK    BITS_H2L(25, CPCCR_SEL_H2PLL_LSB)
95*10465441SEvalZero 
96*10465441SEvalZero #define CPCCR_CE_CPU            BIT22
97*10465441SEvalZero #define CPCCR_CE_AHB0           BIT21
98*10465441SEvalZero #define CPCCR_CE_AHB2           BIT20
99*10465441SEvalZero #define CPCCR_CE                (CPCCR_CE_CPU | CPCCR_CE_AHB0 | CPCCR_CE_AHB2)
100*10465441SEvalZero 
101*10465441SEvalZero #define CPCCR_PDIV_LSB          16
102*10465441SEvalZero #define CPCCR_PDIV_MASK         BITS_H2L(19, CPCCR_PDIV_LSB)
103*10465441SEvalZero 
104*10465441SEvalZero #define CPCCR_H2DIV_LSB         12
105*10465441SEvalZero #define CPCCR_H2DIV_MASK        BITS_H2L(15, CPCCR_H2DIV_LSB)
106*10465441SEvalZero 
107*10465441SEvalZero #define CPCCR_H0DIV_LSB         8
108*10465441SEvalZero #define CPCCR_H0DIV_MASK        BITS_H2L(11, CPCCR_H0DIV_LSB)
109*10465441SEvalZero 
110*10465441SEvalZero #define CPCCR_L2DIV_LSB         4
111*10465441SEvalZero #define CPCCR_L2DIV_MASK        BITS_H2L(7,  CPCCR_L2DIV_LSB)
112*10465441SEvalZero 
113*10465441SEvalZero #define CPCCR_CDIV_LSB          0
114*10465441SEvalZero #define CPCCR_CDIV_MASK         BITS_H2L(3,  CPCCR_CDIV_LSB)
115*10465441SEvalZero 
116*10465441SEvalZero #define CPM_SRC_SEL_APLL        1
117*10465441SEvalZero #define CPM_PLL_SEL_SRC         1
118*10465441SEvalZero #define CPM_PLL_SEL_MPLL        2
119*10465441SEvalZero 
120*10465441SEvalZero /* Clock Status register(CPCSR) */
121*10465441SEvalZero #define CPCSR_SRC_MUX           BIT31
122*10465441SEvalZero #define CPCSR_CPU_MUX           BIT30
123*10465441SEvalZero #define CPCSR_AHB0_MUX          BIT29
124*10465441SEvalZero #define CPCSR_AHB2_MUX          BIT28
125*10465441SEvalZero #define CPCSR_DDR_MUX           BIT27
126*10465441SEvalZero #define CPCSR_H2DIV_BUSY        BIT2
127*10465441SEvalZero #define CPCSR_H0DIV_BUSY        BIT1
128*10465441SEvalZero #define CPCSR_CDIV_BUSY         BIT0
129*10465441SEvalZero #define CPCSR_DIV_BUSY          (CPCSR_H2DIV_BUSY | CPCSR_H0DIV_BUSY | CPCSR_CDIV_BUSY)
130*10465441SEvalZero 
131*10465441SEvalZero /* DDR clock divider register(DDCDR) */
132*10465441SEvalZero #define DDCDR_DCS_LSB           30
133*10465441SEvalZero #define DDCDR_DCS_MASK          BITS_H2L(31, DDCDR_DCS_LSB)
134*10465441SEvalZero #define DDCDR_DCS_STOP          (0 << DDCDR_DCS_LSB)
135*10465441SEvalZero #define DDCDR_DCS_APLL          (1 << DDCDR_DCS_LSB)
136*10465441SEvalZero #define DDCDR_DCS_MPLL          (2 << DDCDR_DCS_LSB)
137*10465441SEvalZero #define DDCDR_CE_DDR            BIT29
138*10465441SEvalZero #define DDCDR_DDR_BUSY          BIT28
139*10465441SEvalZero #define DDCDR_DDR_STOP          BIT27
140*10465441SEvalZero #define DDCDR_GATE_EN           BIT26
141*10465441SEvalZero #define DDCDR_DDR_CHANGE_EN     BIT25
142*10465441SEvalZero #define DDCDR_DDR               BIT24
143*10465441SEvalZero #define DDCDR_DDRDIV_LSB        0
144*10465441SEvalZero #define DDCDR_DDRDIV_MASK       BITS_H2L(3, DDCDR_DDRDIV_LSB)
145*10465441SEvalZero 
146*10465441SEvalZero /*MACPHY clock divider Register (MACCDR)*/
147*10465441SEvalZero #define MACCDR_MACPCS           BIT31
148*10465441SEvalZero #define MACCDR_CE_MAC           BIT29
149*10465441SEvalZero #define MACCDR_MAC_BUSY         BIT28
150*10465441SEvalZero #define MACCDR_MAC_STOP         BIT27
151*10465441SEvalZero #define MACCDR_MACCDR_LSB       BIT0
152*10465441SEvalZero #define MACCDR_MACCDR_MASK      BITS_H2L(7,MACCDR_MACCDR_LSB)
153*10465441SEvalZero 
154*10465441SEvalZero /* I2S device clock divider register(I2SCDR) */
155*10465441SEvalZero #define I2SCDR_I2PCS            BIT31
156*10465441SEvalZero #define I2SCDR_I2CS             BIT30
157*10465441SEvalZero 
158*10465441SEvalZero #define I2SCDR_I2SDIV_M_LSB     13
159*10465441SEvalZero #define I2SCDR_I2SDIV_M_MASK    BITS_H2L(21,I2SCDR_I2SDIV_M_LSB)
160*10465441SEvalZero #define I2SCDR_I2SDIV_N_LSB     0       /* I2SCDR bit */
161*10465441SEvalZero #define I2SCDR_I2SDIV_N_MASK    BITS_H2L(7, I2SCDR_I2SDIV_N_LSB)
162*10465441SEvalZero 
163*10465441SEvalZero 
164*10465441SEvalZero /* I2S device clock divider register(I2SCDR1) */
165*10465441SEvalZero #define I2SCDR1_NEN             BIT31
166*10465441SEvalZero #define I2SCDR1_DEN             BIT30
167*10465441SEvalZero #define I2SCDR1_I2SDIV_D_LSB    0
168*10465441SEvalZero #define I2SCDR1_I2SDIV_D_MASK   BITS_H2L(12,I2SCDR1_I2SDIV_D_LSB)
169*10465441SEvalZero 
170*10465441SEvalZero /* LCD pix clock divider register(LPCDR) */
171*10465441SEvalZero #define LPCDR_LPCS_LSB          31
172*10465441SEvalZero #define LPCDR_LPCS_APLL         (0 << LPCDR_LPCS_LSB)
173*10465441SEvalZero #define LPCDR_LPCS_MPLL         (1 << LPCDR_LPCS_LSB)
174*10465441SEvalZero #define LPCDR_CE_LCD            BIT28
175*10465441SEvalZero #define LPCDR_LCD_BUSY          BIT27
176*10465441SEvalZero #define LPCDR_LCD_STOP          BIT26
177*10465441SEvalZero 
178*10465441SEvalZero #define LPCDR_PIXDIV_LSB        0       /* LPCDR bit */
179*10465441SEvalZero #define LPCDR_PIXDIV_MASK       BITS_H2L(7, LPCDR_PIXDIV_LSB)
180*10465441SEvalZero 
181*10465441SEvalZero /* MSC clock divider register(MSCCDR) */
182*10465441SEvalZero #define MSCCDR_MPCS_LSB         31       /* MPCS bit */
183*10465441SEvalZero #define MSCCDR_MPCS_APLL        (0 << MSCCDR_MPCS_LSB)
184*10465441SEvalZero #define MSCCDR_MPCS_MPLL        (1 << MSCCDR_MPCS_LSB)
185*10465441SEvalZero 
186*10465441SEvalZero #define MSCCDR_CE_MSC           BIT29
187*10465441SEvalZero #define MSCCDR_MSC_BUSY         BIT28
188*10465441SEvalZero #define MSCCDR_MSC_STOP         BIT27
189*10465441SEvalZero #define MSCCDR_S_CLK0_SEL       BIT15
190*10465441SEvalZero 
191*10465441SEvalZero #define MSCCDR_MSCDIV_LSB       0       /* MSCCDR bit */
192*10465441SEvalZero #define MSCCDR_MSCDIV_MASK      BITS_H2L(7, MSCCDR_MSCDIV_LSB)
193*10465441SEvalZero 
194*10465441SEvalZero 
195*10465441SEvalZero /* OTG PHY clock divider register(USBCDR) */
196*10465441SEvalZero #define USBCDR_UCS              BIT31
197*10465441SEvalZero #define USBCDR_UPCS             BIT30
198*10465441SEvalZero #define USBCDR_CE_USB           BIT29
199*10465441SEvalZero #define USBCDR_USB_BUSY         BIT28
200*10465441SEvalZero #define USBCDR_USB_STOP         BIT27
201*10465441SEvalZero 
202*10465441SEvalZero #define USBCDR_OTGDIV_LSB       0       /* USBCDR bit */
203*10465441SEvalZero #define USBCDR_OTGDIV_MASK      BITS_H2L(7, USBCDR_OTGDIV_LSB)
204*10465441SEvalZero 
205*10465441SEvalZero /* SSI clock divider register(SSICDR) */
206*10465441SEvalZero #define SSICDR_SPCS             BIT31
207*10465441SEvalZero #define SSICDR_SCS              BIT30
208*10465441SEvalZero #define SSICDR_CE_SSI           BIT29
209*10465441SEvalZero #define SSICDR_SSI_BUSY         BIT28
210*10465441SEvalZero #define SSICDR_SSI_STOP         BIT27
211*10465441SEvalZero #define SSICDR_SSIDIV_LSB       0       /* SSICDR bit */
212*10465441SEvalZero #define SSICDR_SSIDIV_MASK      BITS_H2L(7, SSICDR_SSIDIV_LSB)
213*10465441SEvalZero 
214*10465441SEvalZero /* CIM mclk clock divider register(CIMCDR) */
215*10465441SEvalZero #define CIMCDR_CIMPCS_APLL      (0 << 31)
216*10465441SEvalZero #define CIMCDR_CIMPCS_MPLL      BIT31
217*10465441SEvalZero #define CIMCDR_CE_CIM           BIT29
218*10465441SEvalZero #define CIMCDR_CIM_BUSY         BIT28
219*10465441SEvalZero #define CIMCDR_CIM_STOP         BIT27
220*10465441SEvalZero 
221*10465441SEvalZero #define CIMCDR_CIMDIV_LSB       0       /* CIMCDR bit */
222*10465441SEvalZero #define CIMCDR_CIMDIV_MASK      BITS_H2L(7, CIMCDR_CIMDIV_LSB)
223*10465441SEvalZero 
224*10465441SEvalZero 
225*10465441SEvalZero /* PCM device clock divider register(PCMCDR) */
226*10465441SEvalZero #define PCMCDR_PCMPCS_LSB       30
227*10465441SEvalZero #define PCMCDR_PCMPCS_MASK      BITS_H2L(31,PCMCDR_PCMPCS_LSB)
228*10465441SEvalZero #define PCMCDR_PCMPCS_SCLK_A    0 << PCMCDR_PCMPCS_LSB
229*10465441SEvalZero #define PCMCDR_PCMPCS_EXTCLK    1 << PCMCDR_PCMPCS_LSB
230*10465441SEvalZero #define PCMCDR_PCMPCS_MPLL      2 << PCMCDR_PCMPCS_LSB
231*10465441SEvalZero #define PCMCDR_CE_PCM           BIT29
232*10465441SEvalZero #define PCMCDR_PCMDIV_M_LSB     13
233*10465441SEvalZero #define PCMCDR_PCMDIV_M_MASK    BITS_H2L(21,PCMCDR_PCMDIV_M_LSB)
234*10465441SEvalZero #define PCMCDR_PCMDIV_N_LSB     0
235*10465441SEvalZero #define PCMCDR_PCMDIV_N_MASK    BITS_H2L(12,PCMCDR_PCMDIV_N_LSB)
236*10465441SEvalZero 
237*10465441SEvalZero /* PCM device clock divider register(PCMCDR1) */
238*10465441SEvalZero 
239*10465441SEvalZero #define PCMCDR1_PCM_NEN         BIT31
240*10465441SEvalZero #define PCMCDR1_PCM_DEN         BIT30
241*10465441SEvalZero #define PCMCDR1_PCMDIV_D_LSB    0
242*10465441SEvalZero #define PCMCDR1_PCMDIV_D_MASK   BITS_H2L(12,PCMCDR1_PCMDIV_D_LSB)
243*10465441SEvalZero 
244*10465441SEvalZero /* MAC PHY Control Register (MPHYC) */
245*10465441SEvalZero #define MPHYC_MODE_SEL          BIT31  //useless now
246*10465441SEvalZero #define MPHYC_MAC_SPEED_LSB     29
247*10465441SEvalZero #define MPHYC_MAC_SPEED_MASK    BITS_H2L(30,MPHYC_MAC_SPEED_LSB)
248*10465441SEvalZero #define MPHYC_SOFT_RST          BIT3
249*10465441SEvalZero #define MPHYC_PHY_INTF_LSB      0
250*10465441SEvalZero #define MPHYC_PHY_INTF_MASK     BITS_H2L(2,MPHYC_PHY_INTF_MASK) //useless now
251*10465441SEvalZero 
252*10465441SEvalZero /* CPM Interrupt Register (CPM_INTR)*/
253*10465441SEvalZero #define CPM_INTR_VBUS_INTR      BIT1
254*10465441SEvalZero #define CPM_INTR_ADEV_INTR      BIT0
255*10465441SEvalZero 
256*10465441SEvalZero /* CPM Interrupt Enable Register (CPM_INTRE)*/
257*10465441SEvalZero #define CPM_INTRE_VBUS_INTRE    BIT1
258*10465441SEvalZero #define CPM_INTRE_ADEV_INTRE    BIT0
259*10465441SEvalZero 
260*10465441SEvalZero /* CPM scratch pad protected register(CPSPPR) */
261*10465441SEvalZero #define CPSPPR_CPSPR_WRITABLE   (0x00005a5a)
262*10465441SEvalZero 
263*10465441SEvalZero /* OTG parameter control register(USBPCR) */
264*10465441SEvalZero #define USBPCR_USB_MODE         BIT31
265*10465441SEvalZero #define USBPCR_AVLD_REG         BIT30
266*10465441SEvalZero #define USBPCR_INCRM            BIT27   /* INCR_MASK bit */
267*10465441SEvalZero #define USBPCR_TXRISE_TUNE      BIT26
268*10465441SEvalZero #define USBPCR_COMMONONN        BIT25
269*10465441SEvalZero #define USBPCR_VBUSVLDEXT       BIT24
270*10465441SEvalZero #define USBPCR_VBUSVLDEXTSEL    BIT23
271*10465441SEvalZero #define USBPCR_POR              BIT22
272*10465441SEvalZero #define USBPCR_SIDDQ            BIT21
273*10465441SEvalZero #define USBPCR_OTG_DISABLE      BIT20
274*10465441SEvalZero #define USBPCR_TXPREEMPHTUNE    BIT6
275*10465441SEvalZero 
276*10465441SEvalZero #define USBPCR_IDPULLUP_LSB     28   /* IDPULLUP_MASK bit */
277*10465441SEvalZero #define USBPCR_IDPULLUP_MASK    BITS_H2L(29, USBPCR_IDPULLUP_LSB)
278*10465441SEvalZero 
279*10465441SEvalZero #define USBPCR_COMPDISTUNE_LSB  17
280*10465441SEvalZero #define USBPCR_COMPDISTUNE_MASK BITS_H2L(19, USBPCR_COMPDISTUNE_LSB)
281*10465441SEvalZero 
282*10465441SEvalZero #define USBPCR_OTGTUNE_LSB      14
283*10465441SEvalZero #define USBPCR_OTGTUNE_MASK     BITS_H2L(16, USBPCR_OTGTUNE_LSB)
284*10465441SEvalZero 
285*10465441SEvalZero #define USBPCR_SQRXTUNE_LSB     11
286*10465441SEvalZero #define USBPCR_SQRXTUNE_MASK    BITS_H2L(13, USBPCR_SQRXTUNE_LSB)
287*10465441SEvalZero 
288*10465441SEvalZero #define USBPCR_TXFSLSTUNE_LSB   7
289*10465441SEvalZero #define USBPCR_TXFSLSTUNE_MASK  BITS_H2L(10, USBPCR_TXFSLSTUNE_LSB)
290*10465441SEvalZero 
291*10465441SEvalZero #define USBPCR_TXRISETUNE_LSB   4
292*10465441SEvalZero #define USBPCR_TXRISETUNE_MASK  BITS_H2L(5, USBPCR_TXRISETUNE_LSB)
293*10465441SEvalZero 
294*10465441SEvalZero #define USBPCR_TXVREFTUNE_LSB   0
295*10465441SEvalZero #define USBPCR_TXVREFTUNE_MASK  BITS_H2L(3, USBPCR_TXVREFTUNE_LSB)
296*10465441SEvalZero 
297*10465441SEvalZero /* OTG reset detect timer register(USBRDT) */
298*10465441SEvalZero #define USBRDT_HB_MASK          BIT26
299*10465441SEvalZero #define USBRDT_VBFIL_LD_EN      BIT25
300*10465441SEvalZero #define USBRDT_IDDIG_EN         BIT24
301*10465441SEvalZero #define USBRDT_IDDIG_REG        BIT23
302*10465441SEvalZero 
303*10465441SEvalZero #define USBRDT_USBRDT_LSB       0
304*10465441SEvalZero #define USBRDT_USBRDT_MASK      BITS_H2L(22, USBRDT_USBRDT_LSB)
305*10465441SEvalZero 
306*10465441SEvalZero /* OTG parameter control register(USBPCR1) */
307*10465441SEvalZero #define USBPCR1_REG             BIT31
308*10465441SEvalZero #define USBPCR1_USB_SEL         BIT28
309*10465441SEvalZero #define USBPCR1_REFCLKSEL_LSB   26
310*10465441SEvalZero #define USBPCR1_REFCLKSEL_MASK  BITS_H2L(27, USBPCR1_REFCLKSEL_LSB)
311*10465441SEvalZero 
312*10465441SEvalZero #define USBPCR1_REFCLKDIV_LSB   24
313*10465441SEvalZero #define USBPCR1_REFCLKDIV_MASK  BITS_H2L(25, USBPCR1_REFCLKDIV_LSB)
314*10465441SEvalZero 
315*10465441SEvalZero #define USBPCR1_PORT_RST        BIT21
316*10465441SEvalZero 
317*10465441SEvalZero #define USBPCR1_WORD_IF0        BIT19
318*10465441SEvalZero #define USBPCR1_WORD_IF1        BIT18
319*10465441SEvalZero 
320*10465441SEvalZero 
321*10465441SEvalZero /* APLL control register (CPXPCR) */
322*10465441SEvalZero #define CPAPCR_BS               BIT31
323*10465441SEvalZero #define CPAPCR_M_LSB            24
324*10465441SEvalZero #define CPAPCR_M_MASK           BITS_H2L(30, CPAPCR_M_LSB)
325*10465441SEvalZero 
326*10465441SEvalZero #define CPAPCR_N_LSB            18
327*10465441SEvalZero #define CPAPCR_N_MASK           BITS_H2L(22, CPAPCR_N_LSB)
328*10465441SEvalZero 
329*10465441SEvalZero #define CPAPCR_OD_LSB           16
330*10465441SEvalZero #define CPAPCR_OD_MASK          BITS_H2L(17, CPAPCR_OD_LSB)
331*10465441SEvalZero 
332*10465441SEvalZero #define CPAPCR_LOCK             BIT15   /* LOCK bit */
333*10465441SEvalZero #define CPAPCR_ON               BIT10
334*10465441SEvalZero #define CPAPCR_BP               BIT9
335*10465441SEvalZero #define CPAPCR_EN               BIT8
336*10465441SEvalZero #define CPAPCR_PLLST_LSB        0
337*10465441SEvalZero #define CPAPCR_PLLST_MASK       BITS_H2L(7,CPAPCR_PLLST_LSB)
338*10465441SEvalZero 
339*10465441SEvalZero #define CPM_CPAPCR_EN           CPAPCR_EN
340*10465441SEvalZero #define CPM_CPAPCR_ON           CPAPCR_ON
341*10465441SEvalZero 
342*10465441SEvalZero /* MPLL control register (CPXPCR) */
343*10465441SEvalZero #define CPMPCR_BS               BIT31
344*10465441SEvalZero #define CPMPCR_M_LSB            24
345*10465441SEvalZero #define CPMPCR_M_MASK           BITS_H2L(30, CPAPCR_M_LSB)
346*10465441SEvalZero 
347*10465441SEvalZero #define CPMPCR_N_LSB            18
348*10465441SEvalZero #define CPMPCR_N_MASK           BITS_H2L(22, CPAPCR_N_LSB)
349*10465441SEvalZero 
350*10465441SEvalZero #define CPMPCR_OD_LSB           16
351*10465441SEvalZero #define CPMPCR_OD_MASK          BITS_H2L(17, CPAPCR_OD_LSB)
352*10465441SEvalZero 
353*10465441SEvalZero #define CPMPCR_EN               BIT7
354*10465441SEvalZero #define CPMPCR_BP               BIT6
355*10465441SEvalZero #define CPMPCR_LOCK             BIT1    /* LOCK bit */
356*10465441SEvalZero #define CPMPCR_ON               BIT0
357*10465441SEvalZero 
358*10465441SEvalZero #define CPM_CPMPCR_EN           CPMPCR_EN
359*10465441SEvalZero #define CPM_CPMPCR_ON           CPMPCR_ON
360*10465441SEvalZero 
361*10465441SEvalZero 
362*10465441SEvalZero 
363*10465441SEvalZero /* Low power control register(LCR) */
364*10465441SEvalZero #define LCR_PST_LSB             8
365*10465441SEvalZero #define LCD_PST_MASK            BITS_H2L(19,LCR_PST_LSB)
366*10465441SEvalZero #define LCR_LPM_LSB             0
367*10465441SEvalZero #define LCR_LPM_MASK            BITS_H2L(1,LCR_LPM_LSB)
368*10465441SEvalZero 
369*10465441SEvalZero /* Clock gate register 0(CGR0) */
370*10465441SEvalZero #define CLKGR0_DDR              BIT31
371*10465441SEvalZero #define CLKGR0_CPU              BIT30
372*10465441SEvalZero #define CLKGR0_AHB0             BIT29
373*10465441SEvalZero #define CLKGR0_APB0             BIT28
374*10465441SEvalZero #define CLKGR0_RTC              BIT27
375*10465441SEvalZero #define CLKGR0_PCM              BIT26
376*10465441SEvalZero #define CLKGR0_MAC              BIT25
377*10465441SEvalZero #define CLKGR0_AES              BIT24
378*10465441SEvalZero #define CLKGR0_LCD              BIT23
379*10465441SEvalZero #define CLKGR0_CIM              BIT22
380*10465441SEvalZero #define CLKGR0_PDMA             BIT21
381*10465441SEvalZero #define CLKGR0_OST              BIT20
382*10465441SEvalZero #define CLKGR0_SSI              BIT19
383*10465441SEvalZero #define CLKGR0_TCU              BIT18
384*10465441SEvalZero #define CLKGR0_DMIC             BIT17
385*10465441SEvalZero #define CLKGR0_UART2            BIT16
386*10465441SEvalZero #define CLKGR0_UART1            BIT15
387*10465441SEvalZero #define CLKGR0_UART0            BIT14
388*10465441SEvalZero #define CLKGR0_SADC             BIT13
389*10465441SEvalZero #define CLKGR0_JPEG             BIT12
390*10465441SEvalZero #define CLKGR0_AIC              BIT11
391*10465441SEvalZero #define CLKGR0_I2C3             BIT10
392*10465441SEvalZero #define CLKGR0_I2C2             BIT9
393*10465441SEvalZero #define CLKGR0_I2C1             BIT8
394*10465441SEvalZero #define CLKGR0_I2C0             BIT7
395*10465441SEvalZero #define CLKGR0_SCC              BIT6
396*10465441SEvalZero #define CLKGR0_MSC1             BIT5
397*10465441SEvalZero #define CLKGR0_MSC0             BIT4
398*10465441SEvalZero #define CLKGR0_OTG              BIT3
399*10465441SEvalZero #define CLKGR0_SFC              BIT2
400*10465441SEvalZero #define CLKGR0_EFUSE            BIT1
401*10465441SEvalZero #define CLKGR0_NEMC             BIT0
402*10465441SEvalZero 
403*10465441SEvalZero /* CPM MEST SEL Register */
404*10465441SEvalZero 
405*10465441SEvalZero #define MEST_SEL_TST8           BIT8
406*10465441SEvalZero #define MEST_SEL_TST7           BIT7
407*10465441SEvalZero #define MEST_SEL_TST4           BIT4
408*10465441SEvalZero #define MEST_SEL_TST3           BIT3
409*10465441SEvalZero #define MEST_SEL_TST1           BIT1
410*10465441SEvalZero #define MEST_SEL_TST0           BIT0
411*10465441SEvalZero 
412*10465441SEvalZero /*Soft Reset and Bus Control Register (SRBC)*/
413*10465441SEvalZero 
414*10465441SEvalZero #define SRBC_JPEG_SR            BIT31
415*10465441SEvalZero #define SRBC_JPEG_STP           BIT30
416*10465441SEvalZero #define SRBC_JPEG_ACK           BIT29
417*10465441SEvalZero #define SRBC_LCD_SR             BIT25
418*10465441SEvalZero #define SRBC_LCD_STP            BIT24
419*10465441SEvalZero #define SRBC_LCD_ACK            BIT23
420*10465441SEvalZero #define SRBC_CIM_STP            BIT21
421*10465441SEvalZero #define SRBC_CIM_ACK            BIT20
422*10465441SEvalZero #define SRBC_CPU_STP            BIT15
423*10465441SEvalZero #define SRBC_CPU_ACK            BIT14
424*10465441SEvalZero #define SRBC_OTG_SR             BIT12
425*10465441SEvalZero #define SRBC_AHB2_STP           BIT8
426*10465441SEvalZero #define SRBC_AHB2_ACK           BIT7
427*10465441SEvalZero #define SRBC_DDR_STP            BIT6
428*10465441SEvalZero #define SRBC_DDR_ACK            BIT5
429*10465441SEvalZero 
430*10465441SEvalZero 
431*10465441SEvalZero /* Oscillator and power control register(OPCR) */
432*10465441SEvalZero #define OPCR_IDLE_DIS           BIT31
433*10465441SEvalZero #define OPCR_MASK_INT           BIT30
434*10465441SEvalZero #define OPCR_MASK_VPU           BIT29  //ONLY FOR DEBUG
435*10465441SEvalZero #define OPCR_GATE_SCLK_ABUS     BIT28
436*10465441SEvalZero #define OPCR_L2C_PD             BIT25
437*10465441SEvalZero #define OPCR_REQ_MODE           BIT24
438*10465441SEvalZero #define OPCR_GATE_USBPHY_CLK    BIT23
439*10465441SEvalZero #define OPCR_DIS_STOP_MUX       BIT22
440*10465441SEvalZero #define OPCR_O1ST_LSB           8
441*10465441SEvalZero #define OPCR_O1ST_MASK          BITS_H2L(19, OPCR_O1ST_LSB)
442*10465441SEvalZero #define OPCR_OTGPHY0_ENABLE     BIT7    /* otg */
443*10465441SEvalZero #define OPCR_OTGPHY1_ENABLE     BIT6    /* uhc */
444*10465441SEvalZero #define OPCR_USBPHY_ENABLE      (OPCR_OTGPHY0_ENABLE | OPCR_OTGPHY1_ENABLE)
445*10465441SEvalZero #define OPCR_O1SE               BIT4
446*10465441SEvalZero #define OPCR_PD                 BIT3
447*10465441SEvalZero #define OPCR_ERCS               BIT2
448*10465441SEvalZero #define OPCR_BUSMODE            BIT1
449*10465441SEvalZero 
450*10465441SEvalZero 
451*10465441SEvalZero 
452*10465441SEvalZero /* Reset status register(RSR) */
453*10465441SEvalZero #define RSR_HR                  BIT3
454*10465441SEvalZero #define RSR_P0R                 BIT2
455*10465441SEvalZero #define RSR_WR                  BIT1
456*10465441SEvalZero #define RSR_PR                  BIT0
457*10465441SEvalZero 
458*10465441SEvalZero 
459*10465441SEvalZero #ifndef __ASSEMBLY__
460*10465441SEvalZero 
461*10465441SEvalZero #define REG_CPM_CPCCR           REG32(CPM_BASE + CPM_CPCCR)
462*10465441SEvalZero #define REG_CPM_CPCSR           REG32(CPM_BASE + CPM_CPCSR)
463*10465441SEvalZero #define REG_CPM_DDCDR           REG32(CPM_BASE + CPM_DDCDR)
464*10465441SEvalZero #define REG_CPM_MACCDR          REG32(CPM_BASE + CPM_MACCDR)
465*10465441SEvalZero #define REG_CPM_I2SCDR          REG32(CPM_BASE + CPM_I2SCDR)
466*10465441SEvalZero #define REG_CPM_I2SCDR1         REG32(CPM_BASE + CPM_I2SCDR1)
467*10465441SEvalZero #define REG_CPM_LPCDR           REG32(CPM_BASE + CPM_LPCDR)
468*10465441SEvalZero #define REG_CPM_MSC0CDR         REG32(CPM_BASE + CPM_MSC0CDR)
469*10465441SEvalZero #define REG_CPM_MSC1CDR         REG32(CPM_BASE + CPM_MSC1CDR)
470*10465441SEvalZero #define REG_CPM_USBCDR          REG32(CPM_BASE + CPM_USBCDR)
471*10465441SEvalZero #define REG_CPM_SSICDR          REG32(CPM_BASE + CPM_SSICDR)
472*10465441SEvalZero #define REG_CPM_CIMCDR          REG32(CPM_BASE + CPM_CIMCDR)
473*10465441SEvalZero #define REG_CPM_PCMCDR          REG32(CPM_BASE + CPM_PCMCDR)
474*10465441SEvalZero #define REG_CPM_PCMCDR1         REG32(CPM_BASE + CPM_PCMCDR1)
475*10465441SEvalZero #define REG_CPM_MPHYC           REG32(CPM_BASE + CPM_MPHYC)
476*10465441SEvalZero #define REG_CPM_INTRCDR         REG32(CPM_BASE + CPM_INTRCDR)
477*10465441SEvalZero #define REG_CPM_INTRECDR        REG32(CPM_BASE + CPM_INTRECDR)
478*10465441SEvalZero #define REG_CPM_CPSPR           REG32(CPM_BASE + CPM_CPSPR)
479*10465441SEvalZero #define REG_CPM_CPSPPR          REG32(CPM_BASE + CPM_CPSPPR)
480*10465441SEvalZero #define REG_CPM_USBPCR          REG32(CPM_BASE + CPM_USBPCR)
481*10465441SEvalZero #define REG_CPM_USBRDT          REG32(CPM_BASE + CPM_USBRDT)
482*10465441SEvalZero #define REG_CPM_USBVBFIL        REG32(CPM_BASE + CPM_USBVBFIL)
483*10465441SEvalZero #define REG_CPM_USBPCR1         REG32(CPM_BASE + CPM_USBPCR1)
484*10465441SEvalZero #define REG_CPM_CPAPCR          REG32(CPM_BASE + CPM_CPAPCR)
485*10465441SEvalZero #define REG_CPM_CPMPCR          REG32(CPM_BASE + CPM_CPMPCR)
486*10465441SEvalZero 
487*10465441SEvalZero #define REG_CPM_LCR             REG32(CPM_BASE + CPM_LCR)
488*10465441SEvalZero #define REG_CPM_PSWC0ST         REG32(CPM_BASE + CPM_PSWC0ST)
489*10465441SEvalZero #define REG_CPM_PSWC1ST         REG32(CPM_BASE + CPM_PSWC1ST)
490*10465441SEvalZero #define REG_CPM_PSWC2ST         REG32(CPM_BASE + CPM_PSWC2ST)
491*10465441SEvalZero #define REG_CPM_PSWC3ST         REG32(CPM_BASE + CPM_PSWC3ST)
492*10465441SEvalZero #define REG_CPM_CLKGR0          REG32(CPM_BASE + CPM_CLKGR0)
493*10465441SEvalZero #define REG_CPM_SRBC            REG32(CPM_BASE + CPM_SRBC)
494*10465441SEvalZero #define REG_CPM_SLBC            REG32(CPM_BASE + CPM_SLBC)
495*10465441SEvalZero #define REG_CPM_SLPC            REG32(CPM_BASE + CPM_SLPC)
496*10465441SEvalZero #define REG_CPM_OPCR            REG32(CPM_BASE + CPM_OPCR)
497*10465441SEvalZero #define REG_CPM_RSR             REG32(CPM_BASE + CPM_RSR)
498*10465441SEvalZero 
499*10465441SEvalZero #define _REG_CPM_MSCCDR(n)      REG_CPM_MSC##n##CDR
500*10465441SEvalZero #define REG_CPM_MSCCDR(n)       _REG_CPM_MSCCDR(n)
501*10465441SEvalZero 
502*10465441SEvalZero /* CPM read write */
503*10465441SEvalZero #define cpm_inl(off)            readl(CPM_BASE + off)
504*10465441SEvalZero #define cpm_outl(val,off)       writel(val, CPM_BASE + off)
505*10465441SEvalZero #define cpm_test_bit(bit,off)   (cpm_inl(off) & 0x1<<(bit))
506*10465441SEvalZero #define cpm_set_bit(bit,off)    (cpm_outl((cpm_inl(off) | 0x1<<(bit)),off))
507*10465441SEvalZero #define cpm_clear_bit(bit,off)  (cpm_outl(cpm_inl(off) & ~(0x1 << bit), off))
508*10465441SEvalZero 
509*10465441SEvalZero #endif /* __ASSEMBLY__ */
510*10465441SEvalZero 
511*10465441SEvalZero #endif /* _X1000_CPM_H_ */
512