1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * (c) 2007 Pengutronix, Sascha Hauer <s.hauer@pengutronix.de> 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * (C) Copyright 2008-2009 Freescale Semiconductor, Inc. 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #ifndef __ASM_ARCH_MX35_H 10*4882a593Smuzhiyun #define __ASM_ARCH_MX35_H 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #define ARCH_MXC 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun /* 15*4882a593Smuzhiyun * IRAM 16*4882a593Smuzhiyun */ 17*4882a593Smuzhiyun #define IRAM_BASE_ADDR 0x10000000 /* internal ram */ 18*4882a593Smuzhiyun #define IRAM_SIZE 0x00020000 /* 128 KB */ 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #define LOW_LEVEL_SRAM_STACK 0x1001E000 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun /* 23*4882a593Smuzhiyun * AIPS 1 24*4882a593Smuzhiyun */ 25*4882a593Smuzhiyun #define AIPS1_BASE_ADDR 0x43F00000 26*4882a593Smuzhiyun #define AIPS1_CTRL_BASE_ADDR AIPS1_BASE_ADDR 27*4882a593Smuzhiyun #define MAX_BASE_ADDR 0x43F04000 28*4882a593Smuzhiyun #define EVTMON_BASE_ADDR 0x43F08000 29*4882a593Smuzhiyun #define CLKCTL_BASE_ADDR 0x43F0C000 30*4882a593Smuzhiyun #define I2C1_BASE_ADDR 0x43F80000 31*4882a593Smuzhiyun #define I2C3_BASE_ADDR 0x43F84000 32*4882a593Smuzhiyun #define ATA_BASE_ADDR 0x43F8C000 33*4882a593Smuzhiyun #define UART1_BASE 0x43F90000 34*4882a593Smuzhiyun #define UART2_BASE 0x43F94000 35*4882a593Smuzhiyun #define I2C2_BASE_ADDR 0x43F98000 36*4882a593Smuzhiyun #define CSPI1_BASE_ADDR 0x43FA4000 37*4882a593Smuzhiyun #define IOMUXC_BASE_ADDR 0x43FAC000 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun /* 40*4882a593Smuzhiyun * SPBA 41*4882a593Smuzhiyun */ 42*4882a593Smuzhiyun #define SPBA_BASE_ADDR 0x50000000 43*4882a593Smuzhiyun #define UART3_BASE 0x5000C000 44*4882a593Smuzhiyun #define CSPI2_BASE_ADDR 0x50010000 45*4882a593Smuzhiyun #define ATA_DMA_BASE_ADDR 0x50020000 46*4882a593Smuzhiyun #define FEC_BASE_ADDR 0x50038000 47*4882a593Smuzhiyun #define SPBA_CTRL_BASE_ADDR 0x5003C000 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun /* 50*4882a593Smuzhiyun * AIPS 2 51*4882a593Smuzhiyun */ 52*4882a593Smuzhiyun #define AIPS2_BASE_ADDR 0x53F00000 53*4882a593Smuzhiyun #define AIPS2_CTRL_BASE_ADDR AIPS2_BASE_ADDR 54*4882a593Smuzhiyun #define CCM_BASE_ADDR 0x53F80000 55*4882a593Smuzhiyun #define GPT1_BASE_ADDR 0x53F90000 56*4882a593Smuzhiyun #define EPIT1_BASE_ADDR 0x53F94000 57*4882a593Smuzhiyun #define EPIT2_BASE_ADDR 0x53F98000 58*4882a593Smuzhiyun #define GPIO3_BASE_ADDR 0x53FA4000 59*4882a593Smuzhiyun #define MMC_SDHC1_BASE_ADDR 0x53FB4000 60*4882a593Smuzhiyun #define MMC_SDHC2_BASE_ADDR 0x53FB8000 61*4882a593Smuzhiyun #define MMC_SDHC3_BASE_ADDR 0x53FBC000 62*4882a593Smuzhiyun #define IPU_CTRL_BASE_ADDR 0x53FC0000 63*4882a593Smuzhiyun #define GPIO1_BASE_ADDR 0x53FCC000 64*4882a593Smuzhiyun #define GPIO2_BASE_ADDR 0x53FD0000 65*4882a593Smuzhiyun #define SDMA_BASE_ADDR 0x53FD4000 66*4882a593Smuzhiyun #define RTC_BASE_ADDR 0x53FD8000 67*4882a593Smuzhiyun #define WDOG1_BASE_ADDR 0x53FDC000 68*4882a593Smuzhiyun #define PWM_BASE_ADDR 0x53FE0000 69*4882a593Smuzhiyun #define RTIC_BASE_ADDR 0x53FEC000 70*4882a593Smuzhiyun #define IIM_BASE_ADDR 0x53FF0000 71*4882a593Smuzhiyun #define IMX_USB_BASE 0x53FF4000 72*4882a593Smuzhiyun #define IMX_USB_PORT_OFFSET 0x400 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun #define IMX_CCM_BASE CCM_BASE_ADDR 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun /* 77*4882a593Smuzhiyun * ROMPATCH and AVIC 78*4882a593Smuzhiyun */ 79*4882a593Smuzhiyun #define ROMPATCH_BASE_ADDR 0x60000000 80*4882a593Smuzhiyun #define AVIC_BASE_ADDR 0x68000000 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun /* 83*4882a593Smuzhiyun * NAND, SDRAM, WEIM, M3IF, EMI controllers 84*4882a593Smuzhiyun */ 85*4882a593Smuzhiyun #define EXT_MEM_CTRL_BASE 0xB8000000 86*4882a593Smuzhiyun #define ESDCTL_BASE_ADDR 0xB8001000 87*4882a593Smuzhiyun #define WEIM_BASE_ADDR 0xB8002000 88*4882a593Smuzhiyun #define WEIM_CTRL_CS0 WEIM_BASE_ADDR 89*4882a593Smuzhiyun #define WEIM_CTRL_CS1 (WEIM_BASE_ADDR + 0x10) 90*4882a593Smuzhiyun #define WEIM_CTRL_CS2 (WEIM_BASE_ADDR + 0x20) 91*4882a593Smuzhiyun #define WEIM_CTRL_CS3 (WEIM_BASE_ADDR + 0x30) 92*4882a593Smuzhiyun #define WEIM_CTRL_CS4 (WEIM_BASE_ADDR + 0x40) 93*4882a593Smuzhiyun #define WEIM_CTRL_CS5 (WEIM_BASE_ADDR + 0x50) 94*4882a593Smuzhiyun #define M3IF_BASE_ADDR 0xB8003000 95*4882a593Smuzhiyun #define EMI_BASE_ADDR 0xB8004000 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun #define NFC_BASE_ADDR 0xBB000000 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun /* 100*4882a593Smuzhiyun * Memory regions and CS 101*4882a593Smuzhiyun */ 102*4882a593Smuzhiyun #define IPU_MEM_BASE_ADDR 0x70000000 103*4882a593Smuzhiyun #define CSD0_BASE_ADDR 0x80000000 104*4882a593Smuzhiyun #define CSD1_BASE_ADDR 0x90000000 105*4882a593Smuzhiyun #define CS0_BASE_ADDR 0xA0000000 106*4882a593Smuzhiyun #define CS1_BASE_ADDR 0xA8000000 107*4882a593Smuzhiyun #define CS2_BASE_ADDR 0xB0000000 108*4882a593Smuzhiyun #define CS3_BASE_ADDR 0xB2000000 109*4882a593Smuzhiyun #define CS4_BASE_ADDR 0xB4000000 110*4882a593Smuzhiyun #define CS5_BASE_ADDR 0xB6000000 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun /* 113*4882a593Smuzhiyun * IRQ Controller Register Definitions. 114*4882a593Smuzhiyun */ 115*4882a593Smuzhiyun #define AVIC_NIMASK 0x04 116*4882a593Smuzhiyun #define AVIC_INTTYPEH 0x18 117*4882a593Smuzhiyun #define AVIC_INTTYPEL 0x1C 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun /* L210 */ 120*4882a593Smuzhiyun #define L2CC_BASE_ADDR 0x30000000 121*4882a593Smuzhiyun #define L2_CACHE_LINE_SIZE 32 122*4882a593Smuzhiyun #define L2_CACHE_CTL_REG 0x100 123*4882a593Smuzhiyun #define L2_CACHE_AUX_CTL_REG 0x104 124*4882a593Smuzhiyun #define L2_CACHE_SYNC_REG 0x730 125*4882a593Smuzhiyun #define L2_CACHE_INV_LINE_REG 0x770 126*4882a593Smuzhiyun #define L2_CACHE_INV_WAY_REG 0x77C 127*4882a593Smuzhiyun #define L2_CACHE_CLEAN_LINE_REG 0x7B0 128*4882a593Smuzhiyun #define L2_CACHE_CLEAN_INV_LINE_REG 0x7F0 129*4882a593Smuzhiyun #define L2_CACHE_DBG_CTL_REG 0xF40 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun #define CLKMODE_AUTO 0 132*4882a593Smuzhiyun #define CLKMODE_CONSUMER 1 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun #define PLL_PD(x) (((x) & 0xf) << 26) 135*4882a593Smuzhiyun #define PLL_MFD(x) (((x) & 0x3ff) << 16) 136*4882a593Smuzhiyun #define PLL_MFI(x) (((x) & 0xf) << 10) 137*4882a593Smuzhiyun #define PLL_MFN(x) (((x) & 0x3ff) << 0) 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun #define _PLL_BRM(x) ((x) << 31) 140*4882a593Smuzhiyun #define _PLL_PD(x) (((x) - 1) << 26) 141*4882a593Smuzhiyun #define _PLL_MFD(x) (((x) - 1) << 16) 142*4882a593Smuzhiyun #define _PLL_MFI(x) ((x) << 10) 143*4882a593Smuzhiyun #define _PLL_MFN(x) (x) 144*4882a593Smuzhiyun #define _PLL_SETTING(brm, pd, mfd, mfi, mfn) \ 145*4882a593Smuzhiyun (_PLL_BRM(brm) | _PLL_PD(pd) | _PLL_MFD(mfd) | _PLL_MFI(mfi) |\ 146*4882a593Smuzhiyun _PLL_MFN(mfn)) 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun #define CCM_MPLL_532_HZ _PLL_SETTING(1, 1, 12, 11, 1) 149*4882a593Smuzhiyun #define CCM_MPLL_399_HZ _PLL_SETTING(0, 1, 16, 8, 5) 150*4882a593Smuzhiyun #define CCM_PPLL_300_HZ _PLL_SETTING(0, 1, 4, 6, 1) 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun #define CSCR_U(x) (WEIM_CTRL_CS#x + 0) 153*4882a593Smuzhiyun #define CSCR_L(x) (WEIM_CTRL_CS#x + 4) 154*4882a593Smuzhiyun #define CSCR_A(x) (WEIM_CTRL_CS#x + 8) 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun #define IIM_SREV 0x24 157*4882a593Smuzhiyun #define ROMPATCH_REV 0x40 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun #define IPU_CONF IPU_CTRL_BASE_ADDR 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun #define IPU_CONF_PXL_ENDIAN (1<<8) 162*4882a593Smuzhiyun #define IPU_CONF_DU_EN (1<<7) 163*4882a593Smuzhiyun #define IPU_CONF_DI_EN (1<<6) 164*4882a593Smuzhiyun #define IPU_CONF_ADC_EN (1<<5) 165*4882a593Smuzhiyun #define IPU_CONF_SDC_EN (1<<4) 166*4882a593Smuzhiyun #define IPU_CONF_PF_EN (1<<3) 167*4882a593Smuzhiyun #define IPU_CONF_ROT_EN (1<<2) 168*4882a593Smuzhiyun #define IPU_CONF_IC_EN (1<<1) 169*4882a593Smuzhiyun #define IPU_CONF_CSI_EN (1<<0) 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun /* 172*4882a593Smuzhiyun * CSPI register definitions 173*4882a593Smuzhiyun */ 174*4882a593Smuzhiyun #define MXC_CSPI 175*4882a593Smuzhiyun #define MXC_CSPICTRL_EN (1 << 0) 176*4882a593Smuzhiyun #define MXC_CSPICTRL_MODE (1 << 1) 177*4882a593Smuzhiyun #define MXC_CSPICTRL_XCH (1 << 2) 178*4882a593Smuzhiyun #define MXC_CSPICTRL_SMC (1 << 3) 179*4882a593Smuzhiyun #define MXC_CSPICTRL_POL (1 << 4) 180*4882a593Smuzhiyun #define MXC_CSPICTRL_PHA (1 << 5) 181*4882a593Smuzhiyun #define MXC_CSPICTRL_SSCTL (1 << 6) 182*4882a593Smuzhiyun #define MXC_CSPICTRL_SSPOL (1 << 7) 183*4882a593Smuzhiyun #define MXC_CSPICTRL_CHIPSELECT(x) (((x) & 0x3) << 12) 184*4882a593Smuzhiyun #define MXC_CSPICTRL_BITCOUNT(x) (((x) & 0xfff) << 20) 185*4882a593Smuzhiyun #define MXC_CSPICTRL_DATARATE(x) (((x) & 0x7) << 16) 186*4882a593Smuzhiyun #define MXC_CSPICTRL_TC (1 << 7) 187*4882a593Smuzhiyun #define MXC_CSPICTRL_RXOVF (1 << 6) 188*4882a593Smuzhiyun #define MXC_CSPICTRL_MAXBITS 0xfff 189*4882a593Smuzhiyun #define MXC_CSPIPERIOD_32KHZ (1 << 15) 190*4882a593Smuzhiyun #define MAX_SPI_BYTES 4 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun #define MXC_SPI_BASE_ADDRESSES \ 193*4882a593Smuzhiyun 0x43fa4000, \ 194*4882a593Smuzhiyun 0x50010000, 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun #define GPIO_PORT_NUM 3 197*4882a593Smuzhiyun #define GPIO_NUM_PIN 32 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun #define CHIP_REV_1_0 0x10 200*4882a593Smuzhiyun #define CHIP_REV_2_0 0x20 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun #define BOARD_REV_1_0 0x0 203*4882a593Smuzhiyun #define BOARD_REV_2_0 0x1 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun #if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) 206*4882a593Smuzhiyun #include <asm/types.h> 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun /* Clock Control Module (CCM) registers */ 209*4882a593Smuzhiyun struct ccm_regs { 210*4882a593Smuzhiyun u32 ccmr; /* Control */ 211*4882a593Smuzhiyun u32 pdr0; /* Post divider 0 */ 212*4882a593Smuzhiyun u32 pdr1; /* Post divider 1 */ 213*4882a593Smuzhiyun u32 pdr2; /* Post divider 2 */ 214*4882a593Smuzhiyun u32 pdr3; /* Post divider 3 */ 215*4882a593Smuzhiyun u32 pdr4; /* Post divider 4 */ 216*4882a593Smuzhiyun u32 rcsr; /* CCM Status */ 217*4882a593Smuzhiyun u32 mpctl; /* Core PLL Control */ 218*4882a593Smuzhiyun u32 ppctl; /* Peripheral PLL Control */ 219*4882a593Smuzhiyun u32 acmr; /* Audio clock mux */ 220*4882a593Smuzhiyun u32 cosr; /* Clock out source */ 221*4882a593Smuzhiyun u32 cgr0; /* Clock Gating Control 0 */ 222*4882a593Smuzhiyun u32 cgr1; /* Clock Gating Control 1 */ 223*4882a593Smuzhiyun u32 cgr2; /* Clock Gating Control 2 */ 224*4882a593Smuzhiyun u32 cgr3; /* Clock Gating Control 3 */ 225*4882a593Smuzhiyun u32 reserved; 226*4882a593Smuzhiyun u32 dcvr0; /* DPTC Comparator 0 */ 227*4882a593Smuzhiyun u32 dcvr1; /* DPTC Comparator 0 */ 228*4882a593Smuzhiyun u32 dcvr2; /* DPTC Comparator 0 */ 229*4882a593Smuzhiyun u32 dcvr3; /* DPTC Comparator 0 */ 230*4882a593Smuzhiyun u32 ltr0; /* Load Tracking 0 */ 231*4882a593Smuzhiyun u32 ltr1; /* Load Tracking 1 */ 232*4882a593Smuzhiyun u32 ltr2; /* Load Tracking 2 */ 233*4882a593Smuzhiyun u32 ltr3; /* Load Tracking 3 */ 234*4882a593Smuzhiyun u32 ltbr0; /* Load Tracking Buffer 0 */ 235*4882a593Smuzhiyun }; 236*4882a593Smuzhiyun 237*4882a593Smuzhiyun /* IIM control registers */ 238*4882a593Smuzhiyun struct iim_regs { 239*4882a593Smuzhiyun u32 iim_stat; 240*4882a593Smuzhiyun u32 iim_statm; 241*4882a593Smuzhiyun u32 iim_err; 242*4882a593Smuzhiyun u32 iim_emask; 243*4882a593Smuzhiyun u32 iim_fctl; 244*4882a593Smuzhiyun u32 iim_ua; 245*4882a593Smuzhiyun u32 iim_la; 246*4882a593Smuzhiyun u32 iim_sdat; 247*4882a593Smuzhiyun u32 iim_prev; 248*4882a593Smuzhiyun u32 iim_srev; 249*4882a593Smuzhiyun u32 iim_prg_p; 250*4882a593Smuzhiyun u32 iim_scs0; 251*4882a593Smuzhiyun u32 iim_scs1; 252*4882a593Smuzhiyun u32 iim_scs2; 253*4882a593Smuzhiyun u32 iim_scs3; 254*4882a593Smuzhiyun u32 res1[0x1f1]; 255*4882a593Smuzhiyun struct fuse_bank { 256*4882a593Smuzhiyun u32 fuse_regs[0x20]; 257*4882a593Smuzhiyun u32 fuse_rsvd[0xe0]; 258*4882a593Smuzhiyun } bank[3]; 259*4882a593Smuzhiyun }; 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun struct fuse_bank0_regs { 262*4882a593Smuzhiyun u32 fuse0_7[8]; 263*4882a593Smuzhiyun u32 uid[8]; 264*4882a593Smuzhiyun u32 fuse16_31[0x10]; 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun struct fuse_bank1_regs { 268*4882a593Smuzhiyun u32 fuse0_21[0x16]; 269*4882a593Smuzhiyun u32 usr; 270*4882a593Smuzhiyun u32 fuse23_31[9]; 271*4882a593Smuzhiyun }; 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun /* General Purpose Timer (GPT) registers */ 274*4882a593Smuzhiyun struct gpt_regs { 275*4882a593Smuzhiyun u32 ctrl; /* control */ 276*4882a593Smuzhiyun u32 pre; /* prescaler */ 277*4882a593Smuzhiyun u32 stat; /* status */ 278*4882a593Smuzhiyun u32 intr; /* interrupt */ 279*4882a593Smuzhiyun u32 cmp[3]; /* output compare 1-3 */ 280*4882a593Smuzhiyun u32 capt[2]; /* input capture 1-2 */ 281*4882a593Smuzhiyun u32 counter; /* counter */ 282*4882a593Smuzhiyun }; 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun /* CSPI registers */ 285*4882a593Smuzhiyun struct cspi_regs { 286*4882a593Smuzhiyun u32 rxdata; 287*4882a593Smuzhiyun u32 txdata; 288*4882a593Smuzhiyun u32 ctrl; 289*4882a593Smuzhiyun u32 intr; 290*4882a593Smuzhiyun u32 dma; 291*4882a593Smuzhiyun u32 stat; 292*4882a593Smuzhiyun u32 period; 293*4882a593Smuzhiyun u32 test; 294*4882a593Smuzhiyun }; 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun struct esdc_regs { 297*4882a593Smuzhiyun u32 esdctl0; 298*4882a593Smuzhiyun u32 esdcfg0; 299*4882a593Smuzhiyun u32 esdctl1; 300*4882a593Smuzhiyun u32 esdcfg1; 301*4882a593Smuzhiyun u32 esdmisc; 302*4882a593Smuzhiyun u32 reserved[4]; 303*4882a593Smuzhiyun u32 esdcdly[5]; 304*4882a593Smuzhiyun u32 esdcdlyl; 305*4882a593Smuzhiyun }; 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun #define ESDC_MISC_RST (1 << 1) 308*4882a593Smuzhiyun #define ESDC_MISC_MDDR_EN (1 << 2) 309*4882a593Smuzhiyun #define ESDC_MISC_MDDR_DL_RST (1 << 3) 310*4882a593Smuzhiyun #define ESDC_MISC_DDR_EN (1 << 8) 311*4882a593Smuzhiyun #define ESDC_MISC_DDR2_EN (1 << 9) 312*4882a593Smuzhiyun 313*4882a593Smuzhiyun /* Multi-Layer AHB Crossbar Switch (MAX) registers */ 314*4882a593Smuzhiyun struct max_regs { 315*4882a593Smuzhiyun u32 mpr0; 316*4882a593Smuzhiyun u32 pad00[3]; 317*4882a593Smuzhiyun u32 sgpcr0; 318*4882a593Smuzhiyun u32 pad01[59]; 319*4882a593Smuzhiyun u32 mpr1; 320*4882a593Smuzhiyun u32 pad02[3]; 321*4882a593Smuzhiyun u32 sgpcr1; 322*4882a593Smuzhiyun u32 pad03[59]; 323*4882a593Smuzhiyun u32 mpr2; 324*4882a593Smuzhiyun u32 pad04[3]; 325*4882a593Smuzhiyun u32 sgpcr2; 326*4882a593Smuzhiyun u32 pad05[59]; 327*4882a593Smuzhiyun u32 mpr3; 328*4882a593Smuzhiyun u32 pad06[3]; 329*4882a593Smuzhiyun u32 sgpcr3; 330*4882a593Smuzhiyun u32 pad07[59]; 331*4882a593Smuzhiyun u32 mpr4; 332*4882a593Smuzhiyun u32 pad08[3]; 333*4882a593Smuzhiyun u32 sgpcr4; 334*4882a593Smuzhiyun u32 pad09[251]; 335*4882a593Smuzhiyun u32 mgpcr0; 336*4882a593Smuzhiyun u32 pad10[63]; 337*4882a593Smuzhiyun u32 mgpcr1; 338*4882a593Smuzhiyun u32 pad11[63]; 339*4882a593Smuzhiyun u32 mgpcr2; 340*4882a593Smuzhiyun u32 pad12[63]; 341*4882a593Smuzhiyun u32 mgpcr3; 342*4882a593Smuzhiyun u32 pad13[63]; 343*4882a593Smuzhiyun u32 mgpcr4; 344*4882a593Smuzhiyun u32 pad14[63]; 345*4882a593Smuzhiyun u32 mgpcr5; 346*4882a593Smuzhiyun }; 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun /* AHB <-> IP-Bus Interface (AIPS) */ 349*4882a593Smuzhiyun struct aips_regs { 350*4882a593Smuzhiyun u32 mpr_0_7; 351*4882a593Smuzhiyun u32 mpr_8_15; 352*4882a593Smuzhiyun u32 pad0[6]; 353*4882a593Smuzhiyun u32 pacr_0_7; 354*4882a593Smuzhiyun u32 pacr_8_15; 355*4882a593Smuzhiyun u32 pacr_16_23; 356*4882a593Smuzhiyun u32 pacr_24_31; 357*4882a593Smuzhiyun u32 pad1[4]; 358*4882a593Smuzhiyun u32 opacr_0_7; 359*4882a593Smuzhiyun u32 opacr_8_15; 360*4882a593Smuzhiyun u32 opacr_16_23; 361*4882a593Smuzhiyun u32 opacr_24_31; 362*4882a593Smuzhiyun u32 opacr_32_39; 363*4882a593Smuzhiyun }; 364*4882a593Smuzhiyun 365*4882a593Smuzhiyun /* 366*4882a593Smuzhiyun * NFMS bit in RCSR register for pagesize of nandflash 367*4882a593Smuzhiyun */ 368*4882a593Smuzhiyun #define NFMS_BIT 8 369*4882a593Smuzhiyun #define NFMS_NF_DWIDTH 14 370*4882a593Smuzhiyun #define NFMS_NF_PG_SZ 8 371*4882a593Smuzhiyun 372*4882a593Smuzhiyun #define CCM_RCSR_NF_16BIT_SEL (1 << 14) 373*4882a593Smuzhiyun 374*4882a593Smuzhiyun #endif 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun /* 377*4882a593Smuzhiyun * Generic timer support 378*4882a593Smuzhiyun */ 379*4882a593Smuzhiyun #ifdef CONFIG_MX35_CLK32 380*4882a593Smuzhiyun #define CONFIG_SYS_TIMER_RATE CONFIG_MX35_CLK32 381*4882a593Smuzhiyun #else 382*4882a593Smuzhiyun #define CONFIG_SYS_TIMER_RATE 32768 383*4882a593Smuzhiyun #endif 384*4882a593Smuzhiyun 385*4882a593Smuzhiyun #define CONFIG_SYS_TIMER_COUNTER (GPT1_BASE_ADDR+36) 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun #endif /* __ASM_ARCH_MX35_H */ 388