xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-mx31/imx-regs.h (revision d121d20195aca8c7bd76f1ba67ee84f8964330c4)
186271115SStefano Babic /*
286271115SStefano Babic  *
386271115SStefano Babic  * (c) 2007 Pengutronix, Sascha Hauer <s.hauer@pengutronix.de>
486271115SStefano Babic  *
586271115SStefano Babic  * See file CREDITS for list of people who contributed to this
686271115SStefano Babic  * project.
786271115SStefano Babic  *
886271115SStefano Babic  * This program is free software; you can redistribute it and/or
986271115SStefano Babic  * modify it under the terms of the GNU General Public License as
1086271115SStefano Babic  * published by the Free Software Foundation; either version 2 of
1186271115SStefano Babic  * the License, or (at your option) any later version.
1286271115SStefano Babic  *
1386271115SStefano Babic  * This program is distributed in the hope that it will be useful,
1486271115SStefano Babic  * but WITHOUT ANY WARRANTY; without even the implied warranty of
1586271115SStefano Babic  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1686271115SStefano Babic  * GNU General Public License for more details.
1786271115SStefano Babic  *
1886271115SStefano Babic  * You should have received a copy of the GNU General Public License
1986271115SStefano Babic  * along with this program; if not, write to the Free Software
2086271115SStefano Babic  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2186271115SStefano Babic  * MA 02111-1307 USA
2286271115SStefano Babic  */
2386271115SStefano Babic 
24a770975aSFabio Estevam #ifndef __ASM_ARCH_MX31_IMX_REGS_H
25a770975aSFabio Estevam #define __ASM_ARCH_MX31_IMX_REGS_H
2686271115SStefano Babic 
2786271115SStefano Babic #if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
2886271115SStefano Babic #include <asm/types.h>
2986271115SStefano Babic 
3086271115SStefano Babic /* Clock control module registers */
3186271115SStefano Babic struct clock_control_regs {
3286271115SStefano Babic 	u32 ccmr;
3386271115SStefano Babic 	u32 pdr0;
3486271115SStefano Babic 	u32 pdr1;
3586271115SStefano Babic 	u32 rcsr;
3686271115SStefano Babic 	u32 mpctl;
3786271115SStefano Babic 	u32 upctl;
3886271115SStefano Babic 	u32 spctl;
3986271115SStefano Babic 	u32 cosr;
4086271115SStefano Babic 	u32 cgr0;
4186271115SStefano Babic 	u32 cgr1;
4286271115SStefano Babic 	u32 cgr2;
4386271115SStefano Babic 	u32 wimr0;
4486271115SStefano Babic 	u32 ldc;
4586271115SStefano Babic 	u32 dcvr0;
4686271115SStefano Babic 	u32 dcvr1;
4786271115SStefano Babic 	u32 dcvr2;
4886271115SStefano Babic 	u32 dcvr3;
4986271115SStefano Babic 	u32 ltr0;
5086271115SStefano Babic 	u32 ltr1;
5186271115SStefano Babic 	u32 ltr2;
5286271115SStefano Babic 	u32 ltr3;
5386271115SStefano Babic 	u32 ltbr0;
5486271115SStefano Babic 	u32 ltbr1;
5586271115SStefano Babic 	u32 pmcr0;
5686271115SStefano Babic 	u32 pmcr1;
5786271115SStefano Babic 	u32 pdr2;
5886271115SStefano Babic };
5986271115SStefano Babic 
6086271115SStefano Babic struct cspi_regs {
6186271115SStefano Babic 	u32 rxdata;
6286271115SStefano Babic 	u32 txdata;
6386271115SStefano Babic 	u32 ctrl;
6486271115SStefano Babic 	u32 intr;
6586271115SStefano Babic 	u32 dma;
6686271115SStefano Babic 	u32 stat;
6786271115SStefano Babic 	u32 period;
6886271115SStefano Babic 	u32 test;
6986271115SStefano Babic };
7086271115SStefano Babic 
7186271115SStefano Babic /* Watchdog Timer (WDOG) registers */
7286271115SStefano Babic #define WDOG_ENABLE	(1 << 2)
7386271115SStefano Babic #define WDOG_WT_SHIFT	8
74610b53e2SFabio Estevam #define WDOG_WDZST	(1 << 0)
75610b53e2SFabio Estevam 
7686271115SStefano Babic struct wdog_regs {
7786271115SStefano Babic 	u16 wcr;	/* Control */
7886271115SStefano Babic 	u16 wsr;	/* Service */
7986271115SStefano Babic 	u16 wrsr;	/* Reset Status */
8086271115SStefano Babic };
8186271115SStefano Babic 
824adaf9bfSFabio Estevam /* IIM Control Registers */
834adaf9bfSFabio Estevam struct iim_regs {
844adaf9bfSFabio Estevam 	u32 iim_stat;
854adaf9bfSFabio Estevam 	u32 iim_statm;
864adaf9bfSFabio Estevam 	u32 iim_err;
874adaf9bfSFabio Estevam 	u32 iim_emask;
884adaf9bfSFabio Estevam 	u32 iim_fctl;
894adaf9bfSFabio Estevam 	u32 iim_ua;
904adaf9bfSFabio Estevam 	u32 iim_la;
914adaf9bfSFabio Estevam 	u32 iim_sdat;
924adaf9bfSFabio Estevam 	u32 iim_prev;
934adaf9bfSFabio Estevam 	u32 iim_srev;
944adaf9bfSFabio Estevam 	u32 iim_prog_p;
954adaf9bfSFabio Estevam 	u32 iim_scs0;
964adaf9bfSFabio Estevam 	u32 iim_scs1;
974adaf9bfSFabio Estevam 	u32 iim_scs2;
984adaf9bfSFabio Estevam 	u32 iim_scs3;
994adaf9bfSFabio Estevam };
1004adaf9bfSFabio Estevam 
1014adaf9bfSFabio Estevam struct mx3_cpu_type {
1024adaf9bfSFabio Estevam 	u8 srev;
1032f22045bSStefano Babic 	u32 v;
1044adaf9bfSFabio Estevam };
10586271115SStefano Babic 
10686271115SStefano Babic #define IOMUX_PADNUM_MASK	0x1ff
10786271115SStefano Babic #define IOMUX_PIN(gpionum, padnum) ((padnum) & IOMUX_PADNUM_MASK)
10886271115SStefano Babic 
10986271115SStefano Babic /*
11086271115SStefano Babic  * various IOMUX pad functions
11186271115SStefano Babic  */
11286271115SStefano Babic enum iomux_pad_config {
11386271115SStefano Babic 	PAD_CTL_NOLOOPBACK	= 0x0 << 9,
11486271115SStefano Babic 	PAD_CTL_LOOPBACK	= 0x1 << 9,
11586271115SStefano Babic 	PAD_CTL_PKE_NONE	= 0x0 << 8,
11686271115SStefano Babic 	PAD_CTL_PKE_ENABLE	= 0x1 << 8,
11786271115SStefano Babic 	PAD_CTL_PUE_KEEPER	= 0x0 << 7,
11886271115SStefano Babic 	PAD_CTL_PUE_PUD		= 0x1 << 7,
11986271115SStefano Babic 	PAD_CTL_100K_PD		= 0x0 << 5,
12086271115SStefano Babic 	PAD_CTL_100K_PU		= 0x1 << 5,
12186271115SStefano Babic 	PAD_CTL_47K_PU		= 0x2 << 5,
12286271115SStefano Babic 	PAD_CTL_22K_PU		= 0x3 << 5,
12386271115SStefano Babic 	PAD_CTL_HYS_CMOS	= 0x0 << 4,
12486271115SStefano Babic 	PAD_CTL_HYS_SCHMITZ	= 0x1 << 4,
12586271115SStefano Babic 	PAD_CTL_ODE_CMOS	= 0x0 << 3,
12686271115SStefano Babic 	PAD_CTL_ODE_OpenDrain	= 0x1 << 3,
12786271115SStefano Babic 	PAD_CTL_DRV_NORMAL	= 0x0 << 1,
12886271115SStefano Babic 	PAD_CTL_DRV_HIGH	= 0x1 << 1,
12986271115SStefano Babic 	PAD_CTL_DRV_MAX		= 0x2 << 1,
13086271115SStefano Babic 	PAD_CTL_SRE_SLOW	= 0x0 << 0,
13186271115SStefano Babic 	PAD_CTL_SRE_FAST	= 0x1 << 0
13286271115SStefano Babic };
13386271115SStefano Babic 
13486271115SStefano Babic /*
13586271115SStefano Babic  * This enumeration is constructed based on the Section
13686271115SStefano Babic  * "sw_pad_ctl & sw_mux_ctl details" of the MX31 IC Spec. Each enumerated
13786271115SStefano Babic  * value is constructed based on the rules described above.
13886271115SStefano Babic  */
13986271115SStefano Babic 
14086271115SStefano Babic enum iomux_pins {
14186271115SStefano Babic 	MX31_PIN_TTM_PAD	= IOMUX_PIN(0xff,   0),
14286271115SStefano Babic 	MX31_PIN_CSPI3_SPI_RDY	= IOMUX_PIN(0xff,   1),
14386271115SStefano Babic 	MX31_PIN_CSPI3_SCLK	= IOMUX_PIN(0xff,   2),
14486271115SStefano Babic 	MX31_PIN_CSPI3_MISO	= IOMUX_PIN(0xff,   3),
14586271115SStefano Babic 	MX31_PIN_CSPI3_MOSI	= IOMUX_PIN(0xff,   4),
14686271115SStefano Babic 	MX31_PIN_CLKSS		= IOMUX_PIN(0xff,   5),
14786271115SStefano Babic 	MX31_PIN_CE_CONTROL	= IOMUX_PIN(0xff,   6),
14886271115SStefano Babic 	MX31_PIN_ATA_RESET_B	= IOMUX_PIN(95,     7),
14986271115SStefano Babic 	MX31_PIN_ATA_DMACK	= IOMUX_PIN(94,     8),
15086271115SStefano Babic 	MX31_PIN_ATA_DIOW	= IOMUX_PIN(93,     9),
15186271115SStefano Babic 	MX31_PIN_ATA_DIOR	= IOMUX_PIN(92,    10),
15286271115SStefano Babic 	MX31_PIN_ATA_CS1	= IOMUX_PIN(91,    11),
15386271115SStefano Babic 	MX31_PIN_ATA_CS0	= IOMUX_PIN(90,    12),
15486271115SStefano Babic 	MX31_PIN_SD1_DATA3	= IOMUX_PIN(63,    13),
15586271115SStefano Babic 	MX31_PIN_SD1_DATA2	= IOMUX_PIN(62,    14),
15686271115SStefano Babic 	MX31_PIN_SD1_DATA1	= IOMUX_PIN(61,    15),
15786271115SStefano Babic 	MX31_PIN_SD1_DATA0	= IOMUX_PIN(60,    16),
15886271115SStefano Babic 	MX31_PIN_SD1_CLK	= IOMUX_PIN(59,    17),
15986271115SStefano Babic 	MX31_PIN_SD1_CMD	= IOMUX_PIN(58,    18),
16086271115SStefano Babic 	MX31_PIN_D3_SPL		= IOMUX_PIN(0xff,  19),
16186271115SStefano Babic 	MX31_PIN_D3_CLS		= IOMUX_PIN(0xff,  20),
16286271115SStefano Babic 	MX31_PIN_D3_REV		= IOMUX_PIN(0xff,  21),
16386271115SStefano Babic 	MX31_PIN_CONTRAST	= IOMUX_PIN(0xff,  22),
16486271115SStefano Babic 	MX31_PIN_VSYNC3		= IOMUX_PIN(0xff,  23),
16586271115SStefano Babic 	MX31_PIN_READ		= IOMUX_PIN(0xff,  24),
16686271115SStefano Babic 	MX31_PIN_WRITE		= IOMUX_PIN(0xff,  25),
16786271115SStefano Babic 	MX31_PIN_PAR_RS		= IOMUX_PIN(0xff,  26),
16886271115SStefano Babic 	MX31_PIN_SER_RS		= IOMUX_PIN(89,    27),
16986271115SStefano Babic 	MX31_PIN_LCS1		= IOMUX_PIN(88,    28),
17086271115SStefano Babic 	MX31_PIN_LCS0		= IOMUX_PIN(87,    29),
17186271115SStefano Babic 	MX31_PIN_SD_D_CLK	= IOMUX_PIN(86,    30),
17286271115SStefano Babic 	MX31_PIN_SD_D_IO	= IOMUX_PIN(85,    31),
17386271115SStefano Babic 	MX31_PIN_SD_D_I		= IOMUX_PIN(84,    32),
17486271115SStefano Babic 	MX31_PIN_DRDY0		= IOMUX_PIN(0xff,  33),
17586271115SStefano Babic 	MX31_PIN_FPSHIFT	= IOMUX_PIN(0xff,  34),
17686271115SStefano Babic 	MX31_PIN_HSYNC		= IOMUX_PIN(0xff,  35),
17786271115SStefano Babic 	MX31_PIN_VSYNC0		= IOMUX_PIN(0xff,  36),
17886271115SStefano Babic 	MX31_PIN_LD17		= IOMUX_PIN(0xff,  37),
17986271115SStefano Babic 	MX31_PIN_LD16		= IOMUX_PIN(0xff,  38),
18086271115SStefano Babic 	MX31_PIN_LD15		= IOMUX_PIN(0xff,  39),
18186271115SStefano Babic 	MX31_PIN_LD14		= IOMUX_PIN(0xff,  40),
18286271115SStefano Babic 	MX31_PIN_LD13		= IOMUX_PIN(0xff,  41),
18386271115SStefano Babic 	MX31_PIN_LD12		= IOMUX_PIN(0xff,  42),
18486271115SStefano Babic 	MX31_PIN_LD11		= IOMUX_PIN(0xff,  43),
18586271115SStefano Babic 	MX31_PIN_LD10		= IOMUX_PIN(0xff,  44),
18686271115SStefano Babic 	MX31_PIN_LD9		= IOMUX_PIN(0xff,  45),
18786271115SStefano Babic 	MX31_PIN_LD8		= IOMUX_PIN(0xff,  46),
18886271115SStefano Babic 	MX31_PIN_LD7		= IOMUX_PIN(0xff,  47),
18986271115SStefano Babic 	MX31_PIN_LD6		= IOMUX_PIN(0xff,  48),
19086271115SStefano Babic 	MX31_PIN_LD5		= IOMUX_PIN(0xff,  49),
19186271115SStefano Babic 	MX31_PIN_LD4		= IOMUX_PIN(0xff,  50),
19286271115SStefano Babic 	MX31_PIN_LD3		= IOMUX_PIN(0xff,  51),
19386271115SStefano Babic 	MX31_PIN_LD2		= IOMUX_PIN(0xff,  52),
19486271115SStefano Babic 	MX31_PIN_LD1		= IOMUX_PIN(0xff,  53),
19586271115SStefano Babic 	MX31_PIN_LD0		= IOMUX_PIN(0xff,  54),
19686271115SStefano Babic 	MX31_PIN_USBH2_DATA1	= IOMUX_PIN(0xff,  55),
19786271115SStefano Babic 	MX31_PIN_USBH2_DATA0	= IOMUX_PIN(0xff,  56),
19886271115SStefano Babic 	MX31_PIN_USBH2_NXT	= IOMUX_PIN(0xff,  57),
19986271115SStefano Babic 	MX31_PIN_USBH2_STP	= IOMUX_PIN(0xff,  58),
20086271115SStefano Babic 	MX31_PIN_USBH2_DIR	= IOMUX_PIN(0xff,  59),
20186271115SStefano Babic 	MX31_PIN_USBH2_CLK	= IOMUX_PIN(0xff,  60),
20286271115SStefano Babic 	MX31_PIN_USBOTG_DATA7	= IOMUX_PIN(0xff,  61),
20386271115SStefano Babic 	MX31_PIN_USBOTG_DATA6	= IOMUX_PIN(0xff,  62),
20486271115SStefano Babic 	MX31_PIN_USBOTG_DATA5	= IOMUX_PIN(0xff,  63),
20586271115SStefano Babic 	MX31_PIN_USBOTG_DATA4	= IOMUX_PIN(0xff,  64),
20686271115SStefano Babic 	MX31_PIN_USBOTG_DATA3	= IOMUX_PIN(0xff,  65),
20786271115SStefano Babic 	MX31_PIN_USBOTG_DATA2	= IOMUX_PIN(0xff,  66),
20886271115SStefano Babic 	MX31_PIN_USBOTG_DATA1	= IOMUX_PIN(0xff,  67),
20986271115SStefano Babic 	MX31_PIN_USBOTG_DATA0	= IOMUX_PIN(0xff,  68),
21086271115SStefano Babic 	MX31_PIN_USBOTG_NXT	= IOMUX_PIN(0xff,  69),
21186271115SStefano Babic 	MX31_PIN_USBOTG_STP	= IOMUX_PIN(0xff,  70),
21286271115SStefano Babic 	MX31_PIN_USBOTG_DIR	= IOMUX_PIN(0xff,  71),
21386271115SStefano Babic 	MX31_PIN_USBOTG_CLK	= IOMUX_PIN(0xff,  72),
21486271115SStefano Babic 	MX31_PIN_USB_BYP	= IOMUX_PIN(31,    73),
21586271115SStefano Babic 	MX31_PIN_USB_OC		= IOMUX_PIN(30,    74),
21686271115SStefano Babic 	MX31_PIN_USB_PWR	= IOMUX_PIN(29,    75),
21786271115SStefano Babic 	MX31_PIN_SJC_MOD	= IOMUX_PIN(0xff,  76),
21886271115SStefano Babic 	MX31_PIN_DE_B		= IOMUX_PIN(0xff,  77),
21986271115SStefano Babic 	MX31_PIN_TRSTB		= IOMUX_PIN(0xff,  78),
22086271115SStefano Babic 	MX31_PIN_TDO		= IOMUX_PIN(0xff,  79),
22186271115SStefano Babic 	MX31_PIN_TDI		= IOMUX_PIN(0xff,  80),
22286271115SStefano Babic 	MX31_PIN_TMS		= IOMUX_PIN(0xff,  81),
22386271115SStefano Babic 	MX31_PIN_TCK		= IOMUX_PIN(0xff,  82),
22486271115SStefano Babic 	MX31_PIN_RTCK		= IOMUX_PIN(0xff,  83),
22586271115SStefano Babic 	MX31_PIN_KEY_COL7	= IOMUX_PIN(57,    84),
22686271115SStefano Babic 	MX31_PIN_KEY_COL6	= IOMUX_PIN(56,    85),
22786271115SStefano Babic 	MX31_PIN_KEY_COL5	= IOMUX_PIN(55,    86),
22886271115SStefano Babic 	MX31_PIN_KEY_COL4	= IOMUX_PIN(54,    87),
22986271115SStefano Babic 	MX31_PIN_KEY_COL3	= IOMUX_PIN(0xff,  88),
23086271115SStefano Babic 	MX31_PIN_KEY_COL2	= IOMUX_PIN(0xff,  89),
23186271115SStefano Babic 	MX31_PIN_KEY_COL1	= IOMUX_PIN(0xff,  90),
23286271115SStefano Babic 	MX31_PIN_KEY_COL0	= IOMUX_PIN(0xff,  91),
23386271115SStefano Babic 	MX31_PIN_KEY_ROW7	= IOMUX_PIN(53,    92),
23486271115SStefano Babic 	MX31_PIN_KEY_ROW6	= IOMUX_PIN(52,    93),
23586271115SStefano Babic 	MX31_PIN_KEY_ROW5	= IOMUX_PIN(51,    94),
23686271115SStefano Babic 	MX31_PIN_KEY_ROW4	= IOMUX_PIN(50,    95),
23786271115SStefano Babic 	MX31_PIN_KEY_ROW3	= IOMUX_PIN(0xff,  96),
23886271115SStefano Babic 	MX31_PIN_KEY_ROW2	= IOMUX_PIN(0xff,  97),
23986271115SStefano Babic 	MX31_PIN_KEY_ROW1	= IOMUX_PIN(0xff,  98),
24086271115SStefano Babic 	MX31_PIN_KEY_ROW0	= IOMUX_PIN(0xff,  99),
24186271115SStefano Babic 	MX31_PIN_BATT_LINE	= IOMUX_PIN(49,   100),
24286271115SStefano Babic 	MX31_PIN_CTS2		= IOMUX_PIN(0xff, 101),
24386271115SStefano Babic 	MX31_PIN_RTS2		= IOMUX_PIN(0xff, 102),
24486271115SStefano Babic 	MX31_PIN_TXD2		= IOMUX_PIN(28,   103),
24586271115SStefano Babic 	MX31_PIN_RXD2		= IOMUX_PIN(27,   104),
24686271115SStefano Babic 	MX31_PIN_DTR_DCE2	= IOMUX_PIN(48,   105),
24786271115SStefano Babic 	MX31_PIN_DCD_DTE1	= IOMUX_PIN(47,   106),
24886271115SStefano Babic 	MX31_PIN_RI_DTE1	= IOMUX_PIN(46,   107),
24986271115SStefano Babic 	MX31_PIN_DSR_DTE1	= IOMUX_PIN(45,   108),
25086271115SStefano Babic 	MX31_PIN_DTR_DTE1	= IOMUX_PIN(44,   109),
25186271115SStefano Babic 	MX31_PIN_DCD_DCE1	= IOMUX_PIN(43,   110),
25286271115SStefano Babic 	MX31_PIN_RI_DCE1	= IOMUX_PIN(42,   111),
25386271115SStefano Babic 	MX31_PIN_DSR_DCE1	= IOMUX_PIN(41,   112),
25486271115SStefano Babic 	MX31_PIN_DTR_DCE1	= IOMUX_PIN(40,   113),
25586271115SStefano Babic 	MX31_PIN_CTS1		= IOMUX_PIN(39,   114),
25686271115SStefano Babic 	MX31_PIN_RTS1		= IOMUX_PIN(38,   115),
25786271115SStefano Babic 	MX31_PIN_TXD1		= IOMUX_PIN(37,   116),
25886271115SStefano Babic 	MX31_PIN_RXD1		= IOMUX_PIN(36,   117),
25986271115SStefano Babic 	MX31_PIN_CSPI2_SPI_RDY	= IOMUX_PIN(0xff, 118),
26086271115SStefano Babic 	MX31_PIN_CSPI2_SCLK	= IOMUX_PIN(0xff, 119),
26186271115SStefano Babic 	MX31_PIN_CSPI2_SS2	= IOMUX_PIN(0xff, 120),
26286271115SStefano Babic 	MX31_PIN_CSPI2_SS1	= IOMUX_PIN(0xff, 121),
26386271115SStefano Babic 	MX31_PIN_CSPI2_SS0	= IOMUX_PIN(0xff, 122),
26486271115SStefano Babic 	MX31_PIN_CSPI2_MISO	= IOMUX_PIN(0xff, 123),
26586271115SStefano Babic 	MX31_PIN_CSPI2_MOSI	= IOMUX_PIN(0xff, 124),
26686271115SStefano Babic 	MX31_PIN_CSPI1_SPI_RDY	= IOMUX_PIN(0xff, 125),
26786271115SStefano Babic 	MX31_PIN_CSPI1_SCLK	= IOMUX_PIN(0xff, 126),
26886271115SStefano Babic 	MX31_PIN_CSPI1_SS2	= IOMUX_PIN(0xff, 127),
26986271115SStefano Babic 	MX31_PIN_CSPI1_SS1	= IOMUX_PIN(0xff, 128),
27086271115SStefano Babic 	MX31_PIN_CSPI1_SS0	= IOMUX_PIN(0xff, 129),
27186271115SStefano Babic 	MX31_PIN_CSPI1_MISO	= IOMUX_PIN(0xff, 130),
27286271115SStefano Babic 	MX31_PIN_CSPI1_MOSI	= IOMUX_PIN(0xff, 131),
27386271115SStefano Babic 	MX31_PIN_SFS6		= IOMUX_PIN(26,   132),
27486271115SStefano Babic 	MX31_PIN_SCK6		= IOMUX_PIN(25,   133),
27586271115SStefano Babic 	MX31_PIN_SRXD6		= IOMUX_PIN(24,   134),
27686271115SStefano Babic 	MX31_PIN_STXD6		= IOMUX_PIN(23,   135),
27786271115SStefano Babic 	MX31_PIN_SFS5		= IOMUX_PIN(0xff, 136),
27886271115SStefano Babic 	MX31_PIN_SCK5		= IOMUX_PIN(0xff, 137),
27986271115SStefano Babic 	MX31_PIN_SRXD5		= IOMUX_PIN(22,   138),
28086271115SStefano Babic 	MX31_PIN_STXD5		= IOMUX_PIN(21,   139),
28186271115SStefano Babic 	MX31_PIN_SFS4		= IOMUX_PIN(0xff, 140),
28286271115SStefano Babic 	MX31_PIN_SCK4		= IOMUX_PIN(0xff, 141),
28386271115SStefano Babic 	MX31_PIN_SRXD4		= IOMUX_PIN(20,   142),
28486271115SStefano Babic 	MX31_PIN_STXD4		= IOMUX_PIN(19,   143),
28586271115SStefano Babic 	MX31_PIN_SFS3		= IOMUX_PIN(0xff, 144),
28686271115SStefano Babic 	MX31_PIN_SCK3		= IOMUX_PIN(0xff, 145),
28786271115SStefano Babic 	MX31_PIN_SRXD3		= IOMUX_PIN(18,   146),
28886271115SStefano Babic 	MX31_PIN_STXD3		= IOMUX_PIN(17,   147),
28986271115SStefano Babic 	MX31_PIN_I2C_DAT	= IOMUX_PIN(0xff, 148),
29086271115SStefano Babic 	MX31_PIN_I2C_CLK	= IOMUX_PIN(0xff, 149),
29186271115SStefano Babic 	MX31_PIN_CSI_PIXCLK	= IOMUX_PIN(83,   150),
29286271115SStefano Babic 	MX31_PIN_CSI_HSYNC	= IOMUX_PIN(82,   151),
29386271115SStefano Babic 	MX31_PIN_CSI_VSYNC	= IOMUX_PIN(81,   152),
29486271115SStefano Babic 	MX31_PIN_CSI_MCLK	= IOMUX_PIN(80,   153),
29586271115SStefano Babic 	MX31_PIN_CSI_D15	= IOMUX_PIN(79,   154),
29686271115SStefano Babic 	MX31_PIN_CSI_D14	= IOMUX_PIN(78,   155),
29786271115SStefano Babic 	MX31_PIN_CSI_D13	= IOMUX_PIN(77,   156),
29886271115SStefano Babic 	MX31_PIN_CSI_D12	= IOMUX_PIN(76,   157),
29986271115SStefano Babic 	MX31_PIN_CSI_D11	= IOMUX_PIN(75,   158),
30086271115SStefano Babic 	MX31_PIN_CSI_D10	= IOMUX_PIN(74,   159),
30186271115SStefano Babic 	MX31_PIN_CSI_D9		= IOMUX_PIN(73,   160),
30286271115SStefano Babic 	MX31_PIN_CSI_D8		= IOMUX_PIN(72,   161),
30386271115SStefano Babic 	MX31_PIN_CSI_D7		= IOMUX_PIN(71,   162),
30486271115SStefano Babic 	MX31_PIN_CSI_D6		= IOMUX_PIN(70,   163),
30586271115SStefano Babic 	MX31_PIN_CSI_D5		= IOMUX_PIN(69,   164),
30686271115SStefano Babic 	MX31_PIN_CSI_D4		= IOMUX_PIN(68,   165),
30786271115SStefano Babic 	MX31_PIN_M_GRANT	= IOMUX_PIN(0xff, 166),
30886271115SStefano Babic 	MX31_PIN_M_REQUEST	= IOMUX_PIN(0xff, 167),
30986271115SStefano Babic 	MX31_PIN_PC_POE		= IOMUX_PIN(0xff, 168),
31086271115SStefano Babic 	MX31_PIN_PC_RW_B	= IOMUX_PIN(0xff, 169),
31186271115SStefano Babic 	MX31_PIN_IOIS16		= IOMUX_PIN(0xff, 170),
31286271115SStefano Babic 	MX31_PIN_PC_RST		= IOMUX_PIN(0xff, 171),
31386271115SStefano Babic 	MX31_PIN_PC_BVD2	= IOMUX_PIN(0xff, 172),
31486271115SStefano Babic 	MX31_PIN_PC_BVD1	= IOMUX_PIN(0xff, 173),
31586271115SStefano Babic 	MX31_PIN_PC_VS2		= IOMUX_PIN(0xff, 174),
31686271115SStefano Babic 	MX31_PIN_PC_VS1		= IOMUX_PIN(0xff, 175),
31786271115SStefano Babic 	MX31_PIN_PC_PWRON	= IOMUX_PIN(0xff, 176),
31886271115SStefano Babic 	MX31_PIN_PC_READY	= IOMUX_PIN(0xff, 177),
31986271115SStefano Babic 	MX31_PIN_PC_WAIT_B	= IOMUX_PIN(0xff, 178),
32086271115SStefano Babic 	MX31_PIN_PC_CD2_B	= IOMUX_PIN(0xff, 179),
32186271115SStefano Babic 	MX31_PIN_PC_CD1_B	= IOMUX_PIN(0xff, 180),
32286271115SStefano Babic 	MX31_PIN_D0		= IOMUX_PIN(0xff, 181),
32386271115SStefano Babic 	MX31_PIN_D1		= IOMUX_PIN(0xff, 182),
32486271115SStefano Babic 	MX31_PIN_D2		= IOMUX_PIN(0xff, 183),
32586271115SStefano Babic 	MX31_PIN_D3		= IOMUX_PIN(0xff, 184),
32686271115SStefano Babic 	MX31_PIN_D4		= IOMUX_PIN(0xff, 185),
32786271115SStefano Babic 	MX31_PIN_D5		= IOMUX_PIN(0xff, 186),
32886271115SStefano Babic 	MX31_PIN_D6		= IOMUX_PIN(0xff, 187),
32986271115SStefano Babic 	MX31_PIN_D7		= IOMUX_PIN(0xff, 188),
33086271115SStefano Babic 	MX31_PIN_D8		= IOMUX_PIN(0xff, 189),
33186271115SStefano Babic 	MX31_PIN_D9		= IOMUX_PIN(0xff, 190),
33286271115SStefano Babic 	MX31_PIN_D10		= IOMUX_PIN(0xff, 191),
33386271115SStefano Babic 	MX31_PIN_D11		= IOMUX_PIN(0xff, 192),
33486271115SStefano Babic 	MX31_PIN_D12		= IOMUX_PIN(0xff, 193),
33586271115SStefano Babic 	MX31_PIN_D13		= IOMUX_PIN(0xff, 194),
33686271115SStefano Babic 	MX31_PIN_D14		= IOMUX_PIN(0xff, 195),
33786271115SStefano Babic 	MX31_PIN_D15		= IOMUX_PIN(0xff, 196),
33886271115SStefano Babic 	MX31_PIN_NFRB		= IOMUX_PIN(16,   197),
33986271115SStefano Babic 	MX31_PIN_NFCE_B		= IOMUX_PIN(15,   198),
34086271115SStefano Babic 	MX31_PIN_NFWP_B		= IOMUX_PIN(14,   199),
34186271115SStefano Babic 	MX31_PIN_NFCLE		= IOMUX_PIN(13,   200),
34286271115SStefano Babic 	MX31_PIN_NFALE		= IOMUX_PIN(12,   201),
34386271115SStefano Babic 	MX31_PIN_NFRE_B		= IOMUX_PIN(11,   202),
34486271115SStefano Babic 	MX31_PIN_NFWE_B		= IOMUX_PIN(10,   203),
34586271115SStefano Babic 	MX31_PIN_SDQS3		= IOMUX_PIN(0xff, 204),
34686271115SStefano Babic 	MX31_PIN_SDQS2		= IOMUX_PIN(0xff, 205),
34786271115SStefano Babic 	MX31_PIN_SDQS1		= IOMUX_PIN(0xff, 206),
34886271115SStefano Babic 	MX31_PIN_SDQS0		= IOMUX_PIN(0xff, 207),
34986271115SStefano Babic 	MX31_PIN_SDCLK_B	= IOMUX_PIN(0xff, 208),
35086271115SStefano Babic 	MX31_PIN_SDCLK		= IOMUX_PIN(0xff, 209),
35186271115SStefano Babic 	MX31_PIN_SDCKE1		= IOMUX_PIN(0xff, 210),
35286271115SStefano Babic 	MX31_PIN_SDCKE0		= IOMUX_PIN(0xff, 211),
35386271115SStefano Babic 	MX31_PIN_SDWE		= IOMUX_PIN(0xff, 212),
35486271115SStefano Babic 	MX31_PIN_CAS		= IOMUX_PIN(0xff, 213),
35586271115SStefano Babic 	MX31_PIN_RAS		= IOMUX_PIN(0xff, 214),
35686271115SStefano Babic 	MX31_PIN_RW		= IOMUX_PIN(0xff, 215),
35786271115SStefano Babic 	MX31_PIN_BCLK		= IOMUX_PIN(0xff, 216),
35886271115SStefano Babic 	MX31_PIN_LBA		= IOMUX_PIN(0xff, 217),
35986271115SStefano Babic 	MX31_PIN_ECB		= IOMUX_PIN(0xff, 218),
36086271115SStefano Babic 	MX31_PIN_CS5		= IOMUX_PIN(0xff, 219),
36186271115SStefano Babic 	MX31_PIN_CS4		= IOMUX_PIN(0xff, 220),
36286271115SStefano Babic 	MX31_PIN_CS3		= IOMUX_PIN(0xff, 221),
36386271115SStefano Babic 	MX31_PIN_CS2		= IOMUX_PIN(0xff, 222),
36486271115SStefano Babic 	MX31_PIN_CS1		= IOMUX_PIN(0xff, 223),
36586271115SStefano Babic 	MX31_PIN_CS0		= IOMUX_PIN(0xff, 224),
36686271115SStefano Babic 	MX31_PIN_OE		= IOMUX_PIN(0xff, 225),
36786271115SStefano Babic 	MX31_PIN_EB1		= IOMUX_PIN(0xff, 226),
36886271115SStefano Babic 	MX31_PIN_EB0		= IOMUX_PIN(0xff, 227),
36986271115SStefano Babic 	MX31_PIN_DQM3		= IOMUX_PIN(0xff, 228),
37086271115SStefano Babic 	MX31_PIN_DQM2		= IOMUX_PIN(0xff, 229),
37186271115SStefano Babic 	MX31_PIN_DQM1		= IOMUX_PIN(0xff, 230),
37286271115SStefano Babic 	MX31_PIN_DQM0		= IOMUX_PIN(0xff, 231),
37386271115SStefano Babic 	MX31_PIN_SD31		= IOMUX_PIN(0xff, 232),
37486271115SStefano Babic 	MX31_PIN_SD30		= IOMUX_PIN(0xff, 233),
37586271115SStefano Babic 	MX31_PIN_SD29		= IOMUX_PIN(0xff, 234),
37686271115SStefano Babic 	MX31_PIN_SD28		= IOMUX_PIN(0xff, 235),
37786271115SStefano Babic 	MX31_PIN_SD27		= IOMUX_PIN(0xff, 236),
37886271115SStefano Babic 	MX31_PIN_SD26		= IOMUX_PIN(0xff, 237),
37986271115SStefano Babic 	MX31_PIN_SD25		= IOMUX_PIN(0xff, 238),
38086271115SStefano Babic 	MX31_PIN_SD24		= IOMUX_PIN(0xff, 239),
38186271115SStefano Babic 	MX31_PIN_SD23		= IOMUX_PIN(0xff, 240),
38286271115SStefano Babic 	MX31_PIN_SD22		= IOMUX_PIN(0xff, 241),
38386271115SStefano Babic 	MX31_PIN_SD21		= IOMUX_PIN(0xff, 242),
38486271115SStefano Babic 	MX31_PIN_SD20		= IOMUX_PIN(0xff, 243),
38586271115SStefano Babic 	MX31_PIN_SD19		= IOMUX_PIN(0xff, 244),
38686271115SStefano Babic 	MX31_PIN_SD18		= IOMUX_PIN(0xff, 245),
38786271115SStefano Babic 	MX31_PIN_SD17		= IOMUX_PIN(0xff, 246),
38886271115SStefano Babic 	MX31_PIN_SD16		= IOMUX_PIN(0xff, 247),
38986271115SStefano Babic 	MX31_PIN_SD15		= IOMUX_PIN(0xff, 248),
39086271115SStefano Babic 	MX31_PIN_SD14		= IOMUX_PIN(0xff, 249),
39186271115SStefano Babic 	MX31_PIN_SD13		= IOMUX_PIN(0xff, 250),
39286271115SStefano Babic 	MX31_PIN_SD12		= IOMUX_PIN(0xff, 251),
39386271115SStefano Babic 	MX31_PIN_SD11		= IOMUX_PIN(0xff, 252),
39486271115SStefano Babic 	MX31_PIN_SD10		= IOMUX_PIN(0xff, 253),
39586271115SStefano Babic 	MX31_PIN_SD9		= IOMUX_PIN(0xff, 254),
39686271115SStefano Babic 	MX31_PIN_SD8		= IOMUX_PIN(0xff, 255),
39786271115SStefano Babic 	MX31_PIN_SD7		= IOMUX_PIN(0xff, 256),
39886271115SStefano Babic 	MX31_PIN_SD6		= IOMUX_PIN(0xff, 257),
39986271115SStefano Babic 	MX31_PIN_SD5		= IOMUX_PIN(0xff, 258),
40086271115SStefano Babic 	MX31_PIN_SD4		= IOMUX_PIN(0xff, 259),
40186271115SStefano Babic 	MX31_PIN_SD3		= IOMUX_PIN(0xff, 260),
40286271115SStefano Babic 	MX31_PIN_SD2		= IOMUX_PIN(0xff, 261),
40386271115SStefano Babic 	MX31_PIN_SD1		= IOMUX_PIN(0xff, 262),
40486271115SStefano Babic 	MX31_PIN_SD0		= IOMUX_PIN(0xff, 263),
40586271115SStefano Babic 	MX31_PIN_SDBA0		= IOMUX_PIN(0xff, 264),
40686271115SStefano Babic 	MX31_PIN_SDBA1		= IOMUX_PIN(0xff, 265),
40786271115SStefano Babic 	MX31_PIN_A25		= IOMUX_PIN(0xff, 266),
40886271115SStefano Babic 	MX31_PIN_A24		= IOMUX_PIN(0xff, 267),
40986271115SStefano Babic 	MX31_PIN_A23		= IOMUX_PIN(0xff, 268),
41086271115SStefano Babic 	MX31_PIN_A22		= IOMUX_PIN(0xff, 269),
41186271115SStefano Babic 	MX31_PIN_A21		= IOMUX_PIN(0xff, 270),
41286271115SStefano Babic 	MX31_PIN_A20		= IOMUX_PIN(0xff, 271),
41386271115SStefano Babic 	MX31_PIN_A19		= IOMUX_PIN(0xff, 272),
41486271115SStefano Babic 	MX31_PIN_A18		= IOMUX_PIN(0xff, 273),
41586271115SStefano Babic 	MX31_PIN_A17		= IOMUX_PIN(0xff, 274),
41686271115SStefano Babic 	MX31_PIN_A16		= IOMUX_PIN(0xff, 275),
41786271115SStefano Babic 	MX31_PIN_A14		= IOMUX_PIN(0xff, 276),
41886271115SStefano Babic 	MX31_PIN_A15		= IOMUX_PIN(0xff, 277),
41986271115SStefano Babic 	MX31_PIN_A13		= IOMUX_PIN(0xff, 278),
42086271115SStefano Babic 	MX31_PIN_A12		= IOMUX_PIN(0xff, 279),
42186271115SStefano Babic 	MX31_PIN_A11		= IOMUX_PIN(0xff, 280),
42286271115SStefano Babic 	MX31_PIN_MA10		= IOMUX_PIN(0xff, 281),
42386271115SStefano Babic 	MX31_PIN_A10		= IOMUX_PIN(0xff, 282),
42486271115SStefano Babic 	MX31_PIN_A9		= IOMUX_PIN(0xff, 283),
42586271115SStefano Babic 	MX31_PIN_A8		= IOMUX_PIN(0xff, 284),
42686271115SStefano Babic 	MX31_PIN_A7		= IOMUX_PIN(0xff, 285),
42786271115SStefano Babic 	MX31_PIN_A6		= IOMUX_PIN(0xff, 286),
42886271115SStefano Babic 	MX31_PIN_A5		= IOMUX_PIN(0xff, 287),
42986271115SStefano Babic 	MX31_PIN_A4		= IOMUX_PIN(0xff, 288),
43086271115SStefano Babic 	MX31_PIN_A3		= IOMUX_PIN(0xff, 289),
43186271115SStefano Babic 	MX31_PIN_A2		= IOMUX_PIN(0xff, 290),
43286271115SStefano Babic 	MX31_PIN_A1		= IOMUX_PIN(0xff, 291),
43386271115SStefano Babic 	MX31_PIN_A0		= IOMUX_PIN(0xff, 292),
43486271115SStefano Babic 	MX31_PIN_VPG1		= IOMUX_PIN(0xff, 293),
43586271115SStefano Babic 	MX31_PIN_VPG0		= IOMUX_PIN(0xff, 294),
43686271115SStefano Babic 	MX31_PIN_DVFS1		= IOMUX_PIN(0xff, 295),
43786271115SStefano Babic 	MX31_PIN_DVFS0		= IOMUX_PIN(0xff, 296),
43886271115SStefano Babic 	MX31_PIN_VSTBY		= IOMUX_PIN(0xff, 297),
43986271115SStefano Babic 	MX31_PIN_POWER_FAIL	= IOMUX_PIN(0xff, 298),
44086271115SStefano Babic 	MX31_PIN_CKIL		= IOMUX_PIN(0xff, 299),
44186271115SStefano Babic 	MX31_PIN_BOOT_MODE4	= IOMUX_PIN(0xff, 300),
44286271115SStefano Babic 	MX31_PIN_BOOT_MODE3	= IOMUX_PIN(0xff, 301),
44386271115SStefano Babic 	MX31_PIN_BOOT_MODE2	= IOMUX_PIN(0xff, 302),
44486271115SStefano Babic 	MX31_PIN_BOOT_MODE1	= IOMUX_PIN(0xff, 303),
44586271115SStefano Babic 	MX31_PIN_BOOT_MODE0	= IOMUX_PIN(0xff, 304),
44686271115SStefano Babic 	MX31_PIN_CLKO		= IOMUX_PIN(0xff, 305),
44786271115SStefano Babic 	MX31_PIN_POR_B		= IOMUX_PIN(0xff, 306),
44886271115SStefano Babic 	MX31_PIN_RESET_IN_B	= IOMUX_PIN(0xff, 307),
44986271115SStefano Babic 	MX31_PIN_CKIH		= IOMUX_PIN(0xff, 308),
45086271115SStefano Babic 	MX31_PIN_SIMPD0		= IOMUX_PIN(35,   309),
45186271115SStefano Babic 	MX31_PIN_SRX0		= IOMUX_PIN(34,   310),
45286271115SStefano Babic 	MX31_PIN_STX0		= IOMUX_PIN(33,   311),
45386271115SStefano Babic 	MX31_PIN_SVEN0		= IOMUX_PIN(32,   312),
45486271115SStefano Babic 	MX31_PIN_SRST0		= IOMUX_PIN(67,   313),
45586271115SStefano Babic 	MX31_PIN_SCLK0		= IOMUX_PIN(66,   314),
45686271115SStefano Babic 	MX31_PIN_GPIO3_1	= IOMUX_PIN(65,   315),
45786271115SStefano Babic 	MX31_PIN_GPIO3_0	= IOMUX_PIN(64,   316),
45886271115SStefano Babic 	MX31_PIN_GPIO1_6	= IOMUX_PIN(6,    317),
45986271115SStefano Babic 	MX31_PIN_GPIO1_5	= IOMUX_PIN(5,    318),
46086271115SStefano Babic 	MX31_PIN_GPIO1_4	= IOMUX_PIN(4,    319),
46186271115SStefano Babic 	MX31_PIN_GPIO1_3	= IOMUX_PIN(3,    320),
46286271115SStefano Babic 	MX31_PIN_GPIO1_2	= IOMUX_PIN(2,    321),
46386271115SStefano Babic 	MX31_PIN_GPIO1_1	= IOMUX_PIN(1,    322),
46486271115SStefano Babic 	MX31_PIN_GPIO1_0	= IOMUX_PIN(0,    323),
46586271115SStefano Babic 	MX31_PIN_PWMO		= IOMUX_PIN(9,    324),
46686271115SStefano Babic 	MX31_PIN_WATCHDOG_RST	= IOMUX_PIN(0xff, 325),
46786271115SStefano Babic 	MX31_PIN_COMPARE	= IOMUX_PIN(8,    326),
46886271115SStefano Babic 	MX31_PIN_CAPTURE	= IOMUX_PIN(7,    327),
46986271115SStefano Babic };
47086271115SStefano Babic 
4716d0fb3dbSFabio Estevam /*
4726d0fb3dbSFabio Estevam  * various IOMUX general purpose functions
4736d0fb3dbSFabio Estevam  */
4746d0fb3dbSFabio Estevam enum iomux_gp_func {
4756d0fb3dbSFabio Estevam 	MUX_PGP_FIRI			= 1 << 0,
4766d0fb3dbSFabio Estevam 	MUX_DDR_MODE			= 1 << 1,
4776d0fb3dbSFabio Estevam 	MUX_PGP_CSPI_BB			= 1 << 2,
4786d0fb3dbSFabio Estevam 	MUX_PGP_ATA_1			= 1 << 3,
4796d0fb3dbSFabio Estevam 	MUX_PGP_ATA_2			= 1 << 4,
4806d0fb3dbSFabio Estevam 	MUX_PGP_ATA_3			= 1 << 5,
4816d0fb3dbSFabio Estevam 	MUX_PGP_ATA_4			= 1 << 6,
4826d0fb3dbSFabio Estevam 	MUX_PGP_ATA_5			= 1 << 7,
4836d0fb3dbSFabio Estevam 	MUX_PGP_ATA_6			= 1 << 8,
4846d0fb3dbSFabio Estevam 	MUX_PGP_ATA_7			= 1 << 9,
4856d0fb3dbSFabio Estevam 	MUX_PGP_ATA_8			= 1 << 10,
4866d0fb3dbSFabio Estevam 	MUX_PGP_UH2			= 1 << 11,
4876d0fb3dbSFabio Estevam 	MUX_SDCTL_CSD0_SEL		= 1 << 12,
4886d0fb3dbSFabio Estevam 	MUX_SDCTL_CSD1_SEL		= 1 << 13,
4896d0fb3dbSFabio Estevam 	MUX_CSPI1_UART3			= 1 << 14,
4906d0fb3dbSFabio Estevam 	MUX_EXTDMAREQ2_MBX_SEL		= 1 << 15,
4916d0fb3dbSFabio Estevam 	MUX_TAMPER_DETECT_EN		= 1 << 16,
4926d0fb3dbSFabio Estevam 	MUX_PGP_USB_4WIRE		= 1 << 17,
4936d0fb3dbSFabio Estevam 	MUX_PGP_USB_COMMON		= 1 << 18,
4946d0fb3dbSFabio Estevam 	MUX_SDHC_MEMSTICK1		= 1 << 19,
4956d0fb3dbSFabio Estevam 	MUX_SDHC_MEMSTICK2		= 1 << 20,
4966d0fb3dbSFabio Estevam 	MUX_PGP_SPLL_BYP		= 1 << 21,
4976d0fb3dbSFabio Estevam 	MUX_PGP_UPLL_BYP		= 1 << 22,
4986d0fb3dbSFabio Estevam 	MUX_PGP_MSHC1_CLK_SEL		= 1 << 23,
4996d0fb3dbSFabio Estevam 	MUX_PGP_MSHC2_CLK_SEL		= 1 << 24,
5006d0fb3dbSFabio Estevam 	MUX_CSPI3_UART5_SEL		= 1 << 25,
5016d0fb3dbSFabio Estevam 	MUX_PGP_ATA_9			= 1 << 26,
5026d0fb3dbSFabio Estevam 	MUX_PGP_USB_SUSPEND		= 1 << 27,
5036d0fb3dbSFabio Estevam 	MUX_PGP_USB_OTG_LOOPBACK	= 1 << 28,
5046d0fb3dbSFabio Estevam 	MUX_PGP_USB_HS1_LOOPBACK	= 1 << 29,
5056d0fb3dbSFabio Estevam 	MUX_PGP_USB_HS2_LOOPBACK	= 1 << 30,
5066d0fb3dbSFabio Estevam 	MUX_CLKO_DDR_MODE		= 1 << 31,
5076d0fb3dbSFabio Estevam };
5086d0fb3dbSFabio Estevam 
50986271115SStefano Babic /* Bit definitions for RCSR register in CCM */
51086271115SStefano Babic #define CCM_RCSR_NF16B	(1 << 31)
51186271115SStefano Babic #define CCM_RCSR_NFMS	(1 << 30)
51286271115SStefano Babic 
51347c5455aSHelmut Raiger /* WEIM CS control registers */
51447c5455aSHelmut Raiger struct mx31_weim_cscr {
51547c5455aSHelmut Raiger 	u32 upper;
51647c5455aSHelmut Raiger 	u32 lower;
51747c5455aSHelmut Raiger 	u32 additional;
51847c5455aSHelmut Raiger 	u32 reserved;
51947c5455aSHelmut Raiger };
52047c5455aSHelmut Raiger 
52147c5455aSHelmut Raiger struct mx31_weim {
52247c5455aSHelmut Raiger 	struct mx31_weim_cscr cscr[6];
52347c5455aSHelmut Raiger };
52447c5455aSHelmut Raiger 
52586271115SStefano Babic #endif
52686271115SStefano Babic 
52786271115SStefano Babic #define __REG(x)     (*((volatile u32 *)(x)))
52886271115SStefano Babic #define __REG16(x)   (*((volatile u16 *)(x)))
52986271115SStefano Babic #define __REG8(x)    (*((volatile u8 *)(x)))
53086271115SStefano Babic 
53186271115SStefano Babic #define CCM_BASE	0x53f80000
53286271115SStefano Babic #define CCM_CCMR	(CCM_BASE + 0x00)
53386271115SStefano Babic #define CCM_PDR0	(CCM_BASE + 0x04)
53486271115SStefano Babic #define CCM_PDR1	(CCM_BASE + 0x08)
53586271115SStefano Babic #define CCM_RCSR	(CCM_BASE + 0x0c)
53686271115SStefano Babic #define CCM_MPCTL	(CCM_BASE + 0x10)
53786271115SStefano Babic #define CCM_UPCTL	(CCM_BASE + 0x14)
53886271115SStefano Babic #define CCM_SPCTL	(CCM_BASE + 0x18)
53986271115SStefano Babic #define CCM_COSR	(CCM_BASE + 0x1C)
54086271115SStefano Babic #define CCM_CGR0	(CCM_BASE + 0x20)
54186271115SStefano Babic #define CCM_CGR1	(CCM_BASE + 0x24)
54286271115SStefano Babic #define CCM_CGR2	(CCM_BASE + 0x28)
54386271115SStefano Babic 
54486271115SStefano Babic #define CCMR_MDS	(1 << 7)
54586271115SStefano Babic #define CCMR_SBYCS	(1 << 4)
54686271115SStefano Babic #define CCMR_MPE	(1 << 3)
54786271115SStefano Babic #define CCMR_PRCS_MASK	(3 << 1)
54886271115SStefano Babic #define CCMR_FPM	(1 << 1)
54986271115SStefano Babic #define CCMR_CKIH	(2 << 1)
55086271115SStefano Babic 
5514adaf9bfSFabio Estevam #define MX31_IIM_BASE_ADDR	0x5001C000
5524adaf9bfSFabio Estevam 
55386271115SStefano Babic #define PDR0_CSI_PODF(x)	(((x) & 0x1ff) << 23)
55486271115SStefano Babic #define PDR0_PER_PODF(x)	(((x) & 0x1f) << 16)
55586271115SStefano Babic #define PDR0_HSP_PODF(x)	(((x) & 0x7) << 11)
55686271115SStefano Babic #define PDR0_NFC_PODF(x)	(((x) & 0x7) << 8)
55786271115SStefano Babic #define PDR0_IPG_PODF(x)	(((x) & 0x3) << 6)
55886271115SStefano Babic #define PDR0_MAX_PODF(x)	(((x) & 0x7) << 3)
55986271115SStefano Babic #define PDR0_MCU_PODF(x)	((x) & 0x7)
56086271115SStefano Babic 
56186271115SStefano Babic #define PLL_PD(x)		(((x) & 0xf) << 26)
56286271115SStefano Babic #define PLL_MFD(x)		(((x) & 0x3ff) << 16)
56386271115SStefano Babic #define PLL_MFI(x)		(((x) & 0xf) << 10)
56486271115SStefano Babic #define PLL_MFN(x)		(((x) & 0x3ff) << 0)
56586271115SStefano Babic 
566f0029198SHelmut Raiger #define GET_PDR0_CSI_PODF(x)	(((x) >> 23) & 0x1ff)
567f0029198SHelmut Raiger #define GET_PDR0_PER_PODF(x)	(((x) >> 16) & 0x1f)
568f0029198SHelmut Raiger #define GET_PDR0_HSP_PODF(x)	(((x) >> 11) & 0x7)
569f0029198SHelmut Raiger #define GET_PDR0_NFC_PODF(x)	(((x) >> 8) & 0x7)
570f0029198SHelmut Raiger #define GET_PDR0_IPG_PODF(x)	(((x) >> 6) & 0x3)
571f0029198SHelmut Raiger #define GET_PDR0_MAX_PODF(x)	(((x) >> 3) & 0x7)
572f0029198SHelmut Raiger #define GET_PDR0_MCU_PODF(x)	((x) & 0x7)
573f0029198SHelmut Raiger 
574f0029198SHelmut Raiger #define GET_PLL_PD(x)		(((x) >> 26) & 0xf)
575f0029198SHelmut Raiger #define GET_PLL_MFD(x)		(((x) >> 16) & 0x3ff)
576f0029198SHelmut Raiger #define GET_PLL_MFI(x)		(((x) >> 10) & 0xf)
577f0029198SHelmut Raiger #define GET_PLL_MFN(x)		(((x) >> 0) & 0x3ff)
578f0029198SHelmut Raiger 
579f0029198SHelmut Raiger 
58086271115SStefano Babic #define WEIM_ESDCTL0	0xB8001000
58186271115SStefano Babic #define WEIM_ESDCFG0	0xB8001004
58286271115SStefano Babic #define WEIM_ESDCTL1	0xB8001008
58386271115SStefano Babic #define WEIM_ESDCFG1	0xB800100C
58486271115SStefano Babic #define WEIM_ESDMISC	0xB8001010
58586271115SStefano Babic 
58686271115SStefano Babic #define ESDCTL_SDE			(1 << 31)
58786271115SStefano Babic #define ESDCTL_CMD_RW			(0 << 28)
58886271115SStefano Babic #define ESDCTL_CMD_PRECHARGE		(1 << 28)
58986271115SStefano Babic #define ESDCTL_CMD_AUTOREFRESH		(2 << 28)
59086271115SStefano Babic #define ESDCTL_CMD_LOADMODEREG		(3 << 28)
59186271115SStefano Babic #define ESDCTL_CMD_MANUALREFRESH	(4 << 28)
59286271115SStefano Babic #define ESDCTL_ROW_13			(2 << 24)
59386271115SStefano Babic #define ESDCTL_ROW(x)			((x) << 24)
59486271115SStefano Babic #define ESDCTL_COL_9			(1 << 20)
59586271115SStefano Babic #define ESDCTL_COL(x)			((x) << 20)
59686271115SStefano Babic #define ESDCTL_DSIZ(x)			((x) << 16)
59786271115SStefano Babic #define ESDCTL_SREFR(x)			((x) << 13)
59886271115SStefano Babic #define ESDCTL_PWDT(x)			((x) << 10)
59986271115SStefano Babic #define ESDCTL_FP(x)			((x) << 8)
60086271115SStefano Babic #define ESDCTL_BL(x)			((x) << 7)
60186271115SStefano Babic #define ESDCTL_PRCT(x)			((x) << 0)
60286271115SStefano Babic 
60347c5455aSHelmut Raiger /* 13 fields of the upper CS control register */
60447c5455aSHelmut Raiger #define CSCR_U(sp, wp, bcd, bcs, psz, pme, sync, dol, \
60547c5455aSHelmut Raiger 		cnc, wsc, ew, wws, edc) \
60647c5455aSHelmut Raiger 	((sp) << 31 | (wp) << 30 | (bcd) << 28 | (psz) << 22 | (pme) << 21 |\
60747c5455aSHelmut Raiger 	 (sync) << 20 | (dol) << 16 | (cnc) << 14 | (wsc) << 8 | (ew) << 7 |\
60847c5455aSHelmut Raiger 	 (wws) << 4 | (edc) << 0)
60947c5455aSHelmut Raiger /* 12 fields of the lower CS control register */
61047c5455aSHelmut Raiger #define CSCR_L(oea, oen, ebwa, ebwn, \
61147c5455aSHelmut Raiger 		csa, ebc, dsz, csn, psr, cre, wrap, csen) \
61247c5455aSHelmut Raiger 	((oea) << 28 | (oen) << 24 | (ebwa) << 20 | (ebwn) << 16 |\
61347c5455aSHelmut Raiger 	 (csa) << 12 | (ebc) << 11 | (dsz) << 8 | (csn) << 4 |\
61447c5455aSHelmut Raiger 	 (psr) << 3 | (cre) << 2 | (wrap) << 1 | (csen) << 0)
61547c5455aSHelmut Raiger /* 14 fields of the additional CS control register */
61647c5455aSHelmut Raiger #define CSCR_A(ebra, ebrn, rwa, rwn, mum, lah, lbn, lba, dww, dct, \
61747c5455aSHelmut Raiger 		wwu, age, cnc2, fce) \
61847c5455aSHelmut Raiger 	((ebra) << 28 | (ebrn) << 24 | (rwa) << 20 | (rwn) << 16 |\
61947c5455aSHelmut Raiger 	 (mum) << 15 | (lah) << 13 | (lbn) << 10 | (lba) << 8 |\
62047c5455aSHelmut Raiger 	 (dww) << 6 | (dct) << 4 | (wwu) << 3 |\
62147c5455aSHelmut Raiger 	 (age) << 2 | (cnc2) << 1 | (fce) << 0)
62247c5455aSHelmut Raiger 
62386271115SStefano Babic #define WEIM_BASE	0xb8002000
62486271115SStefano Babic 
62586271115SStefano Babic #define IOMUXC_BASE	0x43FAC000
62686271115SStefano Babic #define IOMUXC_GPR	(IOMUXC_BASE + 0x8)
62786271115SStefano Babic #define IOMUXC_SW_MUX_CTL(x)	(IOMUXC_BASE + 0xc + (x) * 4)
62886271115SStefano Babic #define IOMUXC_SW_PAD_CTL(x)	(IOMUXC_BASE + 0x154 + (x) * 4)
62986271115SStefano Babic 
63086271115SStefano Babic #define IPU_BASE		0x53fc0000
63186271115SStefano Babic #define IPU_CONF		IPU_BASE
63286271115SStefano Babic 
63386271115SStefano Babic #define IPU_CONF_PXL_ENDIAN	(1<<8)
63486271115SStefano Babic #define IPU_CONF_DU_EN		(1<<7)
63586271115SStefano Babic #define IPU_CONF_DI_EN		(1<<6)
63686271115SStefano Babic #define IPU_CONF_ADC_EN		(1<<5)
63786271115SStefano Babic #define IPU_CONF_SDC_EN		(1<<4)
63886271115SStefano Babic #define IPU_CONF_PF_EN		(1<<3)
63986271115SStefano Babic #define IPU_CONF_ROT_EN		(1<<2)
64086271115SStefano Babic #define IPU_CONF_IC_EN		(1<<1)
64186271115SStefano Babic #define IPU_CONF_SCI_EN		(1<<0)
64286271115SStefano Babic 
64386271115SStefano Babic #define ARM_PPMRR		0x40000015
64486271115SStefano Babic 
64586271115SStefano Babic #define WDOG_BASE		0x53FDC000
64686271115SStefano Babic 
64786271115SStefano Babic /*
64886271115SStefano Babic  * GPIO
64986271115SStefano Babic  */
65086271115SStefano Babic #define GPIO1_BASE_ADDR	0x53FCC000
65186271115SStefano Babic #define GPIO2_BASE_ADDR	0x53FD0000
65286271115SStefano Babic #define GPIO3_BASE_ADDR	0x53FA4000
65386271115SStefano Babic #define GPIO_DR		0x00000000	/* data register */
65486271115SStefano Babic #define GPIO_GDIR	0x00000004	/* direction register */
65586271115SStefano Babic #define GPIO_PSR	0x00000008	/* pad status register */
65686271115SStefano Babic 
65786271115SStefano Babic /*
65886271115SStefano Babic  * Signal Multiplexing (IOMUX)
65986271115SStefano Babic  */
66086271115SStefano Babic 
66186271115SStefano Babic /* bits in the SW_MUX_CTL registers */
66286271115SStefano Babic #define MUX_CTL_OUT_GPIO_DR	(0 << 4)
66386271115SStefano Babic #define MUX_CTL_OUT_FUNC	(1 << 4)
66486271115SStefano Babic #define MUX_CTL_OUT_ALT1	(2 << 4)
66586271115SStefano Babic #define MUX_CTL_OUT_ALT2	(3 << 4)
66686271115SStefano Babic #define MUX_CTL_OUT_ALT3	(4 << 4)
66786271115SStefano Babic #define MUX_CTL_OUT_ALT4	(5 << 4)
66886271115SStefano Babic #define MUX_CTL_OUT_ALT5	(6 << 4)
66986271115SStefano Babic #define MUX_CTL_OUT_ALT6	(7 << 4)
67086271115SStefano Babic #define MUX_CTL_IN_NONE		(0 << 0)
67186271115SStefano Babic #define MUX_CTL_IN_GPIO		(1 << 0)
67286271115SStefano Babic #define MUX_CTL_IN_FUNC		(2 << 0)
67386271115SStefano Babic #define MUX_CTL_IN_ALT1		(4 << 0)
67486271115SStefano Babic #define MUX_CTL_IN_ALT2		(8 << 0)
67586271115SStefano Babic 
67686271115SStefano Babic #define MUX_CTL_FUNC		(MUX_CTL_OUT_FUNC | MUX_CTL_IN_FUNC)
67786271115SStefano Babic #define MUX_CTL_ALT1		(MUX_CTL_OUT_ALT1 | MUX_CTL_IN_ALT1)
67886271115SStefano Babic #define MUX_CTL_ALT2		(MUX_CTL_OUT_ALT2 | MUX_CTL_IN_ALT2)
67986271115SStefano Babic #define MUX_CTL_GPIO		(MUX_CTL_OUT_GPIO_DR | MUX_CTL_IN_GPIO)
68086271115SStefano Babic 
68186271115SStefano Babic /* Register offsets based on IOMUXC_BASE */
68286271115SStefano Babic /* 0x00 .. 0x7b */
683*d121d201SHelmut Raiger #define MUX_CTL_CSPI3_MISO		0x0c
684*d121d201SHelmut Raiger #define MUX_CTL_CSPI3_SCLK		0x0d
685*d121d201SHelmut Raiger #define MUX_CTL_CSPI3_SPI_RDY	0x0e
686*d121d201SHelmut Raiger #define MUX_CTL_CSPI3_MOSI		0x13
687*d121d201SHelmut Raiger 
68886271115SStefano Babic #define MUX_CTL_USBH2_DATA1	0x40
68986271115SStefano Babic #define MUX_CTL_USBH2_DIR	0x44
69086271115SStefano Babic #define MUX_CTL_USBH2_STP	0x45
69186271115SStefano Babic #define MUX_CTL_USBH2_NXT	0x46
69286271115SStefano Babic #define MUX_CTL_USBH2_DATA0	0x47
69386271115SStefano Babic #define MUX_CTL_USBH2_CLK	0x4B
694*d121d201SHelmut Raiger 
695*d121d201SHelmut Raiger #define MUX_CTL_TXD2		0x70
696*d121d201SHelmut Raiger #define MUX_CTL_RTS2		0x71
697*d121d201SHelmut Raiger #define MUX_CTL_CTS2		0x72
698*d121d201SHelmut Raiger #define MUX_CTL_RXD2		0x77
699*d121d201SHelmut Raiger 
70086271115SStefano Babic #define MUX_CTL_RTS1		0x7c
70186271115SStefano Babic #define MUX_CTL_CTS1		0x7d
70286271115SStefano Babic #define MUX_CTL_DTR_DCE1	0x7e
70386271115SStefano Babic #define MUX_CTL_DSR_DCE1	0x7f
70486271115SStefano Babic #define MUX_CTL_CSPI2_SCLK	0x80
70586271115SStefano Babic #define MUX_CTL_CSPI2_SPI_RDY	0x81
70686271115SStefano Babic #define MUX_CTL_RXD1		0x82
70786271115SStefano Babic #define MUX_CTL_TXD1		0x83
70886271115SStefano Babic #define MUX_CTL_CSPI2_MISO	0x84
70986271115SStefano Babic #define MUX_CTL_CSPI2_SS0	0x85
71086271115SStefano Babic #define MUX_CTL_CSPI2_SS1	0x86
71186271115SStefano Babic #define MUX_CTL_CSPI2_SS2	0x87
71286271115SStefano Babic #define MUX_CTL_CSPI1_SS2	0x88
71386271115SStefano Babic #define MUX_CTL_CSPI1_SCLK	0x89
71486271115SStefano Babic #define MUX_CTL_CSPI1_SPI_RDY	0x8a
71586271115SStefano Babic #define MUX_CTL_CSPI2_MOSI	0x8b
71686271115SStefano Babic #define MUX_CTL_CSPI1_MOSI	0x8c
71786271115SStefano Babic #define MUX_CTL_CSPI1_MISO	0x8d
71886271115SStefano Babic #define MUX_CTL_CSPI1_SS0	0x8e
71986271115SStefano Babic #define MUX_CTL_CSPI1_SS1	0x8f
72086271115SStefano Babic #define MUX_CTL_STXD6		0x90
72186271115SStefano Babic #define MUX_CTL_SRXD6		0x91
72286271115SStefano Babic #define MUX_CTL_SCK6		0x92
72386271115SStefano Babic #define MUX_CTL_SFS6		0x93
72486271115SStefano Babic 
72586271115SStefano Babic #define MUX_CTL_STXD3		0x9C
72686271115SStefano Babic #define MUX_CTL_SRXD3		0x9D
72786271115SStefano Babic #define MUX_CTL_SCK3		0x9E
72886271115SStefano Babic #define MUX_CTL_SFS3		0x9F
72986271115SStefano Babic 
73086271115SStefano Babic #define MUX_CTL_NFC_WP		0xD0
73186271115SStefano Babic #define MUX_CTL_NFC_CE		0xD1
73286271115SStefano Babic #define MUX_CTL_NFC_RB		0xD2
73386271115SStefano Babic #define MUX_CTL_NFC_WE		0xD4
73486271115SStefano Babic #define MUX_CTL_NFC_RE		0xD5
73586271115SStefano Babic #define MUX_CTL_NFC_ALE		0xD6
73686271115SStefano Babic #define MUX_CTL_NFC_CLE		0xD7
73786271115SStefano Babic 
73886271115SStefano Babic 
73986271115SStefano Babic #define MUX_CTL_CAPTURE		0x150
74086271115SStefano Babic #define MUX_CTL_COMPARE		0x151
74186271115SStefano Babic 
74286271115SStefano Babic /*
74386271115SStefano Babic  * Helper macros for the MUX_[contact name]__[pin function] macros
74486271115SStefano Babic  */
74586271115SStefano Babic #define IOMUX_MODE_POS 9
74686271115SStefano Babic #define IOMUX_MODE(contact, mode) (((mode) << IOMUX_MODE_POS) | (contact))
74786271115SStefano Babic 
74886271115SStefano Babic /*
74986271115SStefano Babic  * These macros can be used in mx31_gpio_mux() and have the form
75086271115SStefano Babic  * MUX_[contact name]__[pin function]
75186271115SStefano Babic  */
75286271115SStefano Babic #define MUX_RXD1__UART1_RXD_MUX	IOMUX_MODE(MUX_CTL_RXD1, MUX_CTL_FUNC)
75386271115SStefano Babic #define MUX_TXD1__UART1_TXD_MUX	IOMUX_MODE(MUX_CTL_TXD1, MUX_CTL_FUNC)
75486271115SStefano Babic #define MUX_RTS1__UART1_RTS_B	IOMUX_MODE(MUX_CTL_RTS1, MUX_CTL_FUNC)
75586271115SStefano Babic #define MUX_CTS1__UART1_CTS_B	IOMUX_MODE(MUX_CTL_CTS1, MUX_CTL_FUNC)
75686271115SStefano Babic 
757*d121d201SHelmut Raiger #define MUX_RXD2__UART2_RXD_MUX	IOMUX_MODE(MUX_CTL_RXD2, MUX_CTL_FUNC)
758*d121d201SHelmut Raiger #define MUX_TXD2__UART2_TXD_MUX	IOMUX_MODE(MUX_CTL_TXD2, MUX_CTL_FUNC)
759*d121d201SHelmut Raiger #define MUX_RTS2__UART2_RTS_B	IOMUX_MODE(MUX_CTL_RTS2, MUX_CTL_FUNC)
760*d121d201SHelmut Raiger #define MUX_CTS2__UART2_CTS_B	IOMUX_MODE(MUX_CTL_CTS2, MUX_CTL_FUNC)
761*d121d201SHelmut Raiger 
76286271115SStefano Babic #define MUX_CSPI2_SS0__CSPI2_SS0_B IOMUX_MODE(MUX_CTL_CSPI2_SS0, MUX_CTL_FUNC)
76386271115SStefano Babic #define MUX_CSPI2_SS1__CSPI2_SS1_B IOMUX_MODE(MUX_CTL_CSPI2_SS1, MUX_CTL_FUNC)
76486271115SStefano Babic #define MUX_CSPI2_SS2__CSPI2_SS2_B IOMUX_MODE(MUX_CTL_CSPI2_SS2, MUX_CTL_FUNC)
76586271115SStefano Babic #define MUX_CSPI2_MOSI__CSPI2_MOSI IOMUX_MODE(MUX_CTL_CSPI2_MOSI, MUX_CTL_FUNC)
76686271115SStefano Babic #define MUX_CSPI2_MISO__CSPI2_MISO IOMUX_MODE(MUX_CTL_CSPI2_MISO, MUX_CTL_FUNC)
76786271115SStefano Babic #define MUX_CSPI2_SPI_RDY__CSPI2_DATAREADY_B \
76886271115SStefano Babic 	IOMUX_MODE(MUX_CTL_CSPI2_SPI_RDY, MUX_CTL_FUNC)
76986271115SStefano Babic #define MUX_CSPI2_SCLK__CSPI2_CLK IOMUX_MODE(MUX_CTL_CSPI2_SCLK, MUX_CTL_FUNC)
77086271115SStefano Babic 
77186271115SStefano Babic #define MUX_CSPI1_SS0__CSPI1_SS0_B IOMUX_MODE(MUX_CTL_CSPI1_SS0, MUX_CTL_FUNC)
77286271115SStefano Babic #define MUX_CSPI1_SS1__CSPI1_SS1_B IOMUX_MODE(MUX_CTL_CSPI1_SS1, MUX_CTL_FUNC)
77386271115SStefano Babic #define MUX_CSPI1_SS2__CSPI1_SS2_B IOMUX_MODE(MUX_CTL_CSPI1_SS2, MUX_CTL_FUNC)
77486271115SStefano Babic #define MUX_CSPI1_MOSI__CSPI1_MOSI IOMUX_MODE(MUX_CTL_CSPI1_MOSI, MUX_CTL_FUNC)
77586271115SStefano Babic #define MUX_CSPI1_MISO__CSPI1_MISO IOMUX_MODE(MUX_CTL_CSPI1_MISO, MUX_CTL_FUNC)
77686271115SStefano Babic #define MUX_CSPI1_SPI_RDY__CSPI1_DATAREADY_B \
77786271115SStefano Babic 	IOMUX_MODE(MUX_CTL_CSPI1_SPI_RDY, MUX_CTL_FUNC)
77886271115SStefano Babic #define MUX_CSPI1_SCLK__CSPI1_CLK IOMUX_MODE(MUX_CTL_CSPI1_SCLK, MUX_CTL_FUNC)
77986271115SStefano Babic 
78086271115SStefano Babic #define MUX_CSPI2_MOSI__I2C2_SCL IOMUX_MODE(MUX_CTL_CSPI2_MOSI, MUX_CTL_ALT1)
78186271115SStefano Babic #define MUX_CSPI2_MISO__I2C2_SDA IOMUX_MODE(MUX_CTL_CSPI2_MISO, MUX_CTL_ALT1)
78286271115SStefano Babic 
78386271115SStefano Babic /* PAD control registers for SDR/DDR */
78486271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SDCKE1_SDCLK_SDCLK_B	(IOMUXC_BASE + 0x26C)
78586271115SStefano Babic #define IOMUXC_SW_PAD_CTL_CAS_SDWE_SDCKE0	(IOMUXC_BASE + 0x270)
78686271115SStefano Babic #define IOMUXC_SW_PAD_CTL_BCLK_RW_RAS		(IOMUXC_BASE + 0x274)
78786271115SStefano Babic #define IOMUXC_SW_PAD_CTL_CS5_ECB_LBA		(IOMUXC_BASE + 0x278)
78886271115SStefano Babic #define IOMUXC_SW_PAD_CTL_CS2_CS3_CS4		(IOMUXC_BASE + 0x27C)
78986271115SStefano Babic #define IOMUXC_SW_PAD_CTL_OE_CS0_CS1		(IOMUXC_BASE + 0x280)
79086271115SStefano Babic #define IOMUXC_SW_PAD_CTL_DQM3_EB0_EB1		(IOMUXC_BASE + 0x284)
79186271115SStefano Babic #define IOMUXC_SW_PAD_CTL_DQM0_DQM1_DQM2	(IOMUXC_BASE + 0x288)
79286271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SD29_SD30_SD31	(IOMUXC_BASE + 0x28C)
79386271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SD26_SD27_SD28	(IOMUXC_BASE + 0x290)
79486271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SD23_SD24_SD25	(IOMUXC_BASE + 0x294)
79586271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SD20_SD21_SD22	(IOMUXC_BASE + 0x298)
79686271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SD17_SD18_SD19	(IOMUXC_BASE + 0x29C)
79786271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SD14_SD15_SD16	(IOMUXC_BASE + 0x2A0)
79886271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SD11_SD12_SD13	(IOMUXC_BASE + 0x2A4)
79986271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SD8_SD9_SD10		(IOMUXC_BASE + 0x2A8)
80086271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SD5_SD6_SD7		(IOMUXC_BASE + 0x2AC)
80186271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SD2_SD3_SD4		(IOMUXC_BASE + 0x2B0)
80286271115SStefano Babic #define IOMUXC_SW_PAD_CTL_SDBA0_SD0_SD1		(IOMUXC_BASE + 0x2B4)
80386271115SStefano Babic #define IOMUXC_SW_PAD_CTL_A24_A25_SDBA1		(IOMUXC_BASE + 0x2B8)
80486271115SStefano Babic #define IOMUXC_SW_PAD_CTL_A21_A22_A23		(IOMUXC_BASE + 0x2BC)
80586271115SStefano Babic #define IOMUXC_SW_PAD_CTL_A18_A19_A20		(IOMUXC_BASE + 0x2C0)
80686271115SStefano Babic #define IOMUXC_SW_PAD_CTL_A15_A16_A17		(IOMUXC_BASE + 0x2C4)
80786271115SStefano Babic #define IOMUXC_SW_PAD_CTL_A12_A13_A14		(IOMUXC_BASE + 0x2C8)
80886271115SStefano Babic #define IOMUXC_SW_PAD_CTL_A10_MA10_A11		(IOMUXC_BASE + 0x2CC)
80986271115SStefano Babic #define IOMUXC_SW_PAD_CTL_A7_A8_A9		(IOMUXC_BASE + 0x2D0)
81086271115SStefano Babic #define IOMUXC_SW_PAD_CTL_A4_A5_A6		(IOMUXC_BASE + 0x2D4)
81186271115SStefano Babic #define IOMUXC_SW_PAD_CTL_A1_A2_A3		(IOMUXC_BASE + 0x2D8)
81286271115SStefano Babic #define IOMUXC_SW_PAD_CTL_VPG0_VPG1_A0		(IOMUXC_BASE + 0x2DC)
81386271115SStefano Babic 
81486271115SStefano Babic /*
81586271115SStefano Babic  * Memory regions and CS
81686271115SStefano Babic  */
81786271115SStefano Babic #define IPU_MEM_BASE	0x70000000
81886271115SStefano Babic #define CSD0_BASE	0x80000000
81986271115SStefano Babic #define CSD1_BASE	0x90000000
82086271115SStefano Babic #define CS0_BASE	0xA0000000
82186271115SStefano Babic #define CS1_BASE	0xA8000000
82286271115SStefano Babic #define CS2_BASE	0xB0000000
82386271115SStefano Babic #define CS3_BASE	0xB2000000
82486271115SStefano Babic #define CS4_BASE	0xB4000000
82586271115SStefano Babic #define CS4_PSRAM_BASE	0xB5000000
82686271115SStefano Babic #define CS5_BASE	0xB6000000
82786271115SStefano Babic #define PCMCIA_MEM_BASE	0xC0000000
82886271115SStefano Babic 
82986271115SStefano Babic /*
83086271115SStefano Babic  * NAND controller
83186271115SStefano Babic  */
83286271115SStefano Babic #define NFC_BASE_ADDR	0xB8000000
83386271115SStefano Babic 
83486271115SStefano Babic /*
83586271115SStefano Babic  * Internal RAM (16KB)
83686271115SStefano Babic  */
83786271115SStefano Babic #define	IRAM_BASE_ADDR	0x1FFFC000
83886271115SStefano Babic #define IRAM_SIZE	(16 * 1024)
83986271115SStefano Babic 
84086271115SStefano Babic #define MX31_AIPS1_BASE_ADDR	0x43f00000
841dddb7c9fSMatthias Weisser #define IMX_USB_BASE		(MX31_AIPS1_BASE_ADDR + 0x88000)
84286271115SStefano Babic 
84386271115SStefano Babic /* USB portsc */
84486271115SStefano Babic /* values for portsc field */
84586271115SStefano Babic #define MXC_EHCI_PHY_LOW_POWER_SUSPEND	(1 << 23)
84686271115SStefano Babic #define MXC_EHCI_FORCE_FS		(1 << 24)
84786271115SStefano Babic #define MXC_EHCI_UTMI_8BIT		(0 << 28)
84886271115SStefano Babic #define MXC_EHCI_UTMI_16BIT		(1 << 28)
84986271115SStefano Babic #define MXC_EHCI_SERIAL			(1 << 29)
85086271115SStefano Babic #define MXC_EHCI_MODE_UTMI		(0 << 30)
85186271115SStefano Babic #define MXC_EHCI_MODE_PHILIPS		(1 << 30)
85286271115SStefano Babic #define MXC_EHCI_MODE_ULPI		(2 << 30)
85386271115SStefano Babic #define MXC_EHCI_MODE_SERIAL		(3 << 30)
85486271115SStefano Babic 
85586271115SStefano Babic /* values for flags field */
85686271115SStefano Babic #define MXC_EHCI_INTERFACE_DIFF_UNI	(0 << 0)
85786271115SStefano Babic #define MXC_EHCI_INTERFACE_DIFF_BI	(1 << 0)
85886271115SStefano Babic #define MXC_EHCI_INTERFACE_SINGLE_UNI	(2 << 0)
85986271115SStefano Babic #define MXC_EHCI_INTERFACE_SINGLE_BI	(3 << 0)
86086271115SStefano Babic #define MXC_EHCI_INTERFACE_MASK		(0xf)
86186271115SStefano Babic 
86286271115SStefano Babic #define MXC_EHCI_POWER_PINS_ENABLED	(1 << 5)
86386271115SStefano Babic #define MXC_EHCI_TTL_ENABLED		(1 << 6)
86486271115SStefano Babic 
86586271115SStefano Babic #define MXC_EHCI_INTERNAL_PHY		(1 << 7)
86686271115SStefano Babic #define MXC_EHCI_IPPUE_DOWN		(1 << 8)
86786271115SStefano Babic #define MXC_EHCI_IPPUE_UP		(1 << 9)
86886271115SStefano Babic 
869a770975aSFabio Estevam #endif /* __ASM_ARCH_MX31_IMX_REGS_H */
870