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