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