diff options
Diffstat (limited to 'arch/arm/plat-mxc/include/mach')
39 files changed, 2129 insertions, 1147 deletions
diff --git a/arch/arm/plat-mxc/include/mach/board-kzmarm11.h b/arch/arm/plat-mxc/include/mach/board-kzmarm11.h index 05ff2f31ef1..93cc66f104c 100644 --- a/arch/arm/plat-mxc/include/mach/board-kzmarm11.h +++ b/arch/arm/plat-mxc/include/mach/board-kzmarm11.h @@ -21,19 +21,19 @@  /*   *  KZM-ARM11-01 Board Control Registers on FPGA   */ -#define KZM_ARM11_CTL1		(CS4_BASE_ADDR + 0x1000) -#define KZM_ARM11_CTL2		(CS4_BASE_ADDR + 0x1001) -#define KZM_ARM11_RSW1		(CS4_BASE_ADDR + 0x1002) -#define KZM_ARM11_BACK_LIGHT	(CS4_BASE_ADDR + 0x1004) -#define KZM_ARM11_FPGA_REV	(CS4_BASE_ADDR + 0x1008) -#define KZM_ARM11_7SEG_LED	(CS4_BASE_ADDR + 0x1010) -#define KZM_ARM11_LEDS		(CS4_BASE_ADDR + 0x1020) -#define KZM_ARM11_DIPSW2	(CS4_BASE_ADDR + 0x1003) +#define KZM_ARM11_CTL1		(MX31_CS4_BASE_ADDR + 0x1000) +#define KZM_ARM11_CTL2		(MX31_CS4_BASE_ADDR + 0x1001) +#define KZM_ARM11_RSW1		(MX31_CS4_BASE_ADDR + 0x1002) +#define KZM_ARM11_BACK_LIGHT	(MX31_CS4_BASE_ADDR + 0x1004) +#define KZM_ARM11_FPGA_REV	(MX31_CS4_BASE_ADDR + 0x1008) +#define KZM_ARM11_7SEG_LED	(MX31_CS4_BASE_ADDR + 0x1010) +#define KZM_ARM11_LEDS		(MX31_CS4_BASE_ADDR + 0x1020) +#define KZM_ARM11_DIPSW2	(MX31_CS4_BASE_ADDR + 0x1003)  /*   * External UART for touch panel on FPGA   */ -#define KZM_ARM11_16550		(CS4_BASE_ADDR + 0x1050) +#define KZM_ARM11_16550		(MX31_CS4_BASE_ADDR + 0x1050)  #endif /* __ARM_ARCH_BOARD_KZM_ARM11_H */ diff --git a/arch/arm/plat-mxc/include/mach/board-mx31pdk.h b/arch/arm/plat-mxc/include/mach/board-mx31_3ds.h index 2bbd6ed17f5..da92933a233 100644 --- a/arch/arm/plat-mxc/include/mach/board-mx31pdk.h +++ b/arch/arm/plat-mxc/include/mach/board-mx31_3ds.h @@ -8,8 +8,8 @@   * published by the Free Software Foundation.   */ -#ifndef __ASM_ARCH_MXC_BOARD_MX31PDK_H__ -#define __ASM_ARCH_MXC_BOARD_MX31PDK_H__ +#ifndef __ASM_ARCH_MXC_BOARD_MX31_3DS_H__ +#define __ASM_ARCH_MXC_BOARD_MX31_3DS_H__  /* Definitions for components on the Debug board */ @@ -56,4 +56,4 @@  #define MXC_MAX_EXP_IO_LINES	16 -#endif /* __ASM_ARCH_MXC_BOARD_MX31PDK_H__ */ +#endif /* __ASM_ARCH_MXC_BOARD_MX31_3DS_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/board-mx31ads.h b/arch/arm/plat-mxc/include/mach/board-mx31ads.h index 2cbfa35e82f..095a199591c 100644 --- a/arch/arm/plat-mxc/include/mach/board-mx31ads.h +++ b/arch/arm/plat-mxc/include/mach/board-mx31ads.h @@ -14,7 +14,7 @@  #include <mach/hardware.h>  /* Base address of PBC controller */ -#define PBC_BASE_ADDRESS        IO_ADDRESS(CS4_BASE_ADDR) +#define PBC_BASE_ADDRESS        MX31_CS4_BASE_ADDR_VIRT  /* Offsets for the PBC Controller register */  /* PBC Board status register offset */ diff --git a/arch/arm/plat-mxc/include/mach/board-mx31moboard.h b/arch/arm/plat-mxc/include/mach/board-mx31moboard.h index d5be6b5a6ac..fc5fec9b55f 100644 --- a/arch/arm/plat-mxc/include/mach/board-mx31moboard.h +++ b/arch/arm/plat-mxc/include/mach/board-mx31moboard.h @@ -25,6 +25,7 @@ enum mx31moboard_boards {  	MX31NOBOARD	= 0,  	MX31DEVBOARD	= 1,  	MX31MARXBOT	= 2, +	MX31SMARTBOT	= 3,  };  /* @@ -34,6 +35,7 @@ enum mx31moboard_boards {  extern void mx31moboard_devboard_init(void);  extern void mx31moboard_marxbot_init(void); +extern void mx31moboard_smartbot_init(void);  #endif diff --git a/arch/arm/plat-mxc/include/mach/clock.h b/arch/arm/plat-mxc/include/mach/clock.h index 43a82d0c534..753a5988d85 100644 --- a/arch/arm/plat-mxc/include/mach/clock.h +++ b/arch/arm/plat-mxc/include/mach/clock.h @@ -26,13 +26,6 @@  struct module;  struct clk { -#ifndef CONFIG_COMMON_CLKDEV -	/* As soon as i.MX1 and i.MX31 switched to clkdev, this -	 * block can go away */ -	struct list_head node; -	struct module *owner; -	const char *name; -#endif  	int id;  	/* Source clock this clk depends on */  	struct clk *parent; diff --git a/arch/arm/plat-mxc/include/mach/common.h b/arch/arm/plat-mxc/include/mach/common.h index 4bf1068ffad..2941472582d 100644 --- a/arch/arm/plat-mxc/include/mach/common.h +++ b/arch/arm/plat-mxc/include/mach/common.h @@ -20,14 +20,17 @@ extern void mx25_map_io(void);  extern void mx27_map_io(void);  extern void mx31_map_io(void);  extern void mx35_map_io(void); +extern void mx51_map_io(void);  extern void mxc91231_map_io(void);  extern void mxc_init_irq(void __iomem *); +extern void tzic_init_irq(void __iomem *);  extern void mx1_init_irq(void);  extern void mx21_init_irq(void);  extern void mx25_init_irq(void);  extern void mx27_init_irq(void);  extern void mx31_init_irq(void);  extern void mx35_init_irq(void); +extern void mx51_init_irq(void);  extern void mxc91231_init_irq(void);  extern void mxc_timer_init(struct clk *timer_clk, void __iomem *, int);  extern int mx1_clocks_init(unsigned long fref); @@ -36,6 +39,8 @@ extern int mx25_clocks_init(void);  extern int mx27_clocks_init(unsigned long fref);  extern int mx31_clocks_init(unsigned long fref);  extern int mx35_clocks_init(void); +extern int mx51_clocks_init(unsigned long ckil, unsigned long osc, +			unsigned long ckih1, unsigned long ckih2);  extern int mxc91231_clocks_init(unsigned long fref);  extern int mxc_register_gpios(void);  extern int mxc_register_device(struct platform_device *pdev, void *data); diff --git a/arch/arm/plat-mxc/include/mach/debug-macro.S b/arch/arm/plat-mxc/include/mach/debug-macro.S index 5a6ae1b9e1e..0b6e11eaeb8 100644 --- a/arch/arm/plat-mxc/include/mach/debug-macro.S +++ b/arch/arm/plat-mxc/include/mach/debug-macro.S @@ -10,6 +10,7 @@   * published by the Free Software Foundation.   *   */ +#define IMX_NEEDS_DEPRECATED_SYMBOLS  #ifdef CONFIG_ARCH_MX1  #include <mach/mx1.h> @@ -44,13 +45,22 @@  #define UART_VADDR	AIPS1_IO_ADDRESS(UART1_BASE_ADDR)  #endif +#ifdef CONFIG_ARCH_MX5 +#ifdef UART_PADDR +#error "CONFIG_DEBUG_LL is incompatible with multiple archs" +#endif +#include <mach/mx51.h> +#define UART_PADDR	MX51_UART1_BASE_ADDR +#define UART_VADDR	MX51_AIPS1_IO_ADDRESS(MX51_UART1_BASE_ADDR) +#endif +  #ifdef CONFIG_ARCH_MXC91231  #ifdef UART_PADDR  #error "CONFIG_DEBUG_LL is incompatible with multiple archs"  #endif  #include <mach/mxc91231.h>  #define UART_PADDR	MXC91231_UART2_BASE_ADDR -#define UART_VADDR	MXC91231_AIPS1_IO_ADDRESS(MXC91231_UART2_BASE_ADDR) +#define UART_VADDR	MXC91231_IO_ADDRESS(MXC91231_UART2_BASE_ADDR)  #endif  		.macro	addruart, rx, tmp  		mrc	p15, 0, \rx, c1, c0 diff --git a/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h b/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h index 07be8ad7ec3..7c4870bd5a2 100644 --- a/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h +++ b/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h @@ -31,7 +31,13 @@  #define DMA_MODE_WRITE		1  #define DMA_MODE_MASK		1 -#define DMA_BASE IO_ADDRESS(DMA_BASE_ADDR) +#define MX1_DMA_REG(offset)	MX1_IO_ADDRESS(MX1_DMA_BASE_ADDR + (offset)) + +/* DMA Interrupt Mask Register */ +#define MX1_DMA_DIMR		MX1_DMA_REG(0x08) + +/* Channel Control Register */ +#define MX1_DMA_CCR(x)		MX1_DMA_REG(0x8c + ((x) << 6))  #define IMX_DMA_MEMSIZE_32	(0 << 4)  #define IMX_DMA_MEMSIZE_8	(1 << 4) diff --git a/arch/arm/plat-mxc/include/mach/entry-macro.S b/arch/arm/plat-mxc/include/mach/entry-macro.S index 7cf290efe76..aeb08697726 100644 --- a/arch/arm/plat-mxc/include/mach/entry-macro.S +++ b/arch/arm/plat-mxc/include/mach/entry-macro.S @@ -1,6 +1,6 @@  /*   *  Copyright (C) 2007 Lennert Buytenhek <buytenh@wantstofly.org> - *  Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. + *  Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.   */  /* @@ -18,11 +18,16 @@  	.endm  	.macro  get_irqnr_preamble, base, tmp +#ifndef CONFIG_MXC_TZIC  	ldr	\base, =avic_base  	ldr	\base, [\base]  #ifdef CONFIG_MXC_IRQ_PRIOR  	ldr	r4, [\base, #AVIC_NIMASK]  #endif +#elif defined CONFIG_MXC_TZIC +	ldr	\base, =tzic_base +	ldr	\base, [\base] +#endif /* CONFIG_MXC_TZIC */  	.endm  	.macro  arch_ret_to_user, tmp1, tmp2 @@ -32,6 +37,7 @@  	@ and returns its number in irqnr  	@ and returns if an interrupt occured in irqstat  	.macro	get_irqnr_and_base, irqnr, irqstat, base, tmp +#ifndef CONFIG_MXC_TZIC  	@ Load offset & priority of the highest priority  	@ interrupt pending from AVIC_NIVECSR  	ldr	\irqstat, [\base, #0x40] @@ -45,6 +51,32 @@  	strne	\tmp, [\base, #AVIC_NIMASK]  	streq	r4, [\base, #AVIC_NIMASK]  #endif +#elif defined CONFIG_MXC_TZIC +	@ Load offset & priority of the highest priority +	@ interrupt pending. +	@ 0xD80 is HIPND0 register +	mov     \irqnr, #0 +	mov     \irqstat, #0x0D80 +1000: +	ldr     \tmp,   [\irqstat, \base] +	cmp     \tmp, #0 +	bne     1001f +	addeq   \irqnr, \irqnr, #32 +	addeq   \irqstat, \irqstat, #4 +	cmp     \irqnr, #128 +	blo     1000b +	b       2001f +1001:	mov     \irqstat, #1 +1002:	tst     \tmp, \irqstat +	bne     2002f +	movs    \tmp, \tmp, lsr #1 +	addne   \irqnr, \irqnr, #1 +	bne     1002b +2001: +	mov  \irqnr, #0 +2002: +	movs \irqnr, \irqnr +#endif  	.endm  	@ irq priority table (not used) diff --git a/arch/arm/plat-mxc/include/mach/hardware.h b/arch/arm/plat-mxc/include/mach/hardware.h index 78db75475f6..ebadf4ac43f 100644 --- a/arch/arm/plat-mxc/include/mach/hardware.h +++ b/arch/arm/plat-mxc/include/mach/hardware.h @@ -22,6 +22,15 @@  #include <asm/sizes.h> +#define IMX_IO_ADDRESS(addr, module)					\ +	((void __force __iomem *)					\ +	 (((unsigned long)((addr) - (module ## _BASE_ADDR)) < module ## _SIZE) ?\ +	 (addr) - (module ## _BASE_ADDR) + (module ## _BASE_ADDR_VIRT) : 0)) + +#ifdef CONFIG_ARCH_MX5 +#include <mach/mx51.h> +#endif +  #ifdef CONFIG_ARCH_MX3  #include <mach/mx3x.h>  #include <mach/mx31.h> diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx1.h b/arch/arm/plat-mxc/include/mach/iomux-mx1.h index bf23305c19c..6b1507cf378 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx1.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx1.h @@ -1,166 +1,155 @@  /* -* Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -* MA 02110-1301, USA. -*/ + * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +#ifndef __MACH_IOMUX_MX1_H__ +#define __MACH_IOMUX_MX1_H__ -#ifndef _MXC_IOMUX_MX1_H -#define _MXC_IOMUX_MX1_H +#include <mach/iomux-v1.h> -#ifndef GPIO_PORTA -#error Please include mach/iomux.h -#endif +#define PA0_AIN_SPI2_CLK	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 0) +#define PA0_AF_ETMTRACESYNC	(GPIO_PORTA | GPIO_AF | 0) +#define PA1_AOUT_SPI2_RXD	(GPIO_PORTA | GPIO_AOUT | GPIO_IN | 1) +#define PA1_PF_TIN		(GPIO_PORTA | GPIO_PF | 1) +#define PA2_PF_PWM0		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 2) +#define PA3_PF_CSI_MCLK		(GPIO_PORTA | GPIO_PF | 3) +#define PA4_PF_CSI_D0		(GPIO_PORTA | GPIO_PF | 4) +#define PA5_PF_CSI_D1		(GPIO_PORTA | GPIO_PF | 5) +#define PA6_PF_CSI_D2		(GPIO_PORTA | GPIO_PF | 6) +#define PA7_PF_CSI_D3		(GPIO_PORTA | GPIO_PF | 7) +#define PA8_PF_CSI_D4		(GPIO_PORTA | GPIO_PF | 8) +#define PA9_PF_CSI_D5		(GPIO_PORTA | GPIO_PF | 9) +#define PA10_PF_CSI_D6		(GPIO_PORTA | GPIO_PF | 10) +#define PA11_PF_CSI_D7		(GPIO_PORTA | GPIO_PF | 11) +#define PA12_PF_CSI_VSYNC	(GPIO_PORTA | GPIO_PF | 12) +#define PA13_PF_CSI_HSYNC	(GPIO_PORTA | GPIO_PF | 13) +#define PA14_PF_CSI_PIXCLK	(GPIO_PORTA | GPIO_PF | 14) +#define PA15_PF_I2C_SDA		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 15) +#define PA16_PF_I2C_SCL		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 16) +#define PA17_AF_ETMTRACEPKT4	(GPIO_PORTA | GPIO_AF | 17) +#define PA17_AIN_SPI2_SS	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 17) +#define PA18_AF_ETMTRACEPKT5	(GPIO_PORTA | GPIO_AF | 18) +#define PA19_AF_ETMTRACEPKT6	(GPIO_PORTA | GPIO_AF | 19) +#define PA20_AF_ETMTRACEPKT7	(GPIO_PORTA | GPIO_AF | 20) +#define PA21_PF_A0		(GPIO_PORTA | GPIO_PF | 21) +#define PA22_PF_CS4		(GPIO_PORTA | GPIO_PF | 22) +#define PA23_PF_CS5		(GPIO_PORTA | GPIO_PF | 23) +#define PA24_PF_A16		(GPIO_PORTA | GPIO_PF | 24) +#define PA24_AF_ETMTRACEPKT0	(GPIO_PORTA | GPIO_AF | 24) +#define PA25_PF_A17		(GPIO_PORTA | GPIO_PF | 25) +#define PA25_AF_ETMTRACEPKT1	(GPIO_PORTA | GPIO_AF | 25) +#define PA26_PF_A18		(GPIO_PORTA | GPIO_PF | 26) +#define PA26_AF_ETMTRACEPKT2	(GPIO_PORTA | GPIO_AF | 26) +#define PA27_PF_A19		(GPIO_PORTA | GPIO_PF | 27) +#define PA27_AF_ETMTRACEPKT3	(GPIO_PORTA | GPIO_AF | 27) +#define PA28_PF_A20		(GPIO_PORTA | GPIO_PF | 28) +#define PA28_AF_ETMPIPESTAT0	(GPIO_PORTA | GPIO_AF | 28) +#define PA29_PF_A21		(GPIO_PORTA | GPIO_PF | 29) +#define PA29_AF_ETMPIPESTAT1	(GPIO_PORTA | GPIO_AF | 29) +#define PA30_PF_A22		(GPIO_PORTA | GPIO_PF | 30) +#define PA30_AF_ETMPIPESTAT2	(GPIO_PORTA | GPIO_AF | 30) +#define PA31_PF_A23		(GPIO_PORTA | GPIO_PF | 31) +#define PA31_AF_ETMTRACECLK	(GPIO_PORTA | GPIO_AF | 31) +#define PB8_PF_SD_DAT0		(GPIO_PORTB | GPIO_PF | GPIO_PUEN | 8) +#define PB8_AF_MS_PIO		(GPIO_PORTB | GPIO_AF | 8) +#define PB9_PF_SD_DAT1		(GPIO_PORTB | GPIO_PF | GPIO_PUEN | 9) +#define PB9_AF_MS_PI1		(GPIO_PORTB | GPIO_AF | 9) +#define PB10_PF_SD_DAT2		(GPIO_PORTB | GPIO_PF | GPIO_PUEN | 10) +#define PB10_AF_MS_SCLKI	(GPIO_PORTB | GPIO_AF | 10) +#define PB11_PF_SD_DAT3		(GPIO_PORTB | GPIO_PF | 11) +#define PB11_AF_MS_SDIO		(GPIO_PORTB | GPIO_AF | 11) +#define PB12_PF_SD_CLK		(GPIO_PORTB | GPIO_PF | 12) +#define PB12_AF_MS_SCLK0	(GPIO_PORTB | GPIO_AF | 12) +#define PB13_PF_SD_CMD		(GPIO_PORTB | GPIO_PF | GPIO_PUEN | 13) +#define PB13_AF_MS_BS		(GPIO_PORTB | GPIO_AF | 13) +#define PB14_AF_SSI_RXFS	(GPIO_PORTB | GPIO_AF | 14) +#define PB15_AF_SSI_RXCLK	(GPIO_PORTB | GPIO_AF | 15) +#define PB16_AF_SSI_RXDAT	(GPIO_PORTB | GPIO_AF | GPIO_IN | 16) +#define PB17_AF_SSI_TXDAT	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 17) +#define PB18_AF_SSI_TXFS	(GPIO_PORTB | GPIO_AF | 18) +#define PB19_AF_SSI_TXCLK	(GPIO_PORTB | GPIO_AF | 19) +#define PB20_PF_USBD_AFE	(GPIO_PORTB | GPIO_PF | 20) +#define PB21_PF_USBD_OE		(GPIO_PORTB | GPIO_PF | 21) +#define PB22_PF_USBD_RCV	(GPIO_PORTB | GPIO_PF | 22) +#define PB23_PF_USBD_SUSPND	(GPIO_PORTB | GPIO_PF | 23) +#define PB24_PF_USBD_VP		(GPIO_PORTB | GPIO_PF | 24) +#define PB25_PF_USBD_VM		(GPIO_PORTB | GPIO_PF | 25) +#define PB26_PF_USBD_VPO	(GPIO_PORTB | GPIO_PF | 26) +#define PB27_PF_USBD_VMO	(GPIO_PORTB | GPIO_PF | 27) +#define PB28_PF_UART2_CTS	(GPIO_PORTB | GPIO_PF | GPIO_OUT | 28) +#define PB29_PF_UART2_RTS	(GPIO_PORTB | GPIO_PF | GPIO_IN | 29) +#define PB30_PF_UART2_TXD	(GPIO_PORTB | GPIO_PF | GPIO_OUT | 30) +#define PB31_PF_UART2_RXD	(GPIO_PORTB | GPIO_PF | GPIO_IN | 31) +#define PC3_PF_SSI_RXFS		(GPIO_PORTC | GPIO_PF | 3) +#define PC4_PF_SSI_RXCLK	(GPIO_PORTC | GPIO_PF | 4) +#define PC5_PF_SSI_RXDAT	(GPIO_PORTC | GPIO_PF | GPIO_IN | 5) +#define PC6_PF_SSI_TXDAT	(GPIO_PORTC | GPIO_PF | GPIO_OUT | 6) +#define PC7_PF_SSI_TXFS		(GPIO_PORTC | GPIO_PF | 7) +#define PC8_PF_SSI_TXCLK	(GPIO_PORTC | GPIO_PF | 8) +#define PC9_PF_UART1_CTS	(GPIO_PORTC | GPIO_PF | GPIO_OUT | 9) +#define PC10_PF_UART1_RTS	(GPIO_PORTC | GPIO_PF | GPIO_IN | 10) +#define PC11_PF_UART1_TXD	(GPIO_PORTC | GPIO_PF | GPIO_OUT | 11) +#define PC12_PF_UART1_RXD	(GPIO_PORTC | GPIO_PF | GPIO_IN | 12) +#define PC13_PF_SPI1_SPI_RDY	(GPIO_PORTC | GPIO_PF | 13) +#define PC14_PF_SPI1_SCLK	(GPIO_PORTC | GPIO_PF | 14) +#define PC15_PF_SPI1_SS		(GPIO_PORTC | GPIO_PF | 15) +#define PC16_PF_SPI1_MISO	(GPIO_PORTC | GPIO_PF | 16) +#define PC17_PF_SPI1_MOSI	(GPIO_PORTC | GPIO_PF | 17) +#define PC24_BIN_UART3_RI	(GPIO_PORTC | GPIO_BIN | GPIO_OUT | 24) +#define PC25_BIN_UART3_DSR	(GPIO_PORTC | GPIO_BIN | GPIO_OUT | 25) +#define PC26_AOUT_UART3_DTR	(GPIO_PORTC | GPIO_AOUT | GPIO_IN | 26) +#define PC27_BIN_UART3_DCD	(GPIO_PORTC | GPIO_BIN | GPIO_OUT | 27) +#define PC28_BIN_UART3_CTS	(GPIO_PORTC | GPIO_BIN | GPIO_OUT | 28) +#define PC29_AOUT_UART3_RTS	(GPIO_PORTC | GPIO_AOUT | GPIO_IN | 29) +#define PC30_BIN_UART3_TX	(GPIO_PORTC | GPIO_BIN | 30) +#define PC31_AOUT_UART3_RX	(GPIO_PORTC | GPIO_AOUT | GPIO_IN | 31) +#define PD6_PF_LSCLK		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 6) +#define PD7_PF_REV		(GPIO_PORTD | GPIO_PF | 7) +#define PD7_AF_UART2_DTR	(GPIO_PORTD | GPIO_AF | GPIO_IN | 7) +#define PD7_AIN_SPI2_SCLK	(GPIO_PORTD | GPIO_AIN | 7) +#define PD8_PF_CLS		(GPIO_PORTD | GPIO_PF | 8) +#define PD8_AF_UART2_DCD	(GPIO_PORTD | GPIO_AF | GPIO_OUT | 8) +#define PD8_AIN_SPI2_SS		(GPIO_PORTD | GPIO_AIN | 8) +#define PD9_PF_PS		(GPIO_PORTD | GPIO_PF | 9) +#define PD9_AF_UART2_RI		(GPIO_PORTD | GPIO_AF | GPIO_OUT | 9) +#define PD9_AOUT_SPI2_RXD	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 9) +#define PD10_PF_SPL_SPR		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 10) +#define PD10_AF_UART2_DSR	(GPIO_PORTD | GPIO_AF | GPIO_OUT | 10) +#define PD10_AIN_SPI2_TXD	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 10) +#define PD11_PF_CONTRAST	(GPIO_PORTD | GPIO_PF | GPIO_OUT | 11) +#define PD12_PF_ACD_OE		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 12) +#define PD13_PF_LP_HSYNC	(GPIO_PORTD | GPIO_PF | GPIO_OUT | 13) +#define PD14_PF_FLM_VSYNC	(GPIO_PORTD | GPIO_PF | GPIO_OUT | 14) +#define PD15_PF_LD0		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 15) +#define PD16_PF_LD1		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 16) +#define PD17_PF_LD2		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 17) +#define PD18_PF_LD3		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 18) +#define PD19_PF_LD4		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 19) +#define PD20_PF_LD5		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 20) +#define PD21_PF_LD6		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 21) +#define PD22_PF_LD7		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 22) +#define PD23_PF_LD8		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 23) +#define PD24_PF_LD9		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 24) +#define PD25_PF_LD10		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 25) +#define PD26_PF_LD11		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 26) +#define PD27_PF_LD12		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 27) +#define PD28_PF_LD13		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 28) +#define PD29_PF_LD14		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 29) +#define PD30_PF_LD15		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 30) +#define PD31_PF_TMR2OUT		(GPIO_PORTD | GPIO_PF | 31) +#define PD31_BIN_SPI2_TXD	(GPIO_PORTD | GPIO_BIN | 31) -/* FIXME: This list is not completed. The correct directions are -* missing on some (many) pins -*/ - - -/* Primary GPIO pin functions */ - -#define PA0_AIN_SPI2_CLK        (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 0) -#define PA0_AF_ETMTRACESYNC     (GPIO_PORTA | GPIO_AF | 0) -#define PA1_AOUT_SPI2_RXD       (GPIO_PORTA | GPIO_AOUT | GPIO_IN | 1) -#define PA1_PF_TIN              (GPIO_PORTA | GPIO_PF | 1) -#define PA2_PF_PWM0             (GPIO_PORTA | GPIO_PF | GPIO_OUT | 2) -#define PA3_PF_CSI_MCLK         (GPIO_PORTA | GPIO_PF | 3) -#define PA4_PF_CSI_D0           (GPIO_PORTA | GPIO_PF | 4) -#define PA5_PF_CSI_D1           (GPIO_PORTA | GPIO_PF | 5) -#define PA6_PF_CSI_D2           (GPIO_PORTA | GPIO_PF | 6) -#define PA7_PF_CSI_D3           (GPIO_PORTA | GPIO_PF | 7) -#define PA8_PF_CSI_D4           (GPIO_PORTA | GPIO_PF | 8) -#define PA9_PF_CSI_D5           (GPIO_PORTA | GPIO_PF | 9) -#define PA10_PF_CSI_D6          (GPIO_PORTA | GPIO_PF | 10) -#define PA11_PF_CSI_D7          (GPIO_PORTA | GPIO_PF | 11) -#define PA12_PF_CSI_VSYNC       (GPIO_PORTA | GPIO_PF | 12) -#define PA13_PF_CSI_HSYNC       (GPIO_PORTA | GPIO_PF | 13) -#define PA14_PF_CSI_PIXCLK      (GPIO_PORTA | GPIO_PF | 14) -#define PA15_PF_I2C_SDA         (GPIO_PORTA | GPIO_PF | GPIO_OUT | 15) -#define PA16_PF_I2C_SCL         (GPIO_PORTA | GPIO_PF | GPIO_OUT | 16) -#define PA17_AF_ETMTRACEPKT4    (GPIO_PORTA | GPIO_AF | 17) -#define PA17_AIN_SPI2_SS        (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 17) -#define PA18_AF_ETMTRACEPKT5    (GPIO_PORTA | GPIO_AF | 18) -#define PA19_AF_ETMTRACEPKT6    (GPIO_PORTA | GPIO_AF | 19) -#define PA20_AF_ETMTRACEPKT7    (GPIO_PORTA | GPIO_AF | 20) -#define PA21_PF_A0              (GPIO_PORTA | GPIO_PF | 21) -#define PA22_PF_CS4             (GPIO_PORTA | GPIO_PF | 22) -#define PA23_PF_CS5             (GPIO_PORTA | GPIO_PF | 23) -#define PA24_PF_A16             (GPIO_PORTA | GPIO_PF | 24) -#define PA24_AF_ETMTRACEPKT0    (GPIO_PORTA | GPIO_AF | 24) -#define PA25_PF_A17             (GPIO_PORTA | GPIO_PF | 25) -#define PA25_AF_ETMTRACEPKT1    (GPIO_PORTA | GPIO_AF | 25) -#define PA26_PF_A18             (GPIO_PORTA | GPIO_PF | 26) -#define PA26_AF_ETMTRACEPKT2    (GPIO_PORTA | GPIO_AF | 26) -#define PA27_PF_A19             (GPIO_PORTA | GPIO_PF | 27) -#define PA27_AF_ETMTRACEPKT3    (GPIO_PORTA | GPIO_AF | 27) -#define PA28_PF_A20             (GPIO_PORTA | GPIO_PF | 28) -#define PA28_AF_ETMPIPESTAT0    (GPIO_PORTA | GPIO_AF | 28) -#define PA29_PF_A21             (GPIO_PORTA | GPIO_PF | 29) -#define PA29_AF_ETMPIPESTAT1    (GPIO_PORTA | GPIO_AF | 29) -#define PA30_PF_A22             (GPIO_PORTA | GPIO_PF | 30) -#define PA30_AF_ETMPIPESTAT2    (GPIO_PORTA | GPIO_AF | 30) -#define PA31_PF_A23             (GPIO_PORTA | GPIO_PF | 31) -#define PA31_AF_ETMTRACECLK     (GPIO_PORTA | GPIO_AF | 31) -#define PB8_PF_SD_DAT0          (GPIO_PORTB | GPIO_PF | GPIO_PUEN | 8) -#define PB8_AF_MS_PIO           (GPIO_PORTB | GPIO_AF | 8) -#define PB9_PF_SD_DAT1          (GPIO_PORTB | GPIO_PF | GPIO_PUEN | 9) -#define PB9_AF_MS_PI1           (GPIO_PORTB | GPIO_AF | 9) -#define PB10_PF_SD_DAT2         (GPIO_PORTB | GPIO_PF | GPIO_PUEN | 10) -#define PB10_AF_MS_SCLKI        (GPIO_PORTB | GPIO_AF | 10) -#define PB11_PF_SD_DAT3         (GPIO_PORTB | GPIO_PF | 11) -#define PB11_AF_MS_SDIO         (GPIO_PORTB | GPIO_AF | 11) -#define PB12_PF_SD_CLK          (GPIO_PORTB | GPIO_PF | 12) -#define PB12_AF_MS_SCLK0        (GPIO_PORTB | GPIO_AF | 12) -#define PB13_PF_SD_CMD          (GPIO_PORTB | GPIO_PF | GPIO_PUEN | 13) -#define PB13_AF_MS_BS           (GPIO_PORTB | GPIO_AF | 13) -#define PB14_AF_SSI_RXFS        (GPIO_PORTB | GPIO_AF | 14) -#define PB15_AF_SSI_RXCLK       (GPIO_PORTB | GPIO_AF | 15) -#define PB16_AF_SSI_RXDAT       (GPIO_PORTB | GPIO_AF | GPIO_IN | 16) -#define PB17_AF_SSI_TXDAT       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 17) -#define PB18_AF_SSI_TXFS        (GPIO_PORTB | GPIO_AF | 18) -#define PB19_AF_SSI_TXCLK       (GPIO_PORTB | GPIO_AF | 19) -#define PB20_PF_USBD_AFE        (GPIO_PORTB | GPIO_PF | 20) -#define PB21_PF_USBD_OE         (GPIO_PORTB | GPIO_PF | 21) -#define PB22_PF_USBD_RCV        (GPIO_PORTB | GPIO_PF | 22) -#define PB23_PF_USBD_SUSPND     (GPIO_PORTB | GPIO_PF | 23) -#define PB24_PF_USBD_VP         (GPIO_PORTB | GPIO_PF | 24) -#define PB25_PF_USBD_VM         (GPIO_PORTB | GPIO_PF | 25) -#define PB26_PF_USBD_VPO        (GPIO_PORTB | GPIO_PF | 26) -#define PB27_PF_USBD_VMO        (GPIO_PORTB | GPIO_PF | 27) -#define PB28_PF_UART2_CTS       (GPIO_PORTB | GPIO_PF | GPIO_OUT | 28) -#define PB29_PF_UART2_RTS       (GPIO_PORTB | GPIO_PF | GPIO_IN | 29) -#define PB30_PF_UART2_TXD       (GPIO_PORTB | GPIO_PF | GPIO_OUT | 30) -#define PB31_PF_UART2_RXD       (GPIO_PORTB | GPIO_PF | GPIO_IN | 31) -#define PC3_PF_SSI_RXFS         (GPIO_PORTC | GPIO_PF | 3) -#define PC4_PF_SSI_RXCLK        (GPIO_PORTC | GPIO_PF | 4) -#define PC5_PF_SSI_RXDAT        (GPIO_PORTC | GPIO_PF | GPIO_IN | 5) -#define PC6_PF_SSI_TXDAT        (GPIO_PORTC | GPIO_PF | GPIO_OUT | 6) -#define PC7_PF_SSI_TXFS         (GPIO_PORTC | GPIO_PF | 7) -#define PC8_PF_SSI_TXCLK        (GPIO_PORTC | GPIO_PF | 8) -#define PC9_PF_UART1_CTS        (GPIO_PORTC | GPIO_PF | GPIO_OUT | 9) -#define PC10_PF_UART1_RTS       (GPIO_PORTC | GPIO_PF | GPIO_IN | 10) -#define PC11_PF_UART1_TXD       (GPIO_PORTC | GPIO_PF | GPIO_OUT | 11) -#define PC12_PF_UART1_RXD       (GPIO_PORTC | GPIO_PF | GPIO_IN | 12) -#define PC13_PF_SPI1_SPI_RDY    (GPIO_PORTC | GPIO_PF | 13) -#define PC14_PF_SPI1_SCLK       (GPIO_PORTC | GPIO_PF | 14) -#define PC15_PF_SPI1_SS         (GPIO_PORTC | GPIO_PF | 15) -#define PC16_PF_SPI1_MISO       (GPIO_PORTC | GPIO_PF | 16) -#define PC17_PF_SPI1_MOSI       (GPIO_PORTC | GPIO_PF | 17) -#define PC24_BIN_UART3_RI       (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 24) -#define PC25_BIN_UART3_DSR      (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 25) -#define PC26_AOUT_UART3_DTR     (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 26) -#define PC27_BIN_UART3_DCD      (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 27) -#define PC28_BIN_UART3_CTS      (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 28) -#define PC29_AOUT_UART3_RTS     (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 29) -#define PC30_BIN_UART3_TX       (GPIO_PORTC | GPIO_BIN | 30) -#define PC31_AOUT_UART3_RX      (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 31) -#define PD6_PF_LSCLK            (GPIO_PORTD | GPIO_PF | GPIO_OUT | 6) -#define PD7_PF_REV              (GPIO_PORTD | GPIO_PF | 7) -#define PD7_AF_UART2_DTR        (GPIO_PORTD | GPIO_AF | GPIO_IN | 7) -#define PD7_AIN_SPI2_SCLK       (GPIO_PORTD | GPIO_AIN | 7) -#define PD8_PF_CLS              (GPIO_PORTD | GPIO_PF | 8) -#define PD8_AF_UART2_DCD        (GPIO_PORTD | GPIO_AF | GPIO_OUT | 8) -#define PD8_AIN_SPI2_SS         (GPIO_PORTD | GPIO_AIN | 8) -#define PD9_PF_PS               (GPIO_PORTD | GPIO_PF | 9) -#define PD9_AF_UART2_RI         (GPIO_PORTD | GPIO_AF | GPIO_OUT | 9) -#define PD9_AOUT_SPI2_RXD       (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 9) -#define PD10_PF_SPL_SPR         (GPIO_PORTD | GPIO_PF | GPIO_OUT | 10) -#define PD10_AF_UART2_DSR       (GPIO_PORTD | GPIO_AF | GPIO_OUT | 10) -#define PD10_AIN_SPI2_TXD       (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 10) -#define PD11_PF_CONTRAST        (GPIO_PORTD | GPIO_PF | GPIO_OUT | 11) -#define PD12_PF_ACD_OE          (GPIO_PORTD | GPIO_PF | GPIO_OUT | 12) -#define PD13_PF_LP_HSYNC        (GPIO_PORTD | GPIO_PF | GPIO_OUT | 13) -#define PD14_PF_FLM_VSYNC       (GPIO_PORTD | GPIO_PF | GPIO_OUT | 14) -#define PD15_PF_LD0             (GPIO_PORTD | GPIO_PF | GPIO_OUT | 15) -#define PD16_PF_LD1             (GPIO_PORTD | GPIO_PF | GPIO_OUT | 16) -#define PD17_PF_LD2             (GPIO_PORTD | GPIO_PF | GPIO_OUT | 17) -#define PD18_PF_LD3             (GPIO_PORTD | GPIO_PF | GPIO_OUT | 18) -#define PD19_PF_LD4             (GPIO_PORTD | GPIO_PF | GPIO_OUT | 19) -#define PD20_PF_LD5             (GPIO_PORTD | GPIO_PF | GPIO_OUT | 20) -#define PD21_PF_LD6             (GPIO_PORTD | GPIO_PF | GPIO_OUT | 21) -#define PD22_PF_LD7             (GPIO_PORTD | GPIO_PF | GPIO_OUT | 22) -#define PD23_PF_LD8             (GPIO_PORTD | GPIO_PF | GPIO_OUT | 23) -#define PD24_PF_LD9             (GPIO_PORTD | GPIO_PF | GPIO_OUT | 24) -#define PD25_PF_LD10            (GPIO_PORTD | GPIO_PF | GPIO_OUT | 25) -#define PD26_PF_LD11            (GPIO_PORTD | GPIO_PF | GPIO_OUT | 26) -#define PD27_PF_LD12            (GPIO_PORTD | GPIO_PF | GPIO_OUT | 27) -#define PD28_PF_LD13            (GPIO_PORTD | GPIO_PF | GPIO_OUT | 28) -#define PD29_PF_LD14            (GPIO_PORTD | GPIO_PF | GPIO_OUT | 29) -#define PD30_PF_LD15            (GPIO_PORTD | GPIO_PF | GPIO_OUT | 30) -#define PD31_PF_TMR2OUT         (GPIO_PORTD | GPIO_PF | 31) -#define PD31_BIN_SPI2_TXD       (GPIO_PORTD | GPIO_BIN | 31) - - -#endif +#endif /* ifndef __MACH_IOMUX_MX1_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx21.h b/arch/arm/plat-mxc/include/mach/iomux-mx21.h index 63aaa972e27..1495dfda783 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx21.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx21.h @@ -1,126 +1,122 @@  /* -* Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -* MA 02110-1301, USA. -*/ - -#ifndef _MXC_IOMUX_MX21_H -#define _MXC_IOMUX_MX21_H - -#ifndef GPIO_PORTA -#error Please include mach/iomux.h -#endif + * Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +#ifndef __MACH_IOMUX_MX21_H__ +#define __MACH_IOMUX_MX21_H__ +#include <mach/iomux-mx2x.h> +#include <mach/iomux-v1.h>  /* Primary GPIO pin functions */ -#define PB22_PF_USBH1_BYP       (GPIO_PORTB | GPIO_PF | 22) -#define PB25_PF_USBH1_ON        (GPIO_PORTB | GPIO_PF | 25) -#define PC5_PF_USBOTG_SDA       (GPIO_PORTC | GPIO_PF | 5) -#define PC6_PF_USBOTG_SCL       (GPIO_PORTC | GPIO_PF | 6) -#define PC7_PF_USBOTG_ON        (GPIO_PORTC | GPIO_PF | 7) -#define PC8_PF_USBOTG_FS        (GPIO_PORTC | GPIO_PF | 8) -#define PC9_PF_USBOTG_OE        (GPIO_PORTC | GPIO_PF | 9) -#define PC10_PF_USBOTG_TXDM     (GPIO_PORTC | GPIO_PF | 10) -#define PC11_PF_USBOTG_TXDP     (GPIO_PORTC | GPIO_PF | 11) -#define PC12_PF_USBOTG_RXDM     (GPIO_PORTC | GPIO_PF | 12) -#define PC13_PF_USBOTG_RXDP     (GPIO_PORTC | GPIO_PF | 13) -#define PC16_PF_SAP_FS          (GPIO_PORTC | GPIO_PF | 16) -#define PC17_PF_SAP_RXD         (GPIO_PORTC | GPIO_PF | 17) -#define PC18_PF_SAP_TXD         (GPIO_PORTC | GPIO_PF | 18) -#define PC19_PF_SAP_CLK         (GPIO_PORTC | GPIO_PF | 19) -#define PE0_PF_TEST_WB2         (GPIO_PORTE | GPIO_PF | 0) -#define PE1_PF_TEST_WB1         (GPIO_PORTE | GPIO_PF | 1) -#define PE2_PF_TEST_WB0         (GPIO_PORTE | GPIO_PF | 2) -#define PF1_PF_NFCE             (GPIO_PORTF | GPIO_PF | 1) -#define PF3_PF_NFCLE            (GPIO_PORTF | GPIO_PF | 3) -#define PF7_PF_NFIO0            (GPIO_PORTF | GPIO_PF | 7) -#define PF8_PF_NFIO1            (GPIO_PORTF | GPIO_PF | 8) -#define PF9_PF_NFIO2            (GPIO_PORTF | GPIO_PF | 9) -#define PF10_PF_NFIO3           (GPIO_PORTF | GPIO_PF | 10) -#define PF11_PF_NFIO4           (GPIO_PORTF | GPIO_PF | 11) -#define PF12_PF_NFIO5           (GPIO_PORTF | GPIO_PF | 12) -#define PF13_PF_NFIO6           (GPIO_PORTF | GPIO_PF | 13) -#define PF14_PF_NFIO7           (GPIO_PORTF | GPIO_PF | 14) -#define PF16_PF_RES             (GPIO_PORTF | GPIO_PF | 16) +#define PB22_PF_USBH1_BYP	(GPIO_PORTB | GPIO_PF | 22) +#define PB25_PF_USBH1_ON	(GPIO_PORTB | GPIO_PF | 25) +#define PC5_PF_USBOTG_SDA	(GPIO_PORTC | GPIO_PF | 5) +#define PC6_PF_USBOTG_SCL	(GPIO_PORTC | GPIO_PF | 6) +#define PC7_PF_USBOTG_ON	(GPIO_PORTC | GPIO_PF | 7) +#define PC8_PF_USBOTG_FS	(GPIO_PORTC | GPIO_PF | 8) +#define PC9_PF_USBOTG_OE	(GPIO_PORTC | GPIO_PF | 9) +#define PC10_PF_USBOTG_TXDM	(GPIO_PORTC | GPIO_PF | 10) +#define PC11_PF_USBOTG_TXDP	(GPIO_PORTC | GPIO_PF | 11) +#define PC12_PF_USBOTG_RXDM	(GPIO_PORTC | GPIO_PF | 12) +#define PC13_PF_USBOTG_RXDP	(GPIO_PORTC | GPIO_PF | 13) +#define PC16_PF_SAP_FS		(GPIO_PORTC | GPIO_PF | 16) +#define PC17_PF_SAP_RXD		(GPIO_PORTC | GPIO_PF | 17) +#define PC18_PF_SAP_TXD		(GPIO_PORTC | GPIO_PF | 18) +#define PC19_PF_SAP_CLK		(GPIO_PORTC | GPIO_PF | 19) +#define PE0_PF_TEST_WB2		(GPIO_PORTE | GPIO_PF | 0) +#define PE1_PF_TEST_WB1		(GPIO_PORTE | GPIO_PF | 1) +#define PE2_PF_TEST_WB0		(GPIO_PORTE | GPIO_PF | 2) +#define PF1_PF_NFCE		(GPIO_PORTF | GPIO_PF | 1) +#define PF3_PF_NFCLE		(GPIO_PORTF | GPIO_PF | 3) +#define PF7_PF_NFIO0		(GPIO_PORTF | GPIO_PF | 7) +#define PF8_PF_NFIO1		(GPIO_PORTF | GPIO_PF | 8) +#define PF9_PF_NFIO2		(GPIO_PORTF | GPIO_PF | 9) +#define PF10_PF_NFIO3		(GPIO_PORTF | GPIO_PF | 10) +#define PF11_PF_NFIO4		(GPIO_PORTF | GPIO_PF | 11) +#define PF12_PF_NFIO5		(GPIO_PORTF | GPIO_PF | 12) +#define PF13_PF_NFIO6		(GPIO_PORTF | GPIO_PF | 13) +#define PF14_PF_NFIO7		(GPIO_PORTF | GPIO_PF | 14) +#define PF16_PF_RES		(GPIO_PORTF | GPIO_PF | 16)  /* Alternate GPIO pin functions */ -#define PA5_AF_BMI_CLK_CS       (GPIO_PORTA | GPIO_AF | 5) -#define PA6_AF_BMI_D0           (GPIO_PORTA | GPIO_AF | 6) -#define PA7_AF_BMI_D1           (GPIO_PORTA | GPIO_AF | 7) -#define PA8_AF_BMI_D2           (GPIO_PORTA | GPIO_AF | 8) -#define PA9_AF_BMI_D3           (GPIO_PORTA | GPIO_AF | 9) -#define PA10_AF_BMI_D4          (GPIO_PORTA | GPIO_AF | 10) -#define PA11_AF_BMI_D5          (GPIO_PORTA | GPIO_AF | 11) -#define PA12_AF_BMI_D6          (GPIO_PORTA | GPIO_AF | 12) -#define PA13_AF_BMI_D7          (GPIO_PORTA | GPIO_AF | 13) -#define PA14_AF_BMI_D8          (GPIO_PORTA | GPIO_AF | 14) -#define PA15_AF_BMI_D9          (GPIO_PORTA | GPIO_AF | 15) -#define PA16_AF_BMI_D10         (GPIO_PORTA | GPIO_AF | 16) -#define PA17_AF_BMI_D11         (GPIO_PORTA | GPIO_AF | 17) -#define PA18_AF_BMI_D12         (GPIO_PORTA | GPIO_AF | 18) -#define PA19_AF_BMI_D13         (GPIO_PORTA | GPIO_AF | 19) -#define PA20_AF_BMI_D14         (GPIO_PORTA | GPIO_AF | 20) -#define PA21_AF_BMI_D15         (GPIO_PORTA | GPIO_AF | 21) -#define PA22_AF_BMI_READ_REQ    (GPIO_PORTA | GPIO_AF | 22) -#define PA23_AF_BMI_WRITE       (GPIO_PORTA | GPIO_AF | 23) -#define PA29_AF_BMI_RX_FULL     (GPIO_PORTA | GPIO_AF | 29) -#define PA30_AF_BMI_READ        (GPIO_PORTA | GPIO_AF | 30) +#define PA5_AF_BMI_CLK_CS	(GPIO_PORTA | GPIO_AF | 5) +#define PA6_AF_BMI_D0		(GPIO_PORTA | GPIO_AF | 6) +#define PA7_AF_BMI_D1		(GPIO_PORTA | GPIO_AF | 7) +#define PA8_AF_BMI_D2		(GPIO_PORTA | GPIO_AF | 8) +#define PA9_AF_BMI_D3		(GPIO_PORTA | GPIO_AF | 9) +#define PA10_AF_BMI_D4		(GPIO_PORTA | GPIO_AF | 10) +#define PA11_AF_BMI_D5		(GPIO_PORTA | GPIO_AF | 11) +#define PA12_AF_BMI_D6		(GPIO_PORTA | GPIO_AF | 12) +#define PA13_AF_BMI_D7		(GPIO_PORTA | GPIO_AF | 13) +#define PA14_AF_BMI_D8		(GPIO_PORTA | GPIO_AF | 14) +#define PA15_AF_BMI_D9		(GPIO_PORTA | GPIO_AF | 15) +#define PA16_AF_BMI_D10		(GPIO_PORTA | GPIO_AF | 16) +#define PA17_AF_BMI_D11		(GPIO_PORTA | GPIO_AF | 17) +#define PA18_AF_BMI_D12		(GPIO_PORTA | GPIO_AF | 18) +#define PA19_AF_BMI_D13		(GPIO_PORTA | GPIO_AF | 19) +#define PA20_AF_BMI_D14		(GPIO_PORTA | GPIO_AF | 20) +#define PA21_AF_BMI_D15		(GPIO_PORTA | GPIO_AF | 21) +#define PA22_AF_BMI_READ_REQ	(GPIO_PORTA | GPIO_AF | 22) +#define PA23_AF_BMI_WRITE	(GPIO_PORTA | GPIO_AF | 23) +#define PA29_AF_BMI_RX_FULL	(GPIO_PORTA | GPIO_AF | 29) +#define PA30_AF_BMI_READ	(GPIO_PORTA | GPIO_AF | 30)  /* AIN GPIO pin functions */ -#define PC14_AIN_SYS_CLK        (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 14) -#define PD21_AIN_USBH2_FS       (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 21) -#define PD22_AIN_USBH2_OE       (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 22) -#define PD23_AIN_USBH2_TXDM     (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 23) -#define PD24_AIN_USBH2_TXDP     (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 24) -#define PE8_AIN_IR_TXD          (GPIO_PORTE | GPIO_AIN | GPIO_OUT | 8) -#define PF0_AIN_PC_RST          (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 0) -#define PF1_AIN_PC_CE1          (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 1) -#define PF2_AIN_PC_CE2          (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 2) -#define PF3_AIN_PC_POE          (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 3) -#define PF4_AIN_PC_OE           (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 4) -#define PF5_AIN_PC_RW           (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 5) +#define PC14_AIN_SYS_CLK	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 14) +#define PD21_AIN_USBH2_FS	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 21) +#define PD22_AIN_USBH2_OE	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 22) +#define PD23_AIN_USBH2_TXDM	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 23) +#define PD24_AIN_USBH2_TXDP	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 24) +#define PE8_AIN_IR_TXD		(GPIO_PORTE | GPIO_AIN | GPIO_OUT | 8) +#define PF0_AIN_PC_RST		(GPIO_PORTF | GPIO_AIN | GPIO_OUT | 0) +#define PF1_AIN_PC_CE1		(GPIO_PORTF | GPIO_AIN | GPIO_OUT | 1) +#define PF2_AIN_PC_CE2		(GPIO_PORTF | GPIO_AIN | GPIO_OUT | 2) +#define PF3_AIN_PC_POE		(GPIO_PORTF | GPIO_AIN | GPIO_OUT | 3) +#define PF4_AIN_PC_OE		(GPIO_PORTF | GPIO_AIN | GPIO_OUT | 4) +#define PF5_AIN_PC_RW		(GPIO_PORTF | GPIO_AIN | GPIO_OUT | 5)  /* BIN GPIO pin functions */ -#define PC14_BIN_SYS_CLK        (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 14) -#define PD27_BIN_EXT_DMA_GRANT  (GPIO_PORTD | GPIO_BIN | GPIO_OUT | 27) +#define PC14_BIN_SYS_CLK	(GPIO_PORTC | GPIO_BIN | GPIO_OUT | 14) +#define PD27_BIN_EXT_DMA_GRANT	(GPIO_PORTD | GPIO_BIN | GPIO_OUT | 27)  /* CIN GPIO pin functions */ -#define PB26_CIN_USBH1_RXDAT    (GPIO_PORTB | GPIO_CIN | GPIO_OUT | 26) +#define PB26_CIN_USBH1_RXDAT	(GPIO_PORTB | GPIO_CIN | GPIO_OUT | 26)  /* AOUT GPIO pin functions */ -#define PA29_AOUT_BMI_WAIT      (GPIO_PORTA | GPIO_AOUT | GPIO_IN | 29) -#define PD19_AOUT_USBH2_RXDM    (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 19) -#define PD20_AOUT_USBH2_RXDP    (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 20) -#define PD25_AOUT_EXT_DMAREQ    (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 25) -#define PD26_AOUT_USBOTG_RXDAT  (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 26) -#define PE9_AOUT_IR_RXD         (GPIO_PORTE | GPIO_AOUT | GPIO_IN | 9) -#define PF6_AOUT_PC_BVD2        (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 6) -#define PF7_AOUT_PC_BVD1        (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 7) -#define PF8_AOUT_PC_VS2         (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 8) -#define PF9_AOUT_PC_VS1         (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 9) -#define PF10_AOUT_PC_WP         (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 10) -#define PF11_AOUT_PC_READY      (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 11) -#define PF12_AOUT_PC_WAIT       (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 12) -#define PF13_AOUT_PC_CD2        (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 13) -#define PF14_AOUT_PC_CD1        (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 14) - +#define PA29_AOUT_BMI_WAIT	(GPIO_PORTA | GPIO_AOUT | GPIO_IN | 29) +#define PD19_AOUT_USBH2_RXDM	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 19) +#define PD20_AOUT_USBH2_RXDP	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 20) +#define PD25_AOUT_EXT_DMAREQ	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 25) +#define PD26_AOUT_USBOTG_RXDAT	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 26) +#define PE9_AOUT_IR_RXD		(GPIO_PORTE | GPIO_AOUT | GPIO_IN | 9) +#define PF6_AOUT_PC_BVD2	(GPIO_PORTF | GPIO_AOUT | GPIO_IN | 6) +#define PF7_AOUT_PC_BVD1	(GPIO_PORTF | GPIO_AOUT | GPIO_IN | 7) +#define PF8_AOUT_PC_VS2		(GPIO_PORTF | GPIO_AOUT | GPIO_IN | 8) +#define PF9_AOUT_PC_VS1		(GPIO_PORTF | GPIO_AOUT | GPIO_IN | 9) +#define PF10_AOUT_PC_WP		(GPIO_PORTF | GPIO_AOUT | GPIO_IN | 10) +#define PF11_AOUT_PC_READY	(GPIO_PORTF | GPIO_AOUT | GPIO_IN | 11) +#define PF12_AOUT_PC_WAIT	(GPIO_PORTF | GPIO_AOUT | GPIO_IN | 12) +#define PF13_AOUT_PC_CD2	(GPIO_PORTF | GPIO_AOUT | GPIO_IN | 13) +#define PF14_AOUT_PC_CD1	(GPIO_PORTF | GPIO_AOUT | GPIO_IN | 14) -#endif +#endif /* ifndef __MACH_IOMUX_MX21_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx25.h b/arch/arm/plat-mxc/include/mach/iomux-mx25.h index 9af494f0ab3..f39220d1b67 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx25.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx25.h @@ -7,7 +7,7 @@   *    Copyright 2008 Freescale Semiconductor, Inc. All Rights Reserved.   * and   * arch/arm/plat-mxc/include/mach/iomux-mx35.h - *    Copyright (C, NO_PAD_CTRL) 2009 by Jan Weitzel Phytec Messtechnik GmbH <armlinux@phytec.de> + *    Copyright (C) 2009 by Jan Weitzel Phytec Messtechnik GmbH <armlinux@phytec.de>   *   * The code contained herein is licensed under the GNU General Public   * License. You may obtain a copy of the GNU General Public License @@ -16,24 +16,11 @@   * http://www.opensource.org/licenses/gpl-license.html   * http://www.gnu.org/copyleft/gpl.html   */ -#ifndef __IOMUX_MX25_H__ -#define __IOMUX_MX25_H__ +#ifndef __MACH_IOMUX_MX25_H__ +#define __MACH_IOMUX_MX25_H__  #include <mach/iomux-v3.h> -#ifndef GPIO_PORTA -#error Please include mach/iomux.h -#endif - -/* - * - * @brief MX25 I/O Pin List - * - * @ingroup GPIO_MX25 - */ - -#ifndef __ASSEMBLY__ -  /*   * IOMUX/PAD Bit field definitions   */ @@ -462,9 +449,11 @@  #define MX25_PAD_GPIO_C__CAN2_TX	IOMUX_PAD(0x3f8, 0x1fc, 0x16, 0, 0, PAD_CTL_PUS_22K_UP)  #define MX25_PAD_GPIO_D__GPIO_D		IOMUX_PAD(0x3fc, 0x200, 0x10, 0, 0, NO_PAD_CTRL) +#define MX25_PAD_GPIO_E__LD16		IOMUX_PAD(0x400, 0x204, 0x02, 0, 0, NO_PAD_CTRL)  #define MX25_PAD_GPIO_D__CAN2_RX	IOMUX_PAD(0x3fc, 0x200, 0x16, 0x484, 1, PAD_CTL_PUS_22K_UP)  #define MX25_PAD_GPIO_E__GPIO_E		IOMUX_PAD(0x400, 0x204, 0x10, 0, 0, NO_PAD_CTRL) +#define MX25_PAD_GPIO_F__LD17		IOMUX_PAD(0x404, 0x208, 0x02, 0, 0, NO_PAD_CTRL)  #define MX25_PAD_GPIO_E__AUD7_TXD	IOMUX_PAD(0x400, 0x204, 0x14, 0, 0, NO_PAD_CTRL)  #define MX25_PAD_GPIO_F__GPIO_F		IOMUX_PAD(0x404, 0x208, 0x10, 0, 0, NO_PAD_CTRL) @@ -513,5 +502,4 @@  #define MX25_PAD_CTL_GRP_DVS_SDHC1	IOMUX_PAD(0x458, 0x000, 0, 0, 0, NO_PAD_CTRL)  #define MX25_PAD_CTL_GRP_DVS_LCD	IOMUX_PAD(0x45c, 0x000, 0, 0, 0, NO_PAD_CTRL) -#endif // __ASSEMBLY__ -#endif // __IOMUX_MX25_H__ +#endif /* __MACH_IOMUX_MX25_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx27.h b/arch/arm/plat-mxc/include/mach/iomux-mx27.h index 5ac158b70f6..d9f9a6e32d8 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx27.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx27.h @@ -1,207 +1,205 @@  /* -* Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> -* Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -* MA 02110-1301, USA. -*/ - -#ifndef _MXC_IOMUX_MX27_H -#define _MXC_IOMUX_MX27_H - -#ifndef GPIO_PORTA -#error Please include mach/iomux.h -#endif + * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> + * Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +#ifndef __MACH_IOMUX_MX27_H__ +#define __MACH_IOMUX_MX27_H__ +#include <mach/iomux-mx2x.h> +#include <mach/iomux-v1.h>  /* Primary GPIO pin functions */ -#define PA0_PF_USBH2_CLK        (GPIO_PORTA | GPIO_PF | 0) -#define PA1_PF_USBH2_DIR        (GPIO_PORTA | GPIO_PF | 1) -#define PA2_PF_USBH2_DATA7      (GPIO_PORTA | GPIO_PF | 2) -#define PA3_PF_USBH2_NXT        (GPIO_PORTA | GPIO_PF | 3) -#define PA4_PF_USBH2_STP        (GPIO_PORTA | GPIO_PF | 4) -#define PB22_PF_USBH1_SUSP      (GPIO_PORTB | GPIO_PF | 22) -#define PB25_PF_USBH1_RCV       (GPIO_PORTB | GPIO_PF | 25) -#define PC5_PF_I2C2_SDA         (GPIO_PORTC | GPIO_PF | GPIO_IN | 5) -#define PC6_PF_I2C2_SCL         (GPIO_PORTC | GPIO_PF | GPIO_IN | 6) -#define PC7_PF_USBOTG_DATA5     (GPIO_PORTC | GPIO_PF | GPIO_OUT | 7) -#define PC8_PF_USBOTG_DATA6     (GPIO_PORTC | GPIO_PF | GPIO_OUT | 8) -#define PC9_PF_USBOTG_DATA0     (GPIO_PORTC | GPIO_PF | GPIO_OUT | 9) -#define PC10_PF_USBOTG_DATA2    (GPIO_PORTC | GPIO_PF | GPIO_OUT | 10) -#define PC11_PF_USBOTG_DATA1    (GPIO_PORTC | GPIO_PF | GPIO_OUT | 11) -#define PC12_PF_USBOTG_DATA4    (GPIO_PORTC | GPIO_PF | GPIO_OUT | 12) -#define PC13_PF_USBOTG_DATA3    (GPIO_PORTC | GPIO_PF | GPIO_OUT | 13) -#define PC16_PF_SSI4_FS         (GPIO_PORTC | GPIO_PF | GPIO_IN | 16) -#define PC17_PF_SSI4_RXD        (GPIO_PORTC | GPIO_PF | GPIO_IN | 17) -#define PC18_PF_SSI4_TXD        (GPIO_PORTC | GPIO_PF | GPIO_IN | 18) -#define PC19_PF_SSI4_CLK        (GPIO_PORTC | GPIO_PF | GPIO_IN | 19) -#define PC25_AF_GPT5_TIN        (GPIO_PORTC | GPIO_AF | 25) -#define PC27_AF_GPT4_TIN        (GPIO_PORTC | GPIO_AF | 27) -#define PD0_PF_SD3_CMD          (GPIO_PORTD | GPIO_PF | 0) -#define PD1_PF_SD3_CLK          (GPIO_PORTD | GPIO_PF | 1) -#define PD2_PF_ATA_DATA0        (GPIO_PORTD | GPIO_PF | 2) -#define PD3_PF_ATA_DATA1        (GPIO_PORTD | GPIO_PF | 3) -#define PD4_PF_ATA_DATA2        (GPIO_PORTD | GPIO_PF | 4) -#define PD5_PF_ATA_DATA3        (GPIO_PORTD | GPIO_PF | 5) -#define PD6_PF_ATA_DATA4        (GPIO_PORTD | GPIO_PF | 6) -#define PD7_PF_ATA_DATA5        (GPIO_PORTD | GPIO_PF | 7) -#define PD8_PF_ATA_DATA6        (GPIO_PORTD | GPIO_PF | 8) -#define PD9_PF_ATA_DATA7        (GPIO_PORTD | GPIO_PF | 9) -#define PD10_PF_ATA_DATA8       (GPIO_PORTD | GPIO_PF | 10) -#define PD11_PF_ATA_DATA9       (GPIO_PORTD | GPIO_PF | 11) -#define PD12_PF_ATA_DATA10      (GPIO_PORTD | GPIO_PF | 12) -#define PD13_PF_ATA_DATA11      (GPIO_PORTD | GPIO_PF | 13) -#define PD14_PF_ATA_DATA12      (GPIO_PORTD | GPIO_PF | 14) -#define PD15_PF_ATA_DATA13      (GPIO_PORTD | GPIO_PF | 15) -#define PD16_PF_ATA_DATA14      (GPIO_PORTD | GPIO_PF | 16) -#define PE0_PF_USBOTG_NXT       (GPIO_PORTE | GPIO_PF | GPIO_OUT | 0) -#define PE1_PF_USBOTG_STP       (GPIO_PORTE | GPIO_PF | GPIO_OUT | 1) -#define PE2_PF_USBOTG_DIR       (GPIO_PORTE | GPIO_PF | GPIO_OUT | 2) -#define PE24_PF_USBOTG_CLK      (GPIO_PORTE | GPIO_PF | GPIO_OUT | 24) -#define PE25_PF_USBOTG_DATA7    (GPIO_PORTE | GPIO_PF | GPIO_OUT | 25) -#define PF1_PF_NFCLE            (GPIO_PORTF | GPIO_PF | 1) -#define PF3_PF_NFCE             (GPIO_PORTF | GPIO_PF | 3) -#define PF7_PF_PC_POE           (GPIO_PORTF | GPIO_PF | 7) -#define PF8_PF_PC_RW            (GPIO_PORTF | GPIO_PF | 8) -#define PF9_PF_PC_IOIS16        (GPIO_PORTF | GPIO_PF | 9) -#define PF10_PF_PC_RST          (GPIO_PORTF | GPIO_PF | 10) -#define PF11_PF_PC_BVD2         (GPIO_PORTF | GPIO_PF | 11) -#define PF12_PF_PC_BVD1         (GPIO_PORTF | GPIO_PF | 12) -#define PF13_PF_PC_VS2          (GPIO_PORTF | GPIO_PF | 13) -#define PF14_PF_PC_VS1          (GPIO_PORTF | GPIO_PF | 14) -#define PF16_PF_PC_PWRON        (GPIO_PORTF | GPIO_PF | 16) -#define PF17_PF_PC_READY        (GPIO_PORTF | GPIO_PF | 17) -#define PF18_PF_PC_WAIT         (GPIO_PORTF | GPIO_PF | 18) -#define PF19_PF_PC_CD2          (GPIO_PORTF | GPIO_PF | 19) -#define PF20_PF_PC_CD1          (GPIO_PORTF | GPIO_PF | 20) -#define PF23_PF_ATA_DATA15      (GPIO_PORTF | GPIO_PF | 23) +#define PA0_PF_USBH2_CLK	(GPIO_PORTA | GPIO_PF | 0) +#define PA1_PF_USBH2_DIR	(GPIO_PORTA | GPIO_PF | 1) +#define PA2_PF_USBH2_DATA7	(GPIO_PORTA | GPIO_PF | 2) +#define PA3_PF_USBH2_NXT	(GPIO_PORTA | GPIO_PF | 3) +#define PA4_PF_USBH2_STP	(GPIO_PORTA | GPIO_PF | 4) +#define PB22_PF_USBH1_SUSP	(GPIO_PORTB | GPIO_PF | 22) +#define PB25_PF_USBH1_RCV	(GPIO_PORTB | GPIO_PF | 25) +#define PC5_PF_I2C2_SDA		(GPIO_PORTC | GPIO_PF | GPIO_IN | 5) +#define PC6_PF_I2C2_SCL		(GPIO_PORTC | GPIO_PF | GPIO_IN | 6) +#define PC7_PF_USBOTG_DATA5	(GPIO_PORTC | GPIO_PF | GPIO_OUT | 7) +#define PC8_PF_USBOTG_DATA6	(GPIO_PORTC | GPIO_PF | GPIO_OUT | 8) +#define PC9_PF_USBOTG_DATA0	(GPIO_PORTC | GPIO_PF | GPIO_OUT | 9) +#define PC10_PF_USBOTG_DATA2	(GPIO_PORTC | GPIO_PF | GPIO_OUT | 10) +#define PC11_PF_USBOTG_DATA1	(GPIO_PORTC | GPIO_PF | GPIO_OUT | 11) +#define PC12_PF_USBOTG_DATA4	(GPIO_PORTC | GPIO_PF | GPIO_OUT | 12) +#define PC13_PF_USBOTG_DATA3	(GPIO_PORTC | GPIO_PF | GPIO_OUT | 13) +#define PC16_PF_SSI4_FS		(GPIO_PORTC | GPIO_PF | GPIO_IN | 16) +#define PC17_PF_SSI4_RXD	(GPIO_PORTC | GPIO_PF | GPIO_IN | 17) +#define PC18_PF_SSI4_TXD	(GPIO_PORTC | GPIO_PF | GPIO_IN | 18) +#define PC19_PF_SSI4_CLK	(GPIO_PORTC | GPIO_PF | GPIO_IN | 19) +#define PD0_PF_SD3_CMD		(GPIO_PORTD | GPIO_PF | 0) +#define PD1_PF_SD3_CLK		(GPIO_PORTD | GPIO_PF | 1) +#define PD2_PF_ATA_DATA0	(GPIO_PORTD | GPIO_PF | 2) +#define PD3_PF_ATA_DATA1	(GPIO_PORTD | GPIO_PF | 3) +#define PD4_PF_ATA_DATA2	(GPIO_PORTD | GPIO_PF | 4) +#define PD5_PF_ATA_DATA3	(GPIO_PORTD | GPIO_PF | 5) +#define PD6_PF_ATA_DATA4	(GPIO_PORTD | GPIO_PF | 6) +#define PD7_PF_ATA_DATA5	(GPIO_PORTD | GPIO_PF | 7) +#define PD8_PF_ATA_DATA6	(GPIO_PORTD | GPIO_PF | 8) +#define PD9_PF_ATA_DATA7	(GPIO_PORTD | GPIO_PF | 9) +#define PD10_PF_ATA_DATA8	(GPIO_PORTD | GPIO_PF | 10) +#define PD11_PF_ATA_DATA9	(GPIO_PORTD | GPIO_PF | 11) +#define PD12_PF_ATA_DATA10	(GPIO_PORTD | GPIO_PF | 12) +#define PD13_PF_ATA_DATA11	(GPIO_PORTD | GPIO_PF | 13) +#define PD14_PF_ATA_DATA12	(GPIO_PORTD | GPIO_PF | 14) +#define PD15_PF_ATA_DATA13	(GPIO_PORTD | GPIO_PF | 15) +#define PD16_PF_ATA_DATA14	(GPIO_PORTD | GPIO_PF | 16) +#define PE0_PF_USBOTG_NXT	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 0) +#define PE1_PF_USBOTG_STP	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 1) +#define PE2_PF_USBOTG_DIR	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 2) +#define PE24_PF_USBOTG_CLK	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 24) +#define PE25_PF_USBOTG_DATA7	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 25) +#define PF1_PF_NFCLE		(GPIO_PORTF | GPIO_PF | 1) +#define PF3_PF_NFCE		(GPIO_PORTF | GPIO_PF | 3) +#define PF7_PF_PC_POE		(GPIO_PORTF | GPIO_PF | 7) +#define PF8_PF_PC_RW		(GPIO_PORTF | GPIO_PF | 8) +#define PF9_PF_PC_IOIS16	(GPIO_PORTF | GPIO_PF | 9) +#define PF10_PF_PC_RST		(GPIO_PORTF | GPIO_PF | 10) +#define PF11_PF_PC_BVD2		(GPIO_PORTF | GPIO_PF | 11) +#define PF12_PF_PC_BVD1		(GPIO_PORTF | GPIO_PF | 12) +#define PF13_PF_PC_VS2		(GPIO_PORTF | GPIO_PF | 13) +#define PF14_PF_PC_VS1		(GPIO_PORTF | GPIO_PF | 14) +#define PF16_PF_PC_PWRON	(GPIO_PORTF | GPIO_PF | 16) +#define PF17_PF_PC_READY	(GPIO_PORTF | GPIO_PF | 17) +#define PF18_PF_PC_WAIT		(GPIO_PORTF | GPIO_PF | 18) +#define PF19_PF_PC_CD2		(GPIO_PORTF | GPIO_PF | 19) +#define PF20_PF_PC_CD1		(GPIO_PORTF | GPIO_PF | 20) +#define PF23_PF_ATA_DATA15	(GPIO_PORTF | GPIO_PF | 23)  /* Alternate GPIO pin functions */ -#define PB4_AF_MSHC_DATA0       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 4) -#define PB5_AF_MSHC_DATA1       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 5) -#define PB6_AF_MSHC_DATA2       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 6) -#define PB7_AF_MSHC_DATA4       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 7) -#define PB8_AF_MSHC_BS          (GPIO_PORTB | GPIO_AF | GPIO_OUT | 8) -#define PB9_AF_MSHC_SCLK        (GPIO_PORTB | GPIO_AF | GPIO_OUT | 9) -#define PB10_AF_UART6_TXD       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 10) -#define PB11_AF_UART6_RXD       (GPIO_PORTB | GPIO_AF | GPIO_IN | 11) -#define PB12_AF_UART6_CTS       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 12) -#define PB13_AF_UART6_RTS       (GPIO_PORTB | GPIO_AF | GPIO_IN | 13) -#define PB18_AF_UART5_TXD       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 18) -#define PB19_AF_UART5_RXD       (GPIO_PORTB | GPIO_AF | GPIO_IN | 19) -#define PB20_AF_UART5_CTS       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 20) -#define PB21_AF_UART5_RTS       (GPIO_PORTB | GPIO_AF | GPIO_IN | 21) -#define PC8_AF_FEC_MDIO         (GPIO_PORTC | GPIO_AF | GPIO_IN | 8) -#define PC24_AF_GPT5_TOUT       (GPIO_PORTC | GPIO_AF | 24) -#define PC26_AF_GPT4_TOUT       (GPIO_PORTC | GPIO_AF | 26) -#define PD1_AF_ETMTRACE_PKT15   (GPIO_PORTD | GPIO_AF | 1) -#define PD6_AF_ETMTRACE_PKT14   (GPIO_PORTD | GPIO_AF | 6) -#define PD7_AF_ETMTRACE_PKT13   (GPIO_PORTD | GPIO_AF | 7) -#define PD9_AF_ETMTRACE_PKT12   (GPIO_PORTD | GPIO_AF | 9) -#define PD2_AF_SD3_D0           (GPIO_PORTD | GPIO_AF | 2) -#define PD3_AF_SD3_D1           (GPIO_PORTD | GPIO_AF | 3) -#define PD4_AF_SD3_D2           (GPIO_PORTD | GPIO_AF | 4) -#define PD5_AF_SD3_D3           (GPIO_PORTD | GPIO_AF | 5) -#define PD8_AF_FEC_MDIO         (GPIO_PORTD | GPIO_AF | GPIO_IN | 8) -#define PD10_AF_ETMTRACE_PKT11  (GPIO_PORTD | GPIO_AF | 10) -#define PD11_AF_ETMTRACE_PKT10  (GPIO_PORTD | GPIO_AF | 11) -#define PD12_AF_ETMTRACE_PKT9   (GPIO_PORTD | GPIO_AF | 12) -#define PD13_AF_ETMTRACE_PKT8   (GPIO_PORTD | GPIO_AF | 13) -#define PD14_AF_ETMTRACE_PKT7   (GPIO_PORTD | GPIO_AF | 14) -#define PD15_AF_ETMTRACE_PKT6   (GPIO_PORTD | GPIO_AF | 15) -#define PD16_AF_ETMTRACE_PKT5   (GPIO_PORTD | GPIO_AF | 16) -#define PF1_AF_ETMTRACE_PKT0    (GPIO_PORTF | GPIO_AF | 1) -#define PF3_AF_ETMTRACE_PKT2    (GPIO_PORTF | GPIO_AF | 3) -#define PF5_AF_ETMPIPESTAT11    (GPIO_PORTF | GPIO_AF | 5) -#define PF7_AF_ATA_BUFFER_EN    (GPIO_PORTF | GPIO_AF | 7) -#define PF8_AF_ATA_IORDY        (GPIO_PORTF | GPIO_AF | 8) -#define PF9_AF_ATA_INTRQ        (GPIO_PORTF | GPIO_AF | 9) -#define PF10_AF_ATA_RESET       (GPIO_PORTF | GPIO_AF | 10) -#define PF11_AF_ATA_DMACK       (GPIO_PORTF | GPIO_AF | 11) -#define PF12_AF_ATA_DMAREQ      (GPIO_PORTF | GPIO_AF | 12) -#define PF13_AF_ATA_DA0         (GPIO_PORTF | GPIO_AF | 13) -#define PF14_AF_ATA_DA1         (GPIO_PORTF | GPIO_AF | 14) -#define PF15_AF_ETMTRACE_SYNC   (GPIO_PORTF | GPIO_AF | 15) -#define PF16_AF_ATA_DA2         (GPIO_PORTF | GPIO_AF | 16) -#define PF17_AF_ATA_CS0         (GPIO_PORTF | GPIO_AF | 17) -#define PF18_AF_ATA_CS1         (GPIO_PORTF | GPIO_AF | 18) -#define PF19_AF_ATA_DIOW        (GPIO_PORTF | GPIO_AF | 19) -#define PF20_AF_ATA_DIOR        (GPIO_PORTF | GPIO_AF | 20) -#define PF22_AF_ETMTRACE_CLK    (GPIO_PORTF | GPIO_AF | 22) -#define PF23_AF_ETMTRACE_PKT4   (GPIO_PORTF | GPIO_AF | 23) +#define PB4_AF_MSHC_DATA0	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 4) +#define PB5_AF_MSHC_DATA1	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 5) +#define PB6_AF_MSHC_DATA2	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 6) +#define PB7_AF_MSHC_DATA4	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 7) +#define PB8_AF_MSHC_BS		(GPIO_PORTB | GPIO_AF | GPIO_OUT | 8) +#define PB9_AF_MSHC_SCLK	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 9) +#define PB10_AF_UART6_TXD	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 10) +#define PB11_AF_UART6_RXD	(GPIO_PORTB | GPIO_AF | GPIO_IN | 11) +#define PB12_AF_UART6_CTS	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 12) +#define PB13_AF_UART6_RTS	(GPIO_PORTB | GPIO_AF | GPIO_IN | 13) +#define PB18_AF_UART5_TXD	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 18) +#define PB19_AF_UART5_RXD	(GPIO_PORTB | GPIO_AF | GPIO_IN | 19) +#define PB20_AF_UART5_CTS	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 20) +#define PB21_AF_UART5_RTS	(GPIO_PORTB | GPIO_AF | GPIO_IN | 21) +#define PC8_AF_FEC_MDIO		(GPIO_PORTC | GPIO_AF | GPIO_IN | 8) +#define PC24_AF_GPT5_TOUT	(GPIO_PORTC | GPIO_AF | 24) +#define PC25_AF_GPT5_TIN	(GPIO_PORTC | GPIO_AF | 25) +#define PC26_AF_GPT4_TOUT	(GPIO_PORTC | GPIO_AF | 26) +#define PC27_AF_GPT4_TIN	(GPIO_PORTC | GPIO_AF | 27) +#define PD1_AF_ETMTRACE_PKT15	(GPIO_PORTD | GPIO_AF | 1) +#define PD6_AF_ETMTRACE_PKT14	(GPIO_PORTD | GPIO_AF | 6) +#define PD7_AF_ETMTRACE_PKT13	(GPIO_PORTD | GPIO_AF | 7) +#define PD9_AF_ETMTRACE_PKT12	(GPIO_PORTD | GPIO_AF | 9) +#define PD2_AF_SD3_D0		(GPIO_PORTD | GPIO_AF | 2) +#define PD3_AF_SD3_D1		(GPIO_PORTD | GPIO_AF | 3) +#define PD4_AF_SD3_D2		(GPIO_PORTD | GPIO_AF | 4) +#define PD5_AF_SD3_D3		(GPIO_PORTD | GPIO_AF | 5) +#define PD8_AF_FEC_MDIO		(GPIO_PORTD | GPIO_AF | GPIO_IN | 8) +#define PD10_AF_ETMTRACE_PKT11	(GPIO_PORTD | GPIO_AF | 10) +#define PD11_AF_ETMTRACE_PKT10	(GPIO_PORTD | GPIO_AF | 11) +#define PD12_AF_ETMTRACE_PKT9	(GPIO_PORTD | GPIO_AF | 12) +#define PD13_AF_ETMTRACE_PKT8	(GPIO_PORTD | GPIO_AF | 13) +#define PD14_AF_ETMTRACE_PKT7	(GPIO_PORTD | GPIO_AF | 14) +#define PD15_AF_ETMTRACE_PKT6	(GPIO_PORTD | GPIO_AF | 15) +#define PD16_AF_ETMTRACE_PKT5	(GPIO_PORTD | GPIO_AF | 16) +#define PF1_AF_ETMTRACE_PKT0	(GPIO_PORTF | GPIO_AF | 1) +#define PF3_AF_ETMTRACE_PKT2	(GPIO_PORTF | GPIO_AF | 3) +#define PF5_AF_ETMPIPESTAT11	(GPIO_PORTF | GPIO_AF | 5) +#define PF7_AF_ATA_BUFFER_EN	(GPIO_PORTF | GPIO_AF | 7) +#define PF8_AF_ATA_IORDY	(GPIO_PORTF | GPIO_AF | 8) +#define PF9_AF_ATA_INTRQ	(GPIO_PORTF | GPIO_AF | 9) +#define PF10_AF_ATA_RESET	(GPIO_PORTF | GPIO_AF | 10) +#define PF11_AF_ATA_DMACK	(GPIO_PORTF | GPIO_AF | 11) +#define PF12_AF_ATA_DMAREQ	(GPIO_PORTF | GPIO_AF | 12) +#define PF13_AF_ATA_DA0		(GPIO_PORTF | GPIO_AF | 13) +#define PF14_AF_ATA_DA1		(GPIO_PORTF | GPIO_AF | 14) +#define PF15_AF_ETMTRACE_SYNC	(GPIO_PORTF | GPIO_AF | 15) +#define PF16_AF_ATA_DA2		(GPIO_PORTF | GPIO_AF | 16) +#define PF17_AF_ATA_CS0		(GPIO_PORTF | GPIO_AF | 17) +#define PF18_AF_ATA_CS1		(GPIO_PORTF | GPIO_AF | 18) +#define PF19_AF_ATA_DIOW	(GPIO_PORTF | GPIO_AF | 19) +#define PF20_AF_ATA_DIOR	(GPIO_PORTF | GPIO_AF | 20) +#define PF22_AF_ETMTRACE_CLK	(GPIO_PORTF | GPIO_AF | 22) +#define PF23_AF_ETMTRACE_PKT4	(GPIO_PORTF | GPIO_AF | 23)  /* AIN GPIO pin functions */ -#define PC14_AIN_SSI1_MCLK      (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 14) -#define PC15_AIN_GPT6_TOUT      (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 15) -#define PD0_AIN_FEC_TXD0        (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 0) -#define PD1_AIN_FEC_TXD1        (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 1) -#define PD2_AIN_FEC_TXD2        (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 2) -#define PD3_AIN_FEC_TXD3        (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 3) -#define PD9_AIN_FEC_MDC         (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 9) -#define PD16_AIN_FEC_TX_ER      (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 16) -#define PD27_AIN_EXT_DMA_GRANT  (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 27) -#define PF23_AIN_FEC_TX_EN      (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 23) +#define PC14_AIN_SSI1_MCLK	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 14) +#define PC15_AIN_GPT6_TOUT	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 15) +#define PD0_AIN_FEC_TXD0	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 0) +#define PD1_AIN_FEC_TXD1	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 1) +#define PD2_AIN_FEC_TXD2	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 2) +#define PD3_AIN_FEC_TXD3	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 3) +#define PD9_AIN_FEC_MDC		(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 9) +#define PD16_AIN_FEC_TX_ER	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 16) +#define PD27_AIN_EXT_DMA_GRANT	(GPIO_PORTD | GPIO_AIN | GPIO_OUT | 27) +#define PF23_AIN_FEC_TX_EN	(GPIO_PORTF | GPIO_AIN | GPIO_OUT | 23)  /* BIN GPIO pin functions */ -#define PC14_BIN_SSI2_MCLK      (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 14) +#define PC14_BIN_SSI2_MCLK	(GPIO_PORTC | GPIO_BIN | GPIO_OUT | 14)  /* CIN GPIO pin functions */ -#define PD2_CIN_SLCDC1_DAT0     (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 2) -#define PD3_CIN_SLCDC1_DAT1     (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 3) -#define PD4_CIN_SLCDC1_DAT2     (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 4) -#define PD5_CIN_SLCDC1_DAT3     (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 5) -#define PD6_CIN_SLCDC1_DAT4     (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 6) -#define PD7_CIN_SLCDC1_DAT5     (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 7) -#define PD8_CIN_SLCDC1_DAT6     (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 8) -#define PD9_CIN_SLCDC1_DAT7     (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 9) -#define PD10_CIN_SLCDC1_DAT8    (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 10) -#define PD11_CIN_SLCDC1_DAT9    (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 11) -#define PD12_CIN_SLCDC1_DAT10   (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 12) -#define PD13_CIN_SLCDC1_DAT11   (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 13) -#define PD14_CIN_SLCDC1_DAT12   (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 14) -#define PD15_CIN_SLCDC1_DAT13   (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 15) -#define PD16_CIN_SLCDC1_DAT14   (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 16) -#define PD23_CIN_SLCDC1_DAT15   (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 23) -#define PF27_CIN_EXT_DMA_GRANT  (GPIO_PORTF | GPIO_CIN | GPIO_OUT | 27) +#define PD2_CIN_SLCDC1_DAT0	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 2) +#define PD3_CIN_SLCDC1_DAT1	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 3) +#define PD4_CIN_SLCDC1_DAT2	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 4) +#define PD5_CIN_SLCDC1_DAT3	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 5) +#define PD6_CIN_SLCDC1_DAT4	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 6) +#define PD7_CIN_SLCDC1_DAT5	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 7) +#define PD8_CIN_SLCDC1_DAT6	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 8) +#define PD9_CIN_SLCDC1_DAT7	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 9) +#define PD10_CIN_SLCDC1_DAT8	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 10) +#define PD11_CIN_SLCDC1_DAT9	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 11) +#define PD12_CIN_SLCDC1_DAT10	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 12) +#define PD13_CIN_SLCDC1_DAT11	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 13) +#define PD14_CIN_SLCDC1_DAT12	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 14) +#define PD15_CIN_SLCDC1_DAT13	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 15) +#define PD16_CIN_SLCDC1_DAT14	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 16) +#define PD23_CIN_SLCDC1_DAT15	(GPIO_PORTD | GPIO_CIN | GPIO_OUT | 23) +#define PF27_CIN_EXT_DMA_GRANT	(GPIO_PORTF | GPIO_CIN | GPIO_OUT | 27)  /* LCDC_TESTx on PBxx omitted, because it's not clear what they do */  /* AOUT GPIO pin functions */ -#define PC14_AOUT_GPT6_TIN      (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 14) -#define PD4_AOUT_FEC_RX_ER      (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 4) -#define PD5_AOUT_FEC_RXD1       (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 5) -#define PD6_AOUT_FEC_RXD2       (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 6) -#define PD7_AOUT_FEC_RXD3       (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 7) -#define PD10_AOUT_FEC_CRS       (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 10) -#define PD11_AOUT_FEC_TX_CLK    (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 11) -#define PD12_AOUT_FEC_RXD0      (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 12) -#define PD13_AOUT_FEC_RX_DV     (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 13) -#define PD14_AOUT_FEC_RX_CLK    (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 14) -#define PD15_AOUT_FEC_COL       (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 15) +#define PC14_AOUT_GPT6_TIN	(GPIO_PORTC | GPIO_AOUT | GPIO_IN | 14) +#define PD4_AOUT_FEC_RX_ER	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 4) +#define PD5_AOUT_FEC_RXD1	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 5) +#define PD6_AOUT_FEC_RXD2	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 6) +#define PD7_AOUT_FEC_RXD3	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 7) +#define PD10_AOUT_FEC_CRS	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 10) +#define PD11_AOUT_FEC_TX_CLK	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 11) +#define PD12_AOUT_FEC_RXD0	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 12) +#define PD13_AOUT_FEC_RX_DV	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 13) +#define PD14_AOUT_FEC_RX_CLK	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 14) +#define PD15_AOUT_FEC_COL	(GPIO_PORTD | GPIO_AOUT | GPIO_IN | 15) -#define PC17_BOUT_PC_IOIS16     (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 17) -#define PC18_BOUT_PC_BVD2       (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 18) -#define PC19_BOUT_PC_BVD1       (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 19) -#define PC28_BOUT_PC_BVD2       (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 28) -#define PC29_BOUT_PC_VS1        (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 29) -#define PC30_BOUT_PC_READY      (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 30) -#define PC31_BOUT_PC_WAIT       (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 31) +/* BOUT GPIO pin functions */ +#define PC17_BOUT_PC_IOIS16	(GPIO_PORTC | GPIO_BOUT | GPIO_IN | 17) +#define PC18_BOUT_PC_BVD2	(GPIO_PORTC | GPIO_BOUT | GPIO_IN | 18) +#define PC19_BOUT_PC_BVD1	(GPIO_PORTC | GPIO_BOUT | GPIO_IN | 19) +#define PC28_BOUT_PC_BVD2	(GPIO_PORTC | GPIO_BOUT | GPIO_IN | 28) +#define PC29_BOUT_PC_VS1	(GPIO_PORTC | GPIO_BOUT | GPIO_IN | 29) +#define PC30_BOUT_PC_READY	(GPIO_PORTC | GPIO_BOUT | GPIO_IN | 30) +#define PC31_BOUT_PC_WAIT	(GPIO_PORTC | GPIO_BOUT | GPIO_IN | 31) -#endif /* _MXC_GPIO_MX1_MX2_H */ +#endif /* __MACH_IOMUX_MX27_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx2x.h b/arch/arm/plat-mxc/include/mach/iomux-mx2x.h index fb5ae638e79..c4f116d214f 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx2x.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx2x.h @@ -1,237 +1,230 @@  /* -* Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> -* Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -* MA 02110-1301, USA. -*/ - -#ifndef _MXC_IOMUX_MX2x_H -#define _MXC_IOMUX_MX2x_H - -#ifndef GPIO_PORTA -#error Please include mach/iomux.h -#endif - + * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> + * Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +#ifndef __MACH_IOMUX_MX2x_H__ +#define __MACH_IOMUX_MX2x_H__  /* Primary GPIO pin functions */ -#define PA5_PF_LSCLK            (GPIO_PORTA | GPIO_PF | GPIO_OUT | 5) -#define PA6_PF_LD0              (GPIO_PORTA | GPIO_PF | GPIO_OUT | 6) -#define PA7_PF_LD1              (GPIO_PORTA | GPIO_PF | GPIO_OUT | 7) -#define PA8_PF_LD2              (GPIO_PORTA | GPIO_PF | GPIO_OUT | 8) -#define PA9_PF_LD3              (GPIO_PORTA | GPIO_PF | GPIO_OUT | 9) -#define PA10_PF_LD4             (GPIO_PORTA | GPIO_PF | GPIO_OUT | 10) -#define PA11_PF_LD5             (GPIO_PORTA | GPIO_PF | GPIO_OUT | 11) -#define PA12_PF_LD6             (GPIO_PORTA | GPIO_PF | GPIO_OUT | 12) -#define PA13_PF_LD7             (GPIO_PORTA | GPIO_PF | GPIO_OUT | 13) -#define PA14_PF_LD8             (GPIO_PORTA | GPIO_PF | GPIO_OUT | 14) -#define PA15_PF_LD9             (GPIO_PORTA | GPIO_PF | GPIO_OUT | 15) -#define PA16_PF_LD10            (GPIO_PORTA | GPIO_PF | GPIO_OUT | 16) -#define PA17_PF_LD11            (GPIO_PORTA | GPIO_PF | GPIO_OUT | 17) -#define PA18_PF_LD12            (GPIO_PORTA | GPIO_PF | GPIO_OUT | 18) -#define PA19_PF_LD13            (GPIO_PORTA | GPIO_PF | GPIO_OUT | 19) -#define PA20_PF_LD14            (GPIO_PORTA | GPIO_PF | GPIO_OUT | 20) -#define PA21_PF_LD15            (GPIO_PORTA | GPIO_PF | GPIO_OUT | 21) -#define PA22_PF_LD16            (GPIO_PORTA | GPIO_PF | GPIO_OUT | 22) -#define PA23_PF_LD17            (GPIO_PORTA | GPIO_PF | GPIO_OUT | 23) -#define PA24_PF_REV             (GPIO_PORTA | GPIO_PF | GPIO_OUT | 24) -#define PA25_PF_CLS             (GPIO_PORTA | GPIO_PF | GPIO_OUT | 25) -#define PA26_PF_PS              (GPIO_PORTA | GPIO_PF | GPIO_OUT | 26) -#define PA27_PF_SPL_SPR         (GPIO_PORTA | GPIO_PF | GPIO_OUT | 27) -#define PA28_PF_HSYNC           (GPIO_PORTA | GPIO_PF | GPIO_OUT | 28) -#define PA29_PF_VSYNC           (GPIO_PORTA | GPIO_PF | GPIO_OUT | 29) -#define PA30_PF_CONTRAST        (GPIO_PORTA | GPIO_PF | GPIO_OUT | 30) -#define PA31_PF_OE_ACD          (GPIO_PORTA | GPIO_PF | GPIO_OUT | 31) -#define PB4_PF_SD2_D0           (GPIO_PORTB | GPIO_PF | 4) -#define PB5_PF_SD2_D1           (GPIO_PORTB | GPIO_PF | 5) -#define PB6_PF_SD2_D2           (GPIO_PORTB | GPIO_PF | 6) -#define PB7_PF_SD2_D3           (GPIO_PORTB | GPIO_PF | 7) -#define PB8_PF_SD2_CMD          (GPIO_PORTB | GPIO_PF | 8) -#define PB9_PF_SD2_CLK          (GPIO_PORTB | GPIO_PF | 9) -#define PB10_PF_CSI_D0          (GPIO_PORTB | GPIO_PF | GPIO_OUT | 10) -#define PB11_PF_CSI_D1          (GPIO_PORTB | GPIO_PF | GPIO_OUT | 11) -#define PB12_PF_CSI_D2          (GPIO_PORTB | GPIO_PF | GPIO_OUT | 12) -#define PB13_PF_CSI_D3          (GPIO_PORTB | GPIO_PF | GPIO_OUT | 13) -#define PB14_PF_CSI_D4          (GPIO_PORTB | GPIO_PF | GPIO_OUT | 14) -#define PB15_PF_CSI_MCLK        (GPIO_PORTB | GPIO_PF | GPIO_OUT | 15) -#define PB16_PF_CSI_PIXCLK      (GPIO_PORTB | GPIO_PF | GPIO_OUT | 16) -#define PB17_PF_CSI_D5          (GPIO_PORTB | GPIO_PF | GPIO_OUT | 17) -#define PB18_PF_CSI_D6          (GPIO_PORTB | GPIO_PF | GPIO_OUT | 18) -#define PB19_PF_CSI_D7          (GPIO_PORTB | GPIO_PF | GPIO_OUT | 19) -#define PB20_PF_CSI_VSYNC       (GPIO_PORTB | GPIO_PF | GPIO_OUT | 20) -#define PB21_PF_CSI_HSYNC       (GPIO_PORTB | GPIO_PF | GPIO_OUT | 21) -#define PB23_PF_USB_PWR         (GPIO_PORTB | GPIO_PF | 23) -#define PB24_PF_USB_OC          (GPIO_PORTB | GPIO_PF | 24) -#define PB26_PF_USBH1_FS        (GPIO_PORTB | GPIO_PF | 26) -#define PB27_PF_USBH1_OE        (GPIO_PORTB | GPIO_PF | 27) -#define PB28_PF_USBH1_TXDM      (GPIO_PORTB | GPIO_PF | 28) -#define PB29_PF_USBH1_TXDP      (GPIO_PORTB | GPIO_PF | 29) -#define PB30_PF_USBH1_RXDM      (GPIO_PORTB | GPIO_PF | 30) -#define PB31_PF_USBH1_RXDP      (GPIO_PORTB | GPIO_PF | 31) -#define PC14_PF_TOUT            (GPIO_PORTC | GPIO_PF | 14) -#define PC15_PF_TIN             (GPIO_PORTC | GPIO_PF | 15) -#define PC20_PF_SSI1_FS         (GPIO_PORTC | GPIO_PF | GPIO_IN | 20) -#define PC21_PF_SSI1_RXD        (GPIO_PORTC | GPIO_PF | GPIO_IN | 21) -#define PC22_PF_SSI1_TXD        (GPIO_PORTC | GPIO_PF | GPIO_IN | 22) -#define PC23_PF_SSI1_CLK        (GPIO_PORTC | GPIO_PF | GPIO_IN | 23) -#define PC24_PF_SSI2_FS         (GPIO_PORTC | GPIO_PF | GPIO_IN | 24) -#define PC25_PF_SSI2_RXD        (GPIO_PORTC | GPIO_PF | GPIO_IN | 25) -#define PC26_PF_SSI2_TXD        (GPIO_PORTC | GPIO_PF | GPIO_IN | 26) -#define PC27_PF_SSI2_CLK        (GPIO_PORTC | GPIO_PF | GPIO_IN | 27) -#define PC28_PF_SSI3_FS         (GPIO_PORTC | GPIO_PF | GPIO_IN | 28) -#define PC29_PF_SSI3_RXD        (GPIO_PORTC | GPIO_PF | GPIO_IN | 29) -#define PC30_PF_SSI3_TXD        (GPIO_PORTC | GPIO_PF | GPIO_IN | 30) -#define PC31_PF_SSI3_CLK        (GPIO_PORTC | GPIO_PF | GPIO_IN | 31) -#define PD17_PF_I2C_DATA        (GPIO_PORTD | GPIO_PF | GPIO_OUT | 17) -#define PD18_PF_I2C_CLK         (GPIO_PORTD | GPIO_PF | GPIO_OUT | 18) -#define PD19_PF_CSPI2_SS2       (GPIO_PORTD | GPIO_PF | 19) -#define PD20_PF_CSPI2_SS1       (GPIO_PORTD | GPIO_PF | 20) -#define PD21_PF_CSPI2_SS0       (GPIO_PORTD | GPIO_PF | 21) -#define PD22_PF_CSPI2_SCLK      (GPIO_PORTD | GPIO_PF | 22) -#define PD23_PF_CSPI2_MISO      (GPIO_PORTD | GPIO_PF | 23) -#define PD24_PF_CSPI2_MOSI      (GPIO_PORTD | GPIO_PF | 24) -#define PD25_PF_CSPI1_RDY       (GPIO_PORTD | GPIO_PF | GPIO_OUT | 25) -#define PD26_PF_CSPI1_SS2       (GPIO_PORTD | GPIO_PF | GPIO_OUT | 26) -#define PD27_PF_CSPI1_SS1       (GPIO_PORTD | GPIO_PF | GPIO_OUT | 27) -#define PD28_PF_CSPI1_SS0       (GPIO_PORTD | GPIO_PF | GPIO_OUT | 28) -#define PD29_PF_CSPI1_SCLK      (GPIO_PORTD | GPIO_PF | GPIO_OUT | 29) -#define PD30_PF_CSPI1_MISO      (GPIO_PORTD | GPIO_PF | GPIO_IN | 30) -#define PD31_PF_CSPI1_MOSI      (GPIO_PORTD | GPIO_PF | GPIO_OUT | 31) -#define PE3_PF_UART2_CTS        (GPIO_PORTE | GPIO_PF | GPIO_OUT | 3) -#define PE4_PF_UART2_RTS        (GPIO_PORTE | GPIO_PF | GPIO_IN | 4) -#define PE5_PF_PWMO             (GPIO_PORTE | GPIO_PF | 5) -#define PE6_PF_UART2_TXD        (GPIO_PORTE | GPIO_PF | GPIO_OUT | 6) -#define PE7_PF_UART2_RXD        (GPIO_PORTE | GPIO_PF | GPIO_IN | 7) -#define PE8_PF_UART3_TXD        (GPIO_PORTE | GPIO_PF | GPIO_OUT | 8) -#define PE9_PF_UART3_RXD        (GPIO_PORTE | GPIO_PF | GPIO_IN | 9) -#define PE10_PF_UART3_CTS       (GPIO_PORTE | GPIO_PF | GPIO_OUT | 10) -#define PE11_PF_UART3_RTS       (GPIO_PORTE | GPIO_PF | GPIO_IN | 11) -#define PE12_PF_UART1_TXD       (GPIO_PORTE | GPIO_PF | GPIO_OUT | 12) -#define PE13_PF_UART1_RXD       (GPIO_PORTE | GPIO_PF | GPIO_IN | 13) -#define PE14_PF_UART1_CTS       (GPIO_PORTE | GPIO_PF | GPIO_OUT | 14) -#define PE15_PF_UART1_RTS       (GPIO_PORTE | GPIO_PF | GPIO_IN | 15) -#define PE16_PF_RTCK            (GPIO_PORTE | GPIO_PF | GPIO_OUT | 16) -#define PE17_PF_RESET_OUT       (GPIO_PORTE | GPIO_PF | 17) -#define PE18_PF_SD1_D0          (GPIO_PORTE | GPIO_PF | 18) -#define PE19_PF_SD1_D1          (GPIO_PORTE | GPIO_PF | 19) -#define PE20_PF_SD1_D2          (GPIO_PORTE | GPIO_PF | 20) -#define PE21_PF_SD1_D3          (GPIO_PORTE | GPIO_PF | 21) -#define PE22_PF_SD1_CMD         (GPIO_PORTE | GPIO_PF | 22) -#define PE23_PF_SD1_CLK         (GPIO_PORTE | GPIO_PF | 23) -#define PF0_PF_NRFB             (GPIO_PORTF | GPIO_PF | 0) -#define PF2_PF_NFWP             (GPIO_PORTF | GPIO_PF | 2) -#define PF4_PF_NFALE            (GPIO_PORTF | GPIO_PF | 4) -#define PF5_PF_NFRE             (GPIO_PORTF | GPIO_PF | 5) -#define PF6_PF_NFWE             (GPIO_PORTF | GPIO_PF | 6) -#define PF15_PF_CLKO            (GPIO_PORTF | GPIO_PF | 15) -#define PF21_PF_CS4             (GPIO_PORTF | GPIO_PF | 21) -#define PF22_PF_CS5             (GPIO_PORTF | GPIO_PF | 22) +#define PA5_PF_LSCLK		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 5) +#define PA6_PF_LD0		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 6) +#define PA7_PF_LD1		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 7) +#define PA8_PF_LD2		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 8) +#define PA9_PF_LD3		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 9) +#define PA10_PF_LD4		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 10) +#define PA11_PF_LD5		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 11) +#define PA12_PF_LD6		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 12) +#define PA13_PF_LD7		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 13) +#define PA14_PF_LD8		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 14) +#define PA15_PF_LD9		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 15) +#define PA16_PF_LD10		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 16) +#define PA17_PF_LD11		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 17) +#define PA18_PF_LD12		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 18) +#define PA19_PF_LD13		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 19) +#define PA20_PF_LD14		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 20) +#define PA21_PF_LD15		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 21) +#define PA22_PF_LD16		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 22) +#define PA23_PF_LD17		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 23) +#define PA24_PF_REV		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 24) +#define PA25_PF_CLS		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 25) +#define PA26_PF_PS		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 26) +#define PA27_PF_SPL_SPR		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 27) +#define PA28_PF_HSYNC		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 28) +#define PA29_PF_VSYNC		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 29) +#define PA30_PF_CONTRAST	(GPIO_PORTA | GPIO_PF | GPIO_OUT | 30) +#define PA31_PF_OE_ACD		(GPIO_PORTA | GPIO_PF | GPIO_OUT | 31) +#define PB4_PF_SD2_D0		(GPIO_PORTB | GPIO_PF | 4) +#define PB5_PF_SD2_D1		(GPIO_PORTB | GPIO_PF | 5) +#define PB6_PF_SD2_D2		(GPIO_PORTB | GPIO_PF | 6) +#define PB7_PF_SD2_D3		(GPIO_PORTB | GPIO_PF | 7) +#define PB8_PF_SD2_CMD		(GPIO_PORTB | GPIO_PF | 8) +#define PB9_PF_SD2_CLK		(GPIO_PORTB | GPIO_PF | 9) +#define PB10_PF_CSI_D0		(GPIO_PORTB | GPIO_PF | GPIO_OUT | 10) +#define PB11_PF_CSI_D1		(GPIO_PORTB | GPIO_PF | GPIO_OUT | 11) +#define PB12_PF_CSI_D2		(GPIO_PORTB | GPIO_PF | GPIO_OUT | 12) +#define PB13_PF_CSI_D3		(GPIO_PORTB | GPIO_PF | GPIO_OUT | 13) +#define PB14_PF_CSI_D4		(GPIO_PORTB | GPIO_PF | GPIO_OUT | 14) +#define PB15_PF_CSI_MCLK	(GPIO_PORTB | GPIO_PF | GPIO_OUT | 15) +#define PB16_PF_CSI_PIXCLK	(GPIO_PORTB | GPIO_PF | GPIO_OUT | 16) +#define PB17_PF_CSI_D5		(GPIO_PORTB | GPIO_PF | GPIO_OUT | 17) +#define PB18_PF_CSI_D6		(GPIO_PORTB | GPIO_PF | GPIO_OUT | 18) +#define PB19_PF_CSI_D7		(GPIO_PORTB | GPIO_PF | GPIO_OUT | 19) +#define PB20_PF_CSI_VSYNC	(GPIO_PORTB | GPIO_PF | GPIO_OUT | 20) +#define PB21_PF_CSI_HSYNC	(GPIO_PORTB | GPIO_PF | GPIO_OUT | 21) +#define PB23_PF_USB_PWR		(GPIO_PORTB | GPIO_PF | 23) +#define PB24_PF_USB_OC		(GPIO_PORTB | GPIO_PF | 24) +#define PB26_PF_USBH1_FS	(GPIO_PORTB | GPIO_PF | 26) +#define PB27_PF_USBH1_OE	(GPIO_PORTB | GPIO_PF | 27) +#define PB28_PF_USBH1_TXDM	(GPIO_PORTB | GPIO_PF | 28) +#define PB29_PF_USBH1_TXDP	(GPIO_PORTB | GPIO_PF | 29) +#define PB30_PF_USBH1_RXDM	(GPIO_PORTB | GPIO_PF | 30) +#define PB31_PF_USBH1_RXDP	(GPIO_PORTB | GPIO_PF | 31) +#define PC14_PF_TOUT		(GPIO_PORTC | GPIO_PF | 14) +#define PC15_PF_TIN		(GPIO_PORTC | GPIO_PF | 15) +#define PC20_PF_SSI1_FS		(GPIO_PORTC | GPIO_PF | GPIO_IN | 20) +#define PC21_PF_SSI1_RXD	(GPIO_PORTC | GPIO_PF | GPIO_IN | 21) +#define PC22_PF_SSI1_TXD	(GPIO_PORTC | GPIO_PF | GPIO_IN | 22) +#define PC23_PF_SSI1_CLK	(GPIO_PORTC | GPIO_PF | GPIO_IN | 23) +#define PC24_PF_SSI2_FS		(GPIO_PORTC | GPIO_PF | GPIO_IN | 24) +#define PC25_PF_SSI2_RXD	(GPIO_PORTC | GPIO_PF | GPIO_IN | 25) +#define PC26_PF_SSI2_TXD	(GPIO_PORTC | GPIO_PF | GPIO_IN | 26) +#define PC27_PF_SSI2_CLK	(GPIO_PORTC | GPIO_PF | GPIO_IN | 27) +#define PC28_PF_SSI3_FS		(GPIO_PORTC | GPIO_PF | GPIO_IN | 28) +#define PC29_PF_SSI3_RXD	(GPIO_PORTC | GPIO_PF | GPIO_IN | 29) +#define PC30_PF_SSI3_TXD	(GPIO_PORTC | GPIO_PF | GPIO_IN | 30) +#define PC31_PF_SSI3_CLK	(GPIO_PORTC | GPIO_PF | GPIO_IN | 31) +#define PD17_PF_I2C_DATA	(GPIO_PORTD | GPIO_PF | GPIO_OUT | 17) +#define PD18_PF_I2C_CLK		(GPIO_PORTD | GPIO_PF | GPIO_OUT | 18) +#define PD19_PF_CSPI2_SS2	(GPIO_PORTD | GPIO_PF | 19) +#define PD20_PF_CSPI2_SS1	(GPIO_PORTD | GPIO_PF | 20) +#define PD21_PF_CSPI2_SS0	(GPIO_PORTD | GPIO_PF | 21) +#define PD22_PF_CSPI2_SCLK	(GPIO_PORTD | GPIO_PF | 22) +#define PD23_PF_CSPI2_MISO	(GPIO_PORTD | GPIO_PF | 23) +#define PD24_PF_CSPI2_MOSI	(GPIO_PORTD | GPIO_PF | 24) +#define PD25_PF_CSPI1_RDY	(GPIO_PORTD | GPIO_PF | GPIO_OUT | 25) +#define PD26_PF_CSPI1_SS2	(GPIO_PORTD | GPIO_PF | GPIO_OUT | 26) +#define PD27_PF_CSPI1_SS1	(GPIO_PORTD | GPIO_PF | GPIO_OUT | 27) +#define PD28_PF_CSPI1_SS0	(GPIO_PORTD | GPIO_PF | GPIO_OUT | 28) +#define PD29_PF_CSPI1_SCLK	(GPIO_PORTD | GPIO_PF | GPIO_OUT | 29) +#define PD30_PF_CSPI1_MISO	(GPIO_PORTD | GPIO_PF | GPIO_IN | 30) +#define PD31_PF_CSPI1_MOSI	(GPIO_PORTD | GPIO_PF | GPIO_OUT | 31) +#define PE3_PF_UART2_CTS	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 3) +#define PE4_PF_UART2_RTS	(GPIO_PORTE | GPIO_PF | GPIO_IN | 4) +#define PE5_PF_PWMO		(GPIO_PORTE | GPIO_PF | 5) +#define PE6_PF_UART2_TXD	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 6) +#define PE7_PF_UART2_RXD	(GPIO_PORTE | GPIO_PF | GPIO_IN | 7) +#define PE8_PF_UART3_TXD	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 8) +#define PE9_PF_UART3_RXD	(GPIO_PORTE | GPIO_PF | GPIO_IN | 9) +#define PE10_PF_UART3_CTS	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 10) +#define PE11_PF_UART3_RTS	(GPIO_PORTE | GPIO_PF | GPIO_IN | 11) +#define PE12_PF_UART1_TXD	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 12) +#define PE13_PF_UART1_RXD	(GPIO_PORTE | GPIO_PF | GPIO_IN | 13) +#define PE14_PF_UART1_CTS	(GPIO_PORTE | GPIO_PF | GPIO_OUT | 14) +#define PE15_PF_UART1_RTS	(GPIO_PORTE | GPIO_PF | GPIO_IN | 15) +#define PE16_PF_RTCK		(GPIO_PORTE | GPIO_PF | GPIO_OUT | 16) +#define PE17_PF_RESET_OUT	(GPIO_PORTE | GPIO_PF | 17) +#define PE18_PF_SD1_D0		(GPIO_PORTE | GPIO_PF | 18) +#define PE19_PF_SD1_D1		(GPIO_PORTE | GPIO_PF | 19) +#define PE20_PF_SD1_D2		(GPIO_PORTE | GPIO_PF | 20) +#define PE21_PF_SD1_D3		(GPIO_PORTE | GPIO_PF | 21) +#define PE22_PF_SD1_CMD		(GPIO_PORTE | GPIO_PF | 22) +#define PE23_PF_SD1_CLK		(GPIO_PORTE | GPIO_PF | 23) +#define PF0_PF_NRFB		(GPIO_PORTF | GPIO_PF | 0) +#define PF2_PF_NFWP		(GPIO_PORTF | GPIO_PF | 2) +#define PF4_PF_NFALE		(GPIO_PORTF | GPIO_PF | 4) +#define PF5_PF_NFRE		(GPIO_PORTF | GPIO_PF | 5) +#define PF6_PF_NFWE		(GPIO_PORTF | GPIO_PF | 6) +#define PF15_PF_CLKO		(GPIO_PORTF | GPIO_PF | 15) +#define PF21_PF_CS4		(GPIO_PORTF | GPIO_PF | 21) +#define PF22_PF_CS5		(GPIO_PORTF | GPIO_PF | 22)  /* Alternate GPIO pin functions */ -#define PB26_AF_UART4_RTS       (GPIO_PORTB | GPIO_AF | GPIO_IN | 26) -#define PB28_AF_UART4_TXD       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 28) -#define PB29_AF_UART4_CTS       (GPIO_PORTB | GPIO_AF | GPIO_OUT | 29) -#define PB31_AF_UART4_RXD       (GPIO_PORTB | GPIO_AF | GPIO_IN | 31) -#define PC28_AF_SLCDC2_D0       (GPIO_PORTC | GPIO_AF | 28) -#define PC29_AF_SLCDC2_RS       (GPIO_PORTC | GPIO_AF | 29) -#define PC30_AF_SLCDC2_CS       (GPIO_PORTC | GPIO_AF | 30) -#define PC31_AF_SLCDC2_CLK      (GPIO_PORTC | GPIO_AF | 31) -#define PD19_AF_USBH2_DATA4     (GPIO_PORTD | GPIO_AF | 19) -#define PD20_AF_USBH2_DATA3     (GPIO_PORTD | GPIO_AF | 20) -#define PD21_AF_USBH2_DATA6     (GPIO_PORTD | GPIO_AF | 21) -#define PD22_AF_USBH2_DATA0     (GPIO_PORTD | GPIO_AF | 22) -#define PD23_AF_USBH2_DATA2     (GPIO_PORTD | GPIO_AF | 23) -#define PD24_AF_USBH2_DATA1     (GPIO_PORTD | GPIO_AF | 24) -#define PD26_AF_USBH2_DATA5     (GPIO_PORTD | GPIO_AF | 26) -#define PE0_AF_KP_COL6          (GPIO_PORTE | GPIO_AF | 0) -#define PE1_AF_KP_ROW6          (GPIO_PORTE | GPIO_AF | 1) -#define PE2_AF_KP_ROW7          (GPIO_PORTE | GPIO_AF | 2) -#define PE3_AF_KP_COL7          (GPIO_PORTE | GPIO_AF | 3) -#define PE4_AF_KP_ROW7          (GPIO_PORTE | GPIO_AF | 4) -#define PE6_AF_KP_COL6          (GPIO_PORTE | GPIO_AF | 6) -#define PE7_AF_KP_ROW6          (GPIO_PORTE | GPIO_AF | 7) -#define PE16_AF_OWIRE           (GPIO_PORTE | GPIO_AF | 16) -#define PE18_AF_CSPI3_MISO      (GPIO_PORTE | GPIO_AF | GPIO_IN | 18) -#define PE21_AF_CSPI3_SS        (GPIO_PORTE | GPIO_AF | GPIO_OUT | 21) -#define PE22_AF_CSPI3_MOSI      (GPIO_PORTE | GPIO_AF | GPIO_OUT | 22) -#define PE23_AF_CSPI3_SCLK      (GPIO_PORTE | GPIO_AF | GPIO_OUT | 23) +#define PB26_AF_UART4_RTS	(GPIO_PORTB | GPIO_AF | GPIO_IN | 26) +#define PB28_AF_UART4_TXD	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 28) +#define PB29_AF_UART4_CTS	(GPIO_PORTB | GPIO_AF | GPIO_OUT | 29) +#define PB31_AF_UART4_RXD	(GPIO_PORTB | GPIO_AF | GPIO_IN | 31) +#define PC28_AF_SLCDC2_D0	(GPIO_PORTC | GPIO_AF | 28) +#define PC29_AF_SLCDC2_RS	(GPIO_PORTC | GPIO_AF | 29) +#define PC30_AF_SLCDC2_CS	(GPIO_PORTC | GPIO_AF | 30) +#define PC31_AF_SLCDC2_CLK	(GPIO_PORTC | GPIO_AF | 31) +#define PD19_AF_USBH2_DATA4	(GPIO_PORTD | GPIO_AF | 19) +#define PD20_AF_USBH2_DATA3	(GPIO_PORTD | GPIO_AF | 20) +#define PD21_AF_USBH2_DATA6	(GPIO_PORTD | GPIO_AF | 21) +#define PD22_AF_USBH2_DATA0	(GPIO_PORTD | GPIO_AF | 22) +#define PD23_AF_USBH2_DATA2	(GPIO_PORTD | GPIO_AF | 23) +#define PD24_AF_USBH2_DATA1	(GPIO_PORTD | GPIO_AF | 24) +#define PD26_AF_USBH2_DATA5	(GPIO_PORTD | GPIO_AF | 26) +#define PE0_AF_KP_COL6		(GPIO_PORTE | GPIO_AF | 0) +#define PE1_AF_KP_ROW6		(GPIO_PORTE | GPIO_AF | 1) +#define PE2_AF_KP_ROW7		(GPIO_PORTE | GPIO_AF | 2) +#define PE3_AF_KP_COL7		(GPIO_PORTE | GPIO_AF | 3) +#define PE4_AF_KP_ROW7		(GPIO_PORTE | GPIO_AF | 4) +#define PE6_AF_KP_COL6		(GPIO_PORTE | GPIO_AF | 6) +#define PE7_AF_KP_ROW6		(GPIO_PORTE | GPIO_AF | 7) +#define PE16_AF_OWIRE		(GPIO_PORTE | GPIO_AF | 16) +#define PE18_AF_CSPI3_MISO	(GPIO_PORTE | GPIO_AF | GPIO_IN | 18) +#define PE21_AF_CSPI3_SS	(GPIO_PORTE | GPIO_AF | GPIO_OUT | 21) +#define PE22_AF_CSPI3_MOSI	(GPIO_PORTE | GPIO_AF | GPIO_OUT | 22) +#define PE23_AF_CSPI3_SCLK	(GPIO_PORTE | GPIO_AF | GPIO_OUT | 23)  /* AIN GPIO pin functions */ -#define PA6_AIN_SLCDC1_DAT0     (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 6) -#define PA7_AIN_SLCDC1_DAT1     (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 7) -#define PA8_AIN_SLCDC1_DAT2     (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 8) -#define PA0_AIN_SLCDC1_DAT3     (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 0) -#define PA11_AIN_SLCDC1_DAT5    (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 11) -#define PA13_AIN_SLCDC1_DAT7    (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 13) -#define PA15_AIN_SLCDC1_DAT9    (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 15) -#define PA17_AIN_SLCDC1_DAT11   (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 17) -#define PA19_AIN_SLCDC1_DAT13   (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 19) -#define PA21_AIN_SLCDC1_DAT15   (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 21) -#define PA22_AIN_EXT_DMAGRANT   (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 22) -#define PA24_AIN_SLCDC1_D0      (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 24) -#define PA25_AIN_SLCDC1_RS      (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 25) -#define PA26_AIN_SLCDC1_CS      (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 26) -#define PA27_AIN_SLCDC1_CLK     (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 27) -#define PB6_AIN_SLCDC1_D0       (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 6) -#define PB7_AIN_SLCDC1_RS       (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 7) -#define PB8_AIN_SLCDC1_CS       (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 8) -#define PB9_AIN_SLCDC1_CLK      (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 9) -#define PB25_AIN_SLCDC1_DAT0    (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 25) -#define PB26_AIN_SLCDC1_DAT1    (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 26) -#define PB27_AIN_SLCDC1_DAT2    (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 27) -#define PB28_AIN_SLCDC1_DAT3    (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 28) -#define PB29_AIN_SLCDC1_DAT4    (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 29) -#define PB30_AIN_SLCDC1_DAT5    (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 30) -#define PB31_AIN_SLCDC1_DAT6    (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 31) -#define PC5_AIN_SLCDC1_DAT7     (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 5) -#define PC6_AIN_SLCDC1_DAT8     (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 6) -#define PC7_AIN_SLCDC1_DAT9     (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 7) -#define PC8_AIN_SLCDC1_DAT10    (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 8) -#define PC9_AIN_SLCDC1_DAT11    (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 9) -#define PC10_AIN_SLCDC1_DAT12   (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 10) -#define PC11_AIN_SLCDC1_DAT13   (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 11) -#define PC12_AIN_SLCDC1_DAT14   (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 12) -#define PC13_AIN_SLCDC1_DAT15   (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 13) -#define PE5_AIN_PC_SPKOUT       (GPIO_PORTE | GPIO_AIN | GPIO_OUT | 5) +#define PA6_AIN_SLCDC1_DAT0	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 6) +#define PA7_AIN_SLCDC1_DAT1	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 7) +#define PA8_AIN_SLCDC1_DAT2	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 8) +#define PA0_AIN_SLCDC1_DAT3	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 0) +#define PA11_AIN_SLCDC1_DAT5	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 11) +#define PA13_AIN_SLCDC1_DAT7	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 13) +#define PA15_AIN_SLCDC1_DAT9	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 15) +#define PA17_AIN_SLCDC1_DAT11	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 17) +#define PA19_AIN_SLCDC1_DAT13	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 19) +#define PA21_AIN_SLCDC1_DAT15	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 21) +#define PA22_AIN_EXT_DMAGRANT	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 22) +#define PA24_AIN_SLCDC1_D0	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 24) +#define PA25_AIN_SLCDC1_RS	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 25) +#define PA26_AIN_SLCDC1_CS	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 26) +#define PA27_AIN_SLCDC1_CLK	(GPIO_PORTA | GPIO_AIN | GPIO_OUT | 27) +#define PB6_AIN_SLCDC1_D0	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 6) +#define PB7_AIN_SLCDC1_RS	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 7) +#define PB8_AIN_SLCDC1_CS	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 8) +#define PB9_AIN_SLCDC1_CLK	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 9) +#define PB25_AIN_SLCDC1_DAT0	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 25) +#define PB26_AIN_SLCDC1_DAT1	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 26) +#define PB27_AIN_SLCDC1_DAT2	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 27) +#define PB28_AIN_SLCDC1_DAT3	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 28) +#define PB29_AIN_SLCDC1_DAT4	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 29) +#define PB30_AIN_SLCDC1_DAT5	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 30) +#define PB31_AIN_SLCDC1_DAT6	(GPIO_PORTB | GPIO_AIN | GPIO_OUT | 31) +#define PC5_AIN_SLCDC1_DAT7	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 5) +#define PC6_AIN_SLCDC1_DAT8	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 6) +#define PC7_AIN_SLCDC1_DAT9	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 7) +#define PC8_AIN_SLCDC1_DAT10	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 8) +#define PC9_AIN_SLCDC1_DAT11	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 9) +#define PC10_AIN_SLCDC1_DAT12	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 10) +#define PC11_AIN_SLCDC1_DAT13	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 11) +#define PC12_AIN_SLCDC1_DAT14	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 12) +#define PC13_AIN_SLCDC1_DAT15	(GPIO_PORTC | GPIO_AIN | GPIO_OUT | 13) +#define PE5_AIN_PC_SPKOUT	(GPIO_PORTE | GPIO_AIN | GPIO_OUT | 5)  /* BIN GPIO pin functions */ -#define PE5_BIN_TOUT2           (GPIO_PORTE | GPIO_BIN | GPIO_OUT | 5) +#define PE5_BIN_TOUT2		(GPIO_PORTE | GPIO_BIN | GPIO_OUT | 5)  /* CIN GPIO pin functions */ -#define PA14_CIN_SLCDC1_DAT0    (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 14) -#define PA15_CIN_SLCDC1_DAT1    (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 15) -#define PA16_CIN_SLCDC1_DAT2    (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 16) -#define PA17_CIN_SLCDC1_DAT3    (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 17) -#define PA18_CIN_SLCDC1_DAT4    (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 18) -#define PA19_CIN_SLCDC1_DAT5    (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 19) -#define PA20_CIN_SLCDC1_DAT6    (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 20) -#define PA21_CIN_SLCDC1_DAT7    (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 21) -#define PB30_CIN_UART4_CTS      (GPIO_PORTB | GPIO_CIN | GPIO_OUT | 30) -#define PE5_CIN_TOUT3           (GPIO_PORTE | GPIO_CIN | GPIO_OUT | 5) +#define PA14_CIN_SLCDC1_DAT0	(GPIO_PORTA | GPIO_CIN | GPIO_OUT | 14) +#define PA15_CIN_SLCDC1_DAT1	(GPIO_PORTA | GPIO_CIN | GPIO_OUT | 15) +#define PA16_CIN_SLCDC1_DAT2	(GPIO_PORTA | GPIO_CIN | GPIO_OUT | 16) +#define PA17_CIN_SLCDC1_DAT3	(GPIO_PORTA | GPIO_CIN | GPIO_OUT | 17) +#define PA18_CIN_SLCDC1_DAT4	(GPIO_PORTA | GPIO_CIN | GPIO_OUT | 18) +#define PA19_CIN_SLCDC1_DAT5	(GPIO_PORTA | GPIO_CIN | GPIO_OUT | 19) +#define PA20_CIN_SLCDC1_DAT6	(GPIO_PORTA | GPIO_CIN | GPIO_OUT | 20) +#define PA21_CIN_SLCDC1_DAT7	(GPIO_PORTA | GPIO_CIN | GPIO_OUT | 21) +#define PB30_CIN_UART4_CTS	(GPIO_PORTB | GPIO_CIN | GPIO_OUT | 30) +#define PE5_CIN_TOUT3		(GPIO_PORTE | GPIO_CIN | GPIO_OUT | 5)  /* AOUT GPIO pin functions */ -#define PB29_AOUT_UART4_RXD     (GPIO_PORTB | GPIO_AOUT | GPIO_IN | 29) -#define PB31_AOUT_UART4_RTS     (GPIO_PORTB | GPIO_AOUT | GPIO_IN | 31) +#define PB29_AOUT_UART4_RXD	(GPIO_PORTB | GPIO_AOUT | GPIO_IN | 29) +#define PB31_AOUT_UART4_RTS	(GPIO_PORTB | GPIO_AOUT | GPIO_IN | 31)  #define PC8_AOUT_USBOTG_TXR_INT (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 8) -#define PC15_AOUT_WKGD          (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 15) -#define PF21_AOUT_DTACK         (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 21) - +#define PC15_AOUT_WKGD		(GPIO_PORTC | GPIO_AOUT | GPIO_IN | 15) +#define PF21_AOUT_DTACK		(GPIO_PORTF | GPIO_AOUT | GPIO_IN | 21) -#endif +#endif /* ifndef __MACH_IOMUX_MX2x_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx3.h b/arch/arm/plat-mxc/include/mach/iomux-mx3.h index e1fc6da1cd1..e51465d7b22 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx3.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx3.h @@ -16,12 +16,10 @@   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,   * MA 02110-1301, USA.   */ - -#ifndef __MACH_MX31_IOMUX_H__ -#define __MACH_MX31_IOMUX_H__ +#ifndef __MACH_IOMUX_MX3_H__ +#define __MACH_IOMUX_MX3_H__  #include <linux/types.h> -  /*   * various IOMUX output functions   */ @@ -34,7 +32,7 @@  #define	IOMUX_OCONFIG_ALT4 (5 << 4)	/* used as alternate function 4 */  #define	IOMUX_OCONFIG_ALT5 (6 << 4)	/* used as alternate function 5 */  #define	IOMUX_OCONFIG_ALT6 (7 << 4)	/* used as alternate function 6 */ -#define	IOMUX_ICONFIG_NONE  0	 	/* not configured for input */ +#define	IOMUX_ICONFIG_NONE  0		/* not configured for input */  #define	IOMUX_ICONFIG_GPIO  1		/* used as GPIO */  #define	IOMUX_ICONFIG_FUNC  2		/* used as function */  #define	IOMUX_ICONFIG_ALT1  4		/* used as alternate function 1 */ @@ -167,11 +165,6 @@ int mxc_iomux_mode(unsigned int pin_mode);  	MXC_GPIO_IRQ_START)  /* - * The number of gpio devices among the pads - */ -#define GPIO_PORT_MAX 3 - -/*   * This enumeration is constructed based on the Section   * "sw_pad_ctl & sw_mux_ctl details" of the MX31 IC Spec. Each enumerated   * value is constructed based on the rules described above. @@ -633,40 +626,40 @@ enum iomux_pins {  #define MX31_PIN_TXD2__GPIO1_28		IOMUX_MODE(MX31_PIN_TXD2, IOMUX_CONFIG_GPIO)  #define MX31_PIN_CSI_D4__GPIO3_4	IOMUX_MODE(MX31_PIN_CSI_D4, IOMUX_CONFIG_GPIO)  #define MX31_PIN_CSI_D5__GPIO3_5	IOMUX_MODE(MX31_PIN_CSI_D5, IOMUX_CONFIG_GPIO) -#define MX31_PIN_USBOTG_DATA0__USBOTG_DATA0    IOMUX_MODE(MX31_PIN_USBOTG_DATA0, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_DATA1__USBOTG_DATA1    IOMUX_MODE(MX31_PIN_USBOTG_DATA1, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_DATA2__USBOTG_DATA2    IOMUX_MODE(MX31_PIN_USBOTG_DATA2, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_DATA3__USBOTG_DATA3    IOMUX_MODE(MX31_PIN_USBOTG_DATA3, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_DATA4__USBOTG_DATA4    IOMUX_MODE(MX31_PIN_USBOTG_DATA4, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_DATA5__USBOTG_DATA5    IOMUX_MODE(MX31_PIN_USBOTG_DATA5, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_DATA6__USBOTG_DATA6    IOMUX_MODE(MX31_PIN_USBOTG_DATA6, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_DATA7__USBOTG_DATA7    IOMUX_MODE(MX31_PIN_USBOTG_DATA7, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_CLK__USBOTG_CLK        IOMUX_MODE(MX31_PIN_USBOTG_CLK, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_DIR__USBOTG_DIR        IOMUX_MODE(MX31_PIN_USBOTG_DIR, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_NXT__USBOTG_NXT        IOMUX_MODE(MX31_PIN_USBOTG_NXT, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBOTG_STP__USBOTG_STP        IOMUX_MODE(MX31_PIN_USBOTG_STP, IOMUX_CONFIG_FUNC) -#define MX31_PIN_CSPI1_MOSI__USBH1_RXDM        IOMUX_MODE(MX31_PIN_CSPI1_MOSI, IOMUX_CONFIG_ALT1) -#define MX31_PIN_CSPI1_MISO__USBH1_RXDP        IOMUX_MODE(MX31_PIN_CSPI1_MISO, IOMUX_CONFIG_ALT1) -#define MX31_PIN_CSPI1_SS0__USBH1_TXDM         IOMUX_MODE(MX31_PIN_CSPI1_SS0,  IOMUX_CONFIG_ALT1) -#define MX31_PIN_CSPI1_SS1__USBH1_TXDP         IOMUX_MODE(MX31_PIN_CSPI1_SS1,  IOMUX_CONFIG_ALT1) -#define MX31_PIN_CSPI1_SS2__USBH1_RCV          IOMUX_MODE(MX31_PIN_CSPI1_SS2,  IOMUX_CONFIG_ALT1) -#define MX31_PIN_CSPI1_SCLK__USBH1_OEB         IOMUX_MODE(MX31_PIN_CSPI1_SCLK, IOMUX_CONFIG_ALT1) -#define MX31_PIN_CSPI1_SPI_RDY__USBH1_FS       IOMUX_MODE(MX31_PIN_CSPI1_SPI_RDY, IOMUX_CONFIG_ALT1) +#define MX31_PIN_USBOTG_DATA0__USBOTG_DATA0	IOMUX_MODE(MX31_PIN_USBOTG_DATA0, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_DATA1__USBOTG_DATA1	IOMUX_MODE(MX31_PIN_USBOTG_DATA1, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_DATA2__USBOTG_DATA2	IOMUX_MODE(MX31_PIN_USBOTG_DATA2, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_DATA3__USBOTG_DATA3	IOMUX_MODE(MX31_PIN_USBOTG_DATA3, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_DATA4__USBOTG_DATA4	IOMUX_MODE(MX31_PIN_USBOTG_DATA4, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_DATA5__USBOTG_DATA5	IOMUX_MODE(MX31_PIN_USBOTG_DATA5, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_DATA6__USBOTG_DATA6	IOMUX_MODE(MX31_PIN_USBOTG_DATA6, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_DATA7__USBOTG_DATA7	IOMUX_MODE(MX31_PIN_USBOTG_DATA7, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_CLK__USBOTG_CLK		IOMUX_MODE(MX31_PIN_USBOTG_CLK, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_DIR__USBOTG_DIR		IOMUX_MODE(MX31_PIN_USBOTG_DIR, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_NXT__USBOTG_NXT		IOMUX_MODE(MX31_PIN_USBOTG_NXT, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBOTG_STP__USBOTG_STP		IOMUX_MODE(MX31_PIN_USBOTG_STP, IOMUX_CONFIG_FUNC) +#define MX31_PIN_CSPI1_MOSI__USBH1_RXDM		IOMUX_MODE(MX31_PIN_CSPI1_MOSI, IOMUX_CONFIG_ALT1) +#define MX31_PIN_CSPI1_MISO__USBH1_RXDP		IOMUX_MODE(MX31_PIN_CSPI1_MISO, IOMUX_CONFIG_ALT1) +#define MX31_PIN_CSPI1_SS0__USBH1_TXDM		IOMUX_MODE(MX31_PIN_CSPI1_SS0, IOMUX_CONFIG_ALT1) +#define MX31_PIN_CSPI1_SS1__USBH1_TXDP		IOMUX_MODE(MX31_PIN_CSPI1_SS1, IOMUX_CONFIG_ALT1) +#define MX31_PIN_CSPI1_SS2__USBH1_RCV		IOMUX_MODE(MX31_PIN_CSPI1_SS2, IOMUX_CONFIG_ALT1) +#define MX31_PIN_CSPI1_SCLK__USBH1_OEB		IOMUX_MODE(MX31_PIN_CSPI1_SCLK, IOMUX_CONFIG_ALT1) +#define MX31_PIN_CSPI1_SPI_RDY__USBH1_FS	IOMUX_MODE(MX31_PIN_CSPI1_SPI_RDY, IOMUX_CONFIG_ALT1)  #define MX31_PIN_SFS6__USBH1_SUSPEND	IOMUX_MODE(MX31_PIN_SFS6, IOMUX_CONFIG_FUNC)  #define MX31_PIN_NFRE_B__GPIO1_11	IOMUX_MODE(MX31_PIN_NFRE_B, IOMUX_CONFIG_GPIO)  #define MX31_PIN_NFALE__GPIO1_12	IOMUX_MODE(MX31_PIN_NFALE, IOMUX_CONFIG_GPIO) -#define MX31_PIN_USBH2_DATA0__USBH2_DATA0      IOMUX_MODE(MX31_PIN_USBH2_DATA0, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBH2_DATA1__USBH2_DATA1      IOMUX_MODE(MX31_PIN_USBH2_DATA1, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBH2_DATA0__USBH2_DATA0	IOMUX_MODE(MX31_PIN_USBH2_DATA0, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBH2_DATA1__USBH2_DATA1	IOMUX_MODE(MX31_PIN_USBH2_DATA1, IOMUX_CONFIG_FUNC)  #define MX31_PIN_STXD3__USBH2_DATA2	IOMUX_MODE(MX31_PIN_STXD3, IOMUX_CONFIG_FUNC)  #define MX31_PIN_SRXD3__USBH2_DATA3	IOMUX_MODE(MX31_PIN_SRXD3, IOMUX_CONFIG_FUNC)  #define MX31_PIN_SCK3__USBH2_DATA4	IOMUX_MODE(MX31_PIN_SCK3, IOMUX_CONFIG_FUNC)  #define MX31_PIN_SFS3__USBH2_DATA5	IOMUX_MODE(MX31_PIN_SFS3, IOMUX_CONFIG_FUNC)  #define MX31_PIN_STXD6__USBH2_DATA6	IOMUX_MODE(MX31_PIN_STXD6, IOMUX_CONFIG_FUNC)  #define MX31_PIN_SRXD6__USBH2_DATA7	IOMUX_MODE(MX31_PIN_SRXD6, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBH2_CLK__USBH2_CLK          IOMUX_MODE(MX31_PIN_USBH2_CLK, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBH2_DIR__USBH2_DIR          IOMUX_MODE(MX31_PIN_USBH2_DIR, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBH2_NXT__USBH2_NXT          IOMUX_MODE(MX31_PIN_USBH2_NXT, IOMUX_CONFIG_FUNC) -#define MX31_PIN_USBH2_STP__USBH2_STP          IOMUX_MODE(MX31_PIN_USBH2_STP, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBH2_CLK__USBH2_CLK		IOMUX_MODE(MX31_PIN_USBH2_CLK, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBH2_DIR__USBH2_DIR		IOMUX_MODE(MX31_PIN_USBH2_DIR, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBH2_NXT__USBH2_NXT		IOMUX_MODE(MX31_PIN_USBH2_NXT, IOMUX_CONFIG_FUNC) +#define MX31_PIN_USBH2_STP__USBH2_STP		IOMUX_MODE(MX31_PIN_USBH2_STP, IOMUX_CONFIG_FUNC)  #define MX31_PIN_SCK6__GPIO1_25		IOMUX_MODE(MX31_PIN_SCK6, IOMUX_CONFIG_GPIO)  #define MX31_PIN_USB_OC__GPIO1_30	IOMUX_MODE(MX31_PIN_USB_OC, IOMUX_CONFIG_GPIO)  #define MX31_PIN_I2C_DAT__I2C1_SDA	IOMUX_MODE(MX31_PIN_I2C_DAT, IOMUX_CONFIG_FUNC) @@ -711,8 +704,8 @@ enum iomux_pins {  #define MX31_PIN_DSR_DCE1__GPIO2_9	IOMUX_MODE(MX31_PIN_DSR_DCE1, IOMUX_CONFIG_GPIO)  #define MX31_PIN_RI_DCE1__GPIO2_10	IOMUX_MODE(MX31_PIN_RI_DCE1, IOMUX_CONFIG_GPIO)  #define MX31_PIN_DCD_DCE1__GPIO2_11	IOMUX_MODE(MX31_PIN_DCD_DCE1, IOMUX_CONFIG_GPIO) -#define MX31_PIN_STXD5__GPIO1_21       IOMUX_MODE(MX31_PIN_STXD5, IOMUX_CONFIG_GPIO) -#define MX31_PIN_SRXD5__GPIO1_22       IOMUX_MODE(MX31_PIN_SRXD5, IOMUX_CONFIG_GPIO) +#define MX31_PIN_STXD5__GPIO1_21	IOMUX_MODE(MX31_PIN_STXD5, IOMUX_CONFIG_GPIO) +#define MX31_PIN_SRXD5__GPIO1_22	IOMUX_MODE(MX31_PIN_SRXD5, IOMUX_CONFIG_GPIO)  #define MX31_PIN_GPIO1_3__GPIO1_3	IOMUX_MODE(MX31_PIN_GPIO1_3, IOMUX_CONFIG_GPIO)  #define MX31_PIN_CSPI2_SS1__CSPI3_SS1	IOMUX_MODE(MX31_PIN_CSPI2_SS1, IOMUX_CONFIG_ALT1)  #define MX31_PIN_RTS1__GPIO2_6		IOMUX_MODE(MX31_PIN_RTS1, IOMUX_CONFIG_GPIO) @@ -727,13 +720,14 @@ enum iomux_pins {  #define MX31_PIN_SCK5__SCK5		IOMUX_MODE(MX31_PIN_SCK5, IOMUX_CONFIG_FUNC)  #define MX31_PIN_SFS5__SFS5		IOMUX_MODE(MX31_PIN_SFS5, IOMUX_CONFIG_FUNC) -/*XXX: The SS0, SS1, SS2, SS3 lines of spi3 are multiplexed by cspi2_ss0, cspi2_ss1, cspi1_ss0 - * cspi1_ss1*/ +/* + * XXX: The SS0, SS1, SS2, SS3 lines of spi3 are multiplexed with cspi2_ss0, + * cspi2_ss1, cspi1_ss0 cspi1_ss1 + */  /*   * This function configures the pad value for a IOMUX pin.   */  void mxc_iomux_set_pad(enum iomux_pins, u32); -#endif - +#endif /* ifndef __MACH_IOMUX_MX3_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx35.h b/arch/arm/plat-mxc/include/mach/iomux-mx35.h index c88d40795f7..2a24bae1b87 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx35.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx35.h @@ -1,5 +1,5 @@  /* - * Copyright (C, NO_PAD_CTRL) 2009 by Jan Weitzel Phytec Messtechnik GmbH <armlinux@phytec.de> + * Copyright (C) 2009 by Jan Weitzel Phytec Messtechnik GmbH <armlinux@phytec.de>   *   * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx51.h b/arch/arm/plat-mxc/include/mach/iomux-mx51.h new file mode 100644 index 00000000000..b4f975e6a66 --- /dev/null +++ b/arch/arm/plat-mxc/include/mach/iomux-mx51.h @@ -0,0 +1,326 @@ +/* + * Copyright (C) 2009-2010 Amit Kucheria <amit.kucheria@canonical.com> + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +#ifndef __MACH_IOMUX_MX51_H__ +#define __MACH_IOMUX_MX51_H__ + +#include <mach/iomux-v3.h> + +/* + * various IOMUX alternate output functions (1-7) + */ +typedef enum iomux_config { +	IOMUX_CONFIG_ALT0, +	IOMUX_CONFIG_ALT1, +	IOMUX_CONFIG_ALT2, +	IOMUX_CONFIG_ALT3, +	IOMUX_CONFIG_ALT4, +	IOMUX_CONFIG_ALT5, +	IOMUX_CONFIG_ALT6, +	IOMUX_CONFIG_ALT7, +	IOMUX_CONFIG_GPIO,	/* added to help user use GPIO mode */ +	IOMUX_CONFIG_SION = 0x1 << 4,	/* LOOPBACK:MUX SION bit */ +} iomux_pin_cfg_t; + +/* Pad control groupings */ +#define MX51_UART1_PAD_CTRL	(PAD_CTL_HYS | PAD_CTL_PKE | PAD_CTL_PUE | \ +				PAD_CTL_DSE_HIGH) +#define MX51_UART2_PAD_CTRL	(PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_DSE_HIGH | \ +				PAD_CTL_SRE_FAST) +#define MX51_UART3_PAD_CTRL	(PAD_CTL_PKE | PAD_CTL_DSE_HIGH | \ +				PAD_CTL_SRE_FAST) + +/* + * The naming convention for the pad modes is MX51_PAD_<padname>__<padmode> + * If <padname> or <padmode> refers to a GPIO, it is named + * GPIO_<unit>_<num> see also iomux-v3.h + */ + +/* + * FIXME: This was converted using scripts from existing Freescale code to + * this form used upstream. Need to verify the name format. + */ + +/*						PAD      MUX   ALT INPSE PATH PADCTRL */ + +#define MX51_PAD_GPIO_2_0__EIM_D16	IOMUX_PAD(0x3f0, 0x05c, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_1__EIM_D17	IOMUX_PAD(0x3f4, 0x060, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_2__EIM_D18	IOMUX_PAD(0x3f8, 0x064, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_3__EIM_D19	IOMUX_PAD(0x3fc, 0x068, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_4__EIM_D20	IOMUX_PAD(0x400, 0x06c, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_5__EIM_D21	IOMUX_PAD(0x404, 0x070, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_6__EIM_D22	IOMUX_PAD(0x408, 0x074, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_7__EIM_D23	IOMUX_PAD(0x40c, 0x078, 1, 0x0,   0, NO_PAD_CTRL) + +/* Babbage UART3 */ +#define MX51_PAD_EIM_D24__UART3_CTS	IOMUX_PAD(0x410, 0x07c, IOMUX_CONFIG_ALT3, 0x0, 0, MX51_UART3_PAD_CTRL) +#define MX51_PAD_EIM_D25__UART3_RXD	IOMUX_PAD(0x414, 0x080, IOMUX_CONFIG_ALT3, 0x9f4, 0, MX51_UART3_PAD_CTRL) +#define MX51_PAD_EIM_D26__UART3_TXD	IOMUX_PAD(0x418, 0x084, IOMUX_CONFIG_ALT3, 0x0, 0, MX51_UART3_PAD_CTRL) +#define MX51_PAD_EIM_D27__UART3_RTS	IOMUX_PAD(0x41c, 0x088, IOMUX_CONFIG_ALT3, 0x9f0, 0, MX51_UART3_PAD_CTRL) + +#define MX51_PAD_EIM_D28__EIM_D28	IOMUX_PAD(0x420, 0x08c, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_D29__EIM_D29	IOMUX_PAD(0x424, 0x090, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_D30__EIM_D30	IOMUX_PAD(0x428, 0x094, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_D31__EIM_D31	IOMUX_PAD(0x42c, 0x09c, 0, 0x0,   0, NO_PAD_CTRL) + +#define MX51_PAD_GPIO_2_10__EIM_A16	IOMUX_PAD(0x430, 0x09c, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_11__EIM_A17	IOMUX_PAD(0x434, 0x0a0, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_12__EIM_A18	IOMUX_PAD(0x438, 0x0a4, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_13__EIM_A19	IOMUX_PAD(0x43c, 0x0a8, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_14__EIM_A20	IOMUX_PAD(0x440, 0x0ac, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_15__EIM_A21	IOMUX_PAD(0x444, 0x0b0, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_16__EIM_A22	IOMUX_PAD(0x448, 0x0b4, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_17__EIM_A23	IOMUX_PAD(0x44c, 0x0b8, 1, 0x0,   0, NO_PAD_CTRL) + +#define MX51_PAD_GPIO_2_18__EIM_A24	IOMUX_PAD(0x450, 0x0bc, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_19__EIM_A25	IOMUX_PAD(0x454, 0x0c0, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_20__EIM_A26	IOMUX_PAD(0x458, 0x0c4, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_21__EIM_A27	IOMUX_PAD(0x45c, 0x0c8, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_EB0__EIM_EB0	IOMUX_PAD(0x460, 0x0cc, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_EB1__EIM_EB1	IOMUX_PAD(0x464, 0x0d0, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_22__EIM_EB2	IOMUX_PAD(0x468, 0x0d4, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_23__EIM_EB3	IOMUX_PAD(0x46c, 0x0d8, 1, 0x0,   0, NO_PAD_CTRL) + +#define MX51_PAD_GPIO_2_24__EIM_OE	IOMUX_PAD(0x470, 0x0dc, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_25__EIM_CS0	IOMUX_PAD(0x474, 0x0e0, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_26__EIM_CS1	IOMUX_PAD(0x478, 0x0e4, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_27__EIM_CS2	IOMUX_PAD(0x47c, 0x0e8, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_28__EIM_CS3	IOMUX_PAD(0x480, 0x0ec, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_29__EIM_CS4	IOMUX_PAD(0x484, 0x0f0, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_30__EIM_CS5	IOMUX_PAD(0x488, 0x0f4, 1, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_2_31__EIM_DTACK	IOMUX_PAD(0x48c, 0x0f8, 1, 0x0,   0, NO_PAD_CTRL) + +#define MX51_PAD_GPIO_3_1__EIM_LBA	IOMUX_PAD(0x494, 0xFC, 1, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_2__EIM_CRE	IOMUX_PAD(0x4A0, 0x100, 1, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DRAM_CS1__DRAM_CS1	IOMUX_PAD(0x4D0, 0x104, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_3__NANDF_WE_B	IOMUX_PAD(0x4E4, 0x108, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_4__NANDF_RE_B	IOMUX_PAD(0x4E8, 0x10C, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_5__NANDF_ALE	IOMUX_PAD(0x4EC, 0x110, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_6__NANDF_CLE	IOMUX_PAD(0x4F0, 0x114, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_7__NANDF_WP_B	IOMUX_PAD(0x4F4, 0x118, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_8__NANDF_RB0	IOMUX_PAD(0x4F8, 0x11C, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_9__NANDF_RB1	IOMUX_PAD(0x4FC, 0x120, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_10__NANDF_RB2	IOMUX_PAD(0x500, 0x124, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_11__NANDF_RB3	IOMUX_PAD(0x504, 0x128, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_12__GPIO_NAND	IOMUX_PAD(0x514, 0x12C, 3, 0x0, 0, NO_PAD_CTRL) +/* REVISIT: Not sure of these values + +  #define MX51_PAD_GPIO_1___NANDF_RB4	IOMUX_PAD(, , , 0x0, 0, NO_PAD_CTRL) +  #define MX51_PAD_GPIO_3_13__NANDF_RB5	IOMUX_PAD(0x5D8, 0x130, 3, 0x0, 0, NO_PAD_CTRL) +  #define MX51_PAD_GPIO_3_15__NANDF_RB7	IOMUX_PAD(0x5E0, 0x138, 3, 0x0, 0, NO_PAD_CTRL) +*/ +#define MX51_PAD_GPIO_3_14__NANDF_RB6	IOMUX_PAD(0x5DC, 0x134, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_16__NANDF_CS0	IOMUX_PAD(0x518, 0x130, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_17__NANDF_CS1	IOMUX_PAD(0x51C, 0x134, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_18__NANDF_CS2	IOMUX_PAD(0x520, 0x138, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_19__NANDF_CS3	IOMUX_PAD(0x524, 0x13C, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_20__NANDF_CS4	IOMUX_PAD(0x528, 0x140, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_21__NANDF_CS5	IOMUX_PAD(0x52C, 0x144, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_22__NANDF_CS6	IOMUX_PAD(0x530, 0x148, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_23__NANDF_CS7	IOMUX_PAD(0x534, 0x14C, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_24__NANDF_RDY_INT	IOMUX_PAD(0x538, 0x150, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_25__NANDF_D15	IOMUX_PAD(0x53C, 0x154, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_26__NANDF_D14	IOMUX_PAD(0x540, 0x158, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_27__NANDF_D13	IOMUX_PAD(0x544, 0x15C, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_28__NANDF_D12	IOMUX_PAD(0x548, 0x160, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_29__NANDF_D11	IOMUX_PAD(0x54C, 0x164, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_30__NANDF_D10	IOMUX_PAD(0x550, 0x168, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_31__NANDF_D9	IOMUX_PAD(0x554, 0x16C, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_0__NANDF_D8	IOMUX_PAD(0x558, 0x170, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_1__NANDF_D7	IOMUX_PAD(0x55C, 0x174, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_2__NANDF_D6	IOMUX_PAD(0x560, 0x178, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_3__NANDF_D5	IOMUX_PAD(0x564, 0x17C, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_4__NANDF_D4	IOMUX_PAD(0x568, 0x180, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_5__NANDF_D3	IOMUX_PAD(0x56C, 0x184, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_6__NANDF_D2	IOMUX_PAD(0x570, 0x188, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_7__NANDF_D1	IOMUX_PAD(0x574, 0x18C, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_8__NANDF_D0	IOMUX_PAD(0x578, 0x190, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_12__CSI1_D8	IOMUX_PAD(0x57C, 0x194, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_13__CSI1_D9	IOMUX_PAD(0x580, 0x198, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_D10__CSI1_D10	IOMUX_PAD(0x584, 0x19C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_D11__CSI1_D11	IOMUX_PAD(0x588, 0x1A0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_D12__CSI1_D12	IOMUX_PAD(0x58C, 0x1A4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_D13__CSI1_D13	IOMUX_PAD(0x590, 0x1A8, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_D14__CSI1_D14	IOMUX_PAD(0x594, 0x1AC, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_D15__CSI1_D15	IOMUX_PAD(0x598, 0x1B0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_D16__CSI1_D16	IOMUX_PAD(0x59C, 0x1B4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_D17__CSI1_D17	IOMUX_PAD(0x5A0, 0x1B8, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_D18__CSI1_D18	IOMUX_PAD(0x5A4, 0x1BC, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_D19__CSI1_D19	IOMUX_PAD(0x5A8, 0x1C0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_VSYNC__CSI1_VSYNC	IOMUX_PAD(0x5AC, 0x1C4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_HSYNC__CSI1_HSYNC	IOMUX_PAD(0x5B0, 0x1C8, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_PIXCLK__CSI1_PIXCLK	IOMUX_PAD(0x5B4, 0x0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_MCLK__CSI1_MCLK	IOMUX_PAD(0x5B8, 0x0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI1_PKE0__CSI1_PKE0	IOMUX_PAD(0x860, 0x0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_9__CSI2_D12	IOMUX_PAD(0x5BC, 0x1CC, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_10__CSI2_D13	IOMUX_PAD(0x5C0, 0x1D0, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_11__CSI2_D14	IOMUX_PAD(0x5C4, 0x1D4, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_12__CSI2_D15	IOMUX_PAD(0x5C8, 0x1D8, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_11__CSI2_D16	IOMUX_PAD(0x5CC, 0x1DC, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_12__CSI2_D17	IOMUX_PAD(0x5D0, 0x1E0, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_11__CSI2_D18	IOMUX_PAD(0x5D4, 0x1E4, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_12__CSI2_D19	IOMUX_PAD(0x5D8, 0x1E8, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_13__CSI2_VSYNC	IOMUX_PAD(0x5DC, 0x1EC, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_14__CSI2_HSYNC	IOMUX_PAD(0x5E0, 0x1F0, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_15__CSI2_PIXCLK	IOMUX_PAD(0x5E4, 0x1F4, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_CSI2_PKE0__CSI2_PKE0	IOMUX_PAD(0x81C, 0x0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_16__I2C1_CLK	IOMUX_PAD(0x5E8, 0x1F8, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_17__I2C1_DAT	IOMUX_PAD(0x5EC, 0x1FC, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_18__AUD3_BB_TXD	IOMUX_PAD(0x5F0, 0x200, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_19__AUD3_BB_RXD	IOMUX_PAD(0x5F4, 0x204, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_20__AUD3_BB_CK	IOMUX_PAD(0x5F8, 0x208, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_21__AUD3_BB_FS	IOMUX_PAD(0x5FC, 0x20C, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_22__CSPI1_MOSI	IOMUX_PAD(0x600, 0x210, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_23__CSPI1_MISO	IOMUX_PAD(0x604, 0x214, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_24__CSPI1_SS0	IOMUX_PAD(0x608, 0x218, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_25__CSPI1_SS1	IOMUX_PAD(0x60C, 0x21C, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_26__CSPI1_RDY	IOMUX_PAD(0x610, 0x220, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_4_27__CSPI1_SCLK	IOMUX_PAD(0x614, 0x224, 3, 0x0, 0, NO_PAD_CTRL) + +/* Babbage UART1 */ +#define MX51_PAD_UART1_RXD__UART1_RXD	IOMUX_PAD(0x618, 0x228,	IOMUX_CONFIG_ALT0, 0x9e4, 0, MX51_UART1_PAD_CTRL | PAD_CTL_SRE_FAST) +#define MX51_PAD_UART1_TXD__UART1_TXD	IOMUX_PAD(0x61C, 0x22C, IOMUX_CONFIG_ALT0, 0x0, 0, MX51_UART1_PAD_CTRL | PAD_CTL_SRE_FAST) +#define MX51_PAD_UART1_RTS__UART1_RTS	IOMUX_PAD(0x620, 0x230, IOMUX_CONFIG_ALT0, 0x9e0, 0, MX51_UART1_PAD_CTRL) +#define MX51_PAD_UART1_CTS__UART1_CTS	IOMUX_PAD(0x624, 0x234, IOMUX_CONFIG_ALT0, 0x0, 0, MX51_UART1_PAD_CTRL) + +/* Babbage UART2 */ +#define MX51_PAD_UART2_RXD__UART2_RXD	IOMUX_PAD(0x628, 0x238, IOMUX_CONFIG_ALT0, 0x9ec, 2, MX51_UART2_PAD_CTRL) +#define MX51_PAD_UART2_TXD__UART2_TXD	IOMUX_PAD(0x62C, 0x23C, IOMUX_CONFIG_ALT0, 0x0, 0, MX51_UART2_PAD_CTRL) + +#define MX51_PAD_GPIO_1_22__UART3_RXD	IOMUX_PAD(0x630, 0x240, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_23__UART3_TXD	IOMUX_PAD(0x634, 0x244, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_24__OWIRE_LINE	IOMUX_PAD(0x638, 0x248, 3, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_KEY_ROW0__KEY_ROW0	IOMUX_PAD(0x63C, 0x24C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_KEY_ROW1__KEY_ROW1	IOMUX_PAD(0x640, 0x250, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_KEY_ROW2__KEY_ROW2	IOMUX_PAD(0x644, 0x254, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_KEY_ROW3__KEY_ROW3	IOMUX_PAD(0x648, 0x258, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_KEY_COL0__KEY_COL0	IOMUX_PAD(0x64C, 0x25C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_KEY_COL1__KEY_COL1	IOMUX_PAD(0x650, 0x260, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_KEY_COL2__KEY_COL2	IOMUX_PAD(0x654, 0x264, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_KEY_COL3__KEY_COL3	IOMUX_PAD(0x658, 0x268, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_KEY_COL4__KEY_COL4	IOMUX_PAD(0x65C, 0x26C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_KEY_COL5__KEY_COL5	IOMUX_PAD(0x660, 0x270, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_25__USBH1_CLK	IOMUX_PAD(0x678, 0x278, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_26__USBH1_DIR	IOMUX_PAD(0x67C, 0x27C, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_27__USBH1_STP	IOMUX_PAD(0x680, 0x280, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_28__USBH1_NXT	IOMUX_PAD(0x684, 0x284, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_11__USBH1_DATA0	IOMUX_PAD(0x688, 0x288, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_12__USBH1_DATA1	IOMUX_PAD(0x68C, 0x28C, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_13__USBH1_DATA2	IOMUX_PAD(0x690, 0x290, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_14__USBH1_DATA3	IOMUX_PAD(0x694, 0x294, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_15__USBH1_DATA4	IOMUX_PAD(0x698, 0x298, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_16__USBH1_DATA5	IOMUX_PAD(0x69C, 0x29C, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_17__USBH1_DATA6	IOMUX_PAD(0x6A0, 0x2A0, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_18__USBH1_DATA7	IOMUX_PAD(0x6A4, 0x2A4, 2, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_0__DI1_PIN11	IOMUX_PAD(0x6A8, 0x2A8, 4, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_1__DI1_PIN12	IOMUX_PAD(0x6AC, 0x2AC, 4, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_2__DI1_PIN13	IOMUX_PAD(0x6B0, 0x2B0, 4, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_3__DI1_D0_CS	IOMUX_PAD(0x6B4, 0x2B4, 4, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_4__DI1_D1_CS	IOMUX_PAD(0x6B8, 0x2B8, 4, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_5__DISPB2_SER_DIN	IOMUX_PAD(0x6BC, 0x2BC, 4, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_6__DISPB2_SER_DIO	IOMUX_PAD(0x6C0, 0x2C0, 4, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_7__DISPB2_SER_CLK	IOMUX_PAD(0x6C4, 0x2C4, 4, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_3_8__DISPB2_SER_RS	IOMUX_PAD(0x6C8, 0x2C8, 4, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT0__DISP1_DAT0	IOMUX_PAD(0x6CC, 0x2CC, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT1__DISP1_DAT1	IOMUX_PAD(0x6D0, 0x2D0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT2__DISP1_DAT2	IOMUX_PAD(0x6D4, 0x2D4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT3__DISP1_DAT3	IOMUX_PAD(0x6D8, 0x2D8, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT4__DISP1_DAT4	IOMUX_PAD(0x6DC, 0x2DC, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT5__DISP1_DAT5	IOMUX_PAD(0x6E0, 0x2E0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT6__DISP1_DAT6	IOMUX_PAD(0x6E4, 0x2E4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT7__DISP1_DAT7	IOMUX_PAD(0x6E8, 0x2E8, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT8__DISP1_DAT8	IOMUX_PAD(0x6EC, 0x2EC, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT9__DISP1_DAT9	IOMUX_PAD(0x6F0, 0x2F0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT10__DISP1_DAT10	IOMUX_PAD(0x6F4, 0x2F4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT11__DISP1_DAT11	IOMUX_PAD(0x6F8, 0x2F8, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT12__DISP1_DAT12	IOMUX_PAD(0x6FC, 0x2FC, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT13__DISP1_DAT13	IOMUX_PAD(0x700, 0x300, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT14__DISP1_DAT14	IOMUX_PAD(0x704, 0x304, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT15__DISP1_DAT15	IOMUX_PAD(0x708, 0x308, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT16__DISP1_DAT16	IOMUX_PAD(0x70C, 0x30C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT17__DISP1_DAT17	IOMUX_PAD(0x710, 0x310, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT18__DISP1_DAT18	IOMUX_PAD(0x714, 0x314, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT19__DISP1_DAT19	IOMUX_PAD(0x718, 0x318, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT20__DISP1_DAT20	IOMUX_PAD(0x71C, 0x31C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT21__DISP1_DAT21	IOMUX_PAD(0x720, 0x320, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT22__DISP1_DAT22	IOMUX_PAD(0x724, 0x324, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP1_DAT23__DISP1_DAT23	IOMUX_PAD(0x728, 0x328, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DI1_PIN3__DI1_PIN3	IOMUX_PAD(0x72C, 0x32C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DI1_PIN2__DI1_PIN2	IOMUX_PAD(0x734, 0x330, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DI_GP1__DI_GP1	IOMUX_PAD(0x73C, 0x334, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DI_GP2__DI_GP2	IOMUX_PAD(0x740, 0x338, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DI_GP3__DI_GP3	IOMUX_PAD(0x744, 0x33C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DI2_PIN4__DI2_PIN4	IOMUX_PAD(0x748, 0x340, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DI2_PIN2__DI2_PIN2	IOMUX_PAD(0x74C, 0x344, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DI2_PIN3__DI2_PIN3	IOMUX_PAD(0x750, 0x348, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK	IOMUX_PAD(0x754, 0x34C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DI_GP4__DI_GP4	IOMUX_PAD(0x758, 0x350, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT0__DISP2_DAT0	IOMUX_PAD(0x75C, 0x354, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT1__DISP2_DAT1	IOMUX_PAD(0x760, 0x358, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT2__DISP2_DAT2	IOMUX_PAD(0x764, 0x35C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT3__DISP2_DAT3	IOMUX_PAD(0x768, 0x360, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT4__DISP2_DAT4	IOMUX_PAD(0x76C, 0x364, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT5__DISP2_DAT5	IOMUX_PAD(0x770, 0x368, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_19__DISP2_DAT6	IOMUX_PAD(0x774, 0x36C, 5, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_29__DISP2_DAT7	IOMUX_PAD(0x778, 0x370, 5, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_30__DISP2_DAT8	IOMUX_PAD(0x77C, 0x374, 5, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_31__DISP2_DAT9	IOMUX_PAD(0x780, 0x378, 5, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT10__DISP2_DAT10	IOMUX_PAD(0x784, 0x37C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT11__DISP2_DAT11	IOMUX_PAD(0x788, 0x380, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT12__DISP2_DAT12	IOMUX_PAD(0x78C, 0x384, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT13__DISP2_DAT13	IOMUX_PAD(0x790, 0x388, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT14__DISP2_DAT14	IOMUX_PAD(0x794, 0x38C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_DISP2_DAT15__DISP2_DAT15	IOMUX_PAD(0x798, 0x390, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD1_CMD__SD1_CMD	IOMUX_PAD(0x79C, 0x394, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD1_CLK__SD1_CLK	IOMUX_PAD(0x7A0, 0x398, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD1_DATA0__SD1_DATA0	IOMUX_PAD(0x7A4, 0x39C, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD1_DATA1__SD1_DATA1	IOMUX_PAD(0x7A8, 0x3A0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD1_DATA2__SD1_DATA2	IOMUX_PAD(0x7AC, 0x3A4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD1_DATA3__SD1_DATA3	IOMUX_PAD(0x7B0, 0x3A8, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_0__GPIO1_0	IOMUX_PAD(0x7B4, 0x3AC, 1, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_1__GPIO1_1	IOMUX_PAD(0x7B8, 0x3B0, 1, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD2_CMD__SD2_CMD	IOMUX_PAD(0x7BC, 0x3B4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD2_CLK__SD2_CLK	IOMUX_PAD(0x7C0, 0x3B8, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD2_DATA0__SD2_DATA0	IOMUX_PAD(0x7C4, 0x3BC, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD2_DATA1__SD2_DATA1	IOMUX_PAD(0x7C8, 0x3C0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD2_DATA2__SD2_DATA2	IOMUX_PAD(0x7CC, 0x3C4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_SD2_DATA3__SD2_DATA3	IOMUX_PAD(0x7D0, 0x3C8, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_2__GPIO1_2	IOMUX_PAD(0x7D4, 0x3CC, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_3__GPIO1_3	IOMUX_PAD(0x7D8, 0x3D0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ	IOMUX_PAD(0x7FC, 0x3D4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_4__GPIO1_4	IOMUX_PAD(0x804, 0x3D8, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_5__GPIO1_5	IOMUX_PAD(0x808, 0x3DC, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_6__GPIO1_6	IOMUX_PAD(0x80C, 0x3E0, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_7__GPIO1_7	IOMUX_PAD(0x810, 0x3E4, 0, 0x0, 0, NO_PAD_CTRL) +#define MX51_PAD_GPIO_1_8__GPIO1_8	IOMUX_PAD(0x814, 0x3E8, 0, 0x0, 1, \ +						(PAD_CTL_SRE_SLOW | PAD_CTL_DSE_MED | PAD_CTL_PUS_100K_UP |  PAD_CTL_HYS)) +#define MX51_PAD_GPIO_1_9__GPIO1_9	IOMUX_PAD(0x818, 0x3EC, 0, 0x0, 0, NO_PAD_CTRL) + +/* EIM */ +#define MX51_PAD_EIM_DA0__EIM_DA0	IOMUX_PAD(0x7a8, 0x01c, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA1__EIM_DA1	IOMUX_PAD(0x7a8, 0x020, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA2__EIM_DA2	IOMUX_PAD(0x7a8, 0x024, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA3__EIM_DA3	IOMUX_PAD(0x7a8, 0x028, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA4__EIM_DA4	IOMUX_PAD(0x7ac, 0x02c, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA5__EIM_DA5	IOMUX_PAD(0x7ac, 0x030, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA6__EIM_DA6	IOMUX_PAD(0x7ac, 0x034, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA7__EIM_DA7	IOMUX_PAD(0x7ac, 0x038, 0, 0x0,   0, NO_PAD_CTRL) + +#define MX51_PAD_EIM_DA8__EIM_DA8	IOMUX_PAD(0x7b0, 0x03c, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA9__EIM_DA9	IOMUX_PAD(0x7b0, 0x040, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA10__EIM_DA10	IOMUX_PAD(0x7b0, 0x044, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA11__EIM_DA11	IOMUX_PAD(0x7b0, 0x048, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA12__EIM_DA12	IOMUX_PAD(0x7bc, 0x04c, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA13__EIM_DA13	IOMUX_PAD(0x7bc, 0x050, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA14__EIM_DA14	IOMUX_PAD(0x7bc, 0x054, 0, 0x0,   0, NO_PAD_CTRL) +#define MX51_PAD_EIM_DA15__EIM_DA15	IOMUX_PAD(0x7bc, 0x058, 0, 0x0,   0, NO_PAD_CTRL) + +#endif /* __MACH_IOMUX_MX51_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/iomux-v1.h b/arch/arm/plat-mxc/include/mach/iomux-v1.h new file mode 100644 index 00000000000..884f5753f27 --- /dev/null +++ b/arch/arm/plat-mxc/include/mach/iomux-v1.h @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> + * Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ +#ifndef __MACH_IOMUX_V1_H__ +#define __MACH_IOMUX_V1_H__ + +/* +*  GPIO Module and I/O Multiplexer +*  x = 0..3 for reg_A, reg_B, reg_C, reg_D +*/ +#define MXC_DDIR(x)	(0x00 + ((x) << 8)) +#define MXC_OCR1(x)	(0x04 + ((x) << 8)) +#define MXC_OCR2(x)	(0x08 + ((x) << 8)) +#define MXC_ICONFA1(x)	(0x0c + ((x) << 8)) +#define MXC_ICONFA2(x)	(0x10 + ((x) << 8)) +#define MXC_ICONFB1(x)	(0x14 + ((x) << 8)) +#define MXC_ICONFB2(x)	(0x18 + ((x) << 8)) +#define MXC_DR(x)	(0x1c + ((x) << 8)) +#define MXC_GIUS(x)	(0x20 + ((x) << 8)) +#define MXC_SSR(x)	(0x24 + ((x) << 8)) +#define MXC_ICR1(x)	(0x28 + ((x) << 8)) +#define MXC_ICR2(x)	(0x2c + ((x) << 8)) +#define MXC_IMR(x)	(0x30 + ((x) << 8)) +#define MXC_ISR(x)	(0x34 + ((x) << 8)) +#define MXC_GPR(x)	(0x38 + ((x) << 8)) +#define MXC_SWR(x)	(0x3c + ((x) << 8)) +#define MXC_PUEN(x)	(0x40 + ((x) << 8)) + +#define MX1_NUM_GPIO_PORT	4 +#define MX21_NUM_GPIO_PORT	6 +#define MX27_NUM_GPIO_PORT	6 + +#define GPIO_PIN_MASK 0x1f + +#define GPIO_PORT_SHIFT 5 +#define GPIO_PORT_MASK (0x7 << GPIO_PORT_SHIFT) + +#define GPIO_PORTA	(0 << GPIO_PORT_SHIFT) +#define GPIO_PORTB	(1 << GPIO_PORT_SHIFT) +#define GPIO_PORTC	(2 << GPIO_PORT_SHIFT) +#define GPIO_PORTD	(3 << GPIO_PORT_SHIFT) +#define GPIO_PORTE	(4 << GPIO_PORT_SHIFT) +#define GPIO_PORTF	(5 << GPIO_PORT_SHIFT) + +#define GPIO_OUT	(1 << 8) +#define GPIO_IN		(0 << 8) +#define GPIO_PUEN	(1 << 9) + +#define GPIO_PF		(1 << 10) +#define GPIO_AF		(1 << 11) + +#define GPIO_OCR_SHIFT 12 +#define GPIO_OCR_MASK	(3 << GPIO_OCR_SHIFT) +#define GPIO_AIN	(0 << GPIO_OCR_SHIFT) +#define GPIO_BIN	(1 << GPIO_OCR_SHIFT) +#define GPIO_CIN	(2 << GPIO_OCR_SHIFT) +#define GPIO_GPIO	(3 << GPIO_OCR_SHIFT) + +#define GPIO_AOUT_SHIFT	14 +#define GPIO_AOUT_MASK	(3 << GPIO_AOUT_SHIFT) +#define GPIO_AOUT	(0 << GPIO_AOUT_SHIFT) +#define GPIO_AOUT_ISR	(1 << GPIO_AOUT_SHIFT) +#define GPIO_AOUT_0	(2 << GPIO_AOUT_SHIFT) +#define GPIO_AOUT_1	(3 << GPIO_AOUT_SHIFT) + +#define GPIO_BOUT_SHIFT	16 +#define GPIO_BOUT_MASK	(3 << GPIO_BOUT_SHIFT) +#define GPIO_BOUT	(0 << GPIO_BOUT_SHIFT) +#define GPIO_BOUT_ISR	(1 << GPIO_BOUT_SHIFT) +#define GPIO_BOUT_0	(2 << GPIO_BOUT_SHIFT) +#define GPIO_BOUT_1	(3 << GPIO_BOUT_SHIFT) + +/* decode irq number to use with IMR(x), ISR(x) and friends */ +#define IRQ_TO_REG(irq) ((irq - MXC_INTERNAL_IRQS) >> 5) + +#define IRQ_GPIOA(x)  (MXC_GPIO_IRQ_START + x) +#define IRQ_GPIOB(x)  (IRQ_GPIOA(32) + x) +#define IRQ_GPIOC(x)  (IRQ_GPIOB(32) + x) +#define IRQ_GPIOD(x)  (IRQ_GPIOC(32) + x) +#define IRQ_GPIOE(x)  (IRQ_GPIOD(32) + x) +#define IRQ_GPIOF(x)  (IRQ_GPIOE(32) + x) + +extern int mxc_gpio_mode(int gpio_mode); +extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count, +		const char *label); +extern void mxc_gpio_release_multiple_pins(const int *pin_list, int count); + +#endif /* __MACH_IOMUX_V1_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/iomux-v3.h b/arch/arm/plat-mxc/include/mach/iomux-v3.h index 1deda018489..f2f73d31d5b 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-v3.h +++ b/arch/arm/plat-mxc/include/mach/iomux-v3.h @@ -81,11 +81,13 @@ struct pad_desc {  #define PAD_CTL_ODE			(1 << 3) -#define PAD_CTL_DSE_STANDARD		(0 << 1) -#define PAD_CTL_DSE_HIGH		(1 << 1) -#define PAD_CTL_DSE_MAX			(2 << 1) +#define PAD_CTL_DSE_LOW			(0 << 1) +#define PAD_CTL_DSE_MED			(1 << 1) +#define PAD_CTL_DSE_HIGH		(2 << 1) +#define PAD_CTL_DSE_MAX			(3 << 1)  #define PAD_CTL_SRE_FAST		(1 << 0) +#define PAD_CTL_SRE_SLOW		(0 << 0)  /*   * setups a single pad in the iomuxer diff --git a/arch/arm/plat-mxc/include/mach/iomux.h b/arch/arm/plat-mxc/include/mach/iomux.h index 011cfcd8b82..3d226d7e7be 100644 --- a/arch/arm/plat-mxc/include/mach/iomux.h +++ b/arch/arm/plat-mxc/include/mach/iomux.h @@ -1,102 +1,14 @@  /* -* Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> -* Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -* MA 02110-1301, USA. -*/ - -#ifndef _MXC_IOMUX_H -#define _MXC_IOMUX_H - -/* -*  GPIO Module and I/O Multiplexer -*  x = 0..3 for reg_A, reg_B, reg_C, reg_D -*/ -#define VA_GPIO_BASE	IO_ADDRESS(GPIO_BASE_ADDR) -#define MXC_DDIR(x)    (0x00 + ((x) << 8)) -#define MXC_OCR1(x)    (0x04 + ((x) << 8)) -#define MXC_OCR2(x)    (0x08 + ((x) << 8)) -#define MXC_ICONFA1(x) (0x0c + ((x) << 8)) -#define MXC_ICONFA2(x) (0x10 + ((x) << 8)) -#define MXC_ICONFB1(x) (0x14 + ((x) << 8)) -#define MXC_ICONFB2(x) (0x18 + ((x) << 8)) -#define MXC_DR(x)      (0x1c + ((x) << 8)) -#define MXC_GIUS(x)    (0x20 + ((x) << 8)) -#define MXC_SSR(x)     (0x24 + ((x) << 8)) -#define MXC_ICR1(x)    (0x28 + ((x) << 8)) -#define MXC_ICR2(x)    (0x2c + ((x) << 8)) -#define MXC_IMR(x)     (0x30 + ((x) << 8)) -#define MXC_ISR(x)     (0x34 + ((x) << 8)) -#define MXC_GPR(x)     (0x38 + ((x) << 8)) -#define MXC_SWR(x)     (0x3c + ((x) << 8)) -#define MXC_PUEN(x)    (0x40 + ((x) << 8)) - -#ifdef CONFIG_ARCH_MX1 -# define GPIO_PORT_MAX  3 -#endif -#ifdef CONFIG_ARCH_MX2 -# define GPIO_PORT_MAX  5 -#endif -#ifdef CONFIG_ARCH_MX25 -# define GPIO_PORT_MAX  3 -#endif - -#ifndef GPIO_PORT_MAX -# error "GPIO config port count unknown!" -#endif - -#define GPIO_PIN_MASK 0x1f - -#define GPIO_PORT_SHIFT 5 -#define GPIO_PORT_MASK (0x7 << GPIO_PORT_SHIFT) - -#define GPIO_PORTA (0 << GPIO_PORT_SHIFT) -#define GPIO_PORTB (1 << GPIO_PORT_SHIFT) -#define GPIO_PORTC (2 << GPIO_PORT_SHIFT) -#define GPIO_PORTD (3 << GPIO_PORT_SHIFT) -#define GPIO_PORTE (4 << GPIO_PORT_SHIFT) -#define GPIO_PORTF (5 << GPIO_PORT_SHIFT) - -#define GPIO_OUT   (1 << 8) -#define GPIO_IN    (0 << 8) -#define GPIO_PUEN  (1 << 9) - -#define GPIO_PF    (1 << 10) -#define GPIO_AF    (1 << 11) - -#define GPIO_OCR_SHIFT 12 -#define GPIO_OCR_MASK (3 << GPIO_OCR_SHIFT) -#define GPIO_AIN   (0 << GPIO_OCR_SHIFT) -#define GPIO_BIN   (1 << GPIO_OCR_SHIFT) -#define GPIO_CIN   (2 << GPIO_OCR_SHIFT) -#define GPIO_GPIO  (3 << GPIO_OCR_SHIFT) - -#define GPIO_AOUT_SHIFT 14 -#define GPIO_AOUT_MASK (3 << GPIO_AOUT_SHIFT) -#define GPIO_AOUT     (0 << GPIO_AOUT_SHIFT) -#define GPIO_AOUT_ISR (1 << GPIO_AOUT_SHIFT) -#define GPIO_AOUT_0   (2 << GPIO_AOUT_SHIFT) -#define GPIO_AOUT_1   (3 << GPIO_AOUT_SHIFT) - -#define GPIO_BOUT_SHIFT 16 -#define GPIO_BOUT_MASK (3 << GPIO_BOUT_SHIFT) -#define GPIO_BOUT      (0 << GPIO_BOUT_SHIFT) -#define GPIO_BOUT_ISR  (1 << GPIO_BOUT_SHIFT) -#define GPIO_BOUT_0    (2 << GPIO_BOUT_SHIFT) -#define GPIO_BOUT_1    (3 << GPIO_BOUT_SHIFT) + * Copyright (C) 2010 Uwe Kleine-Koenig, Pengutronix + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ +#ifndef __MACH_IOMUX_H__ +#define __MACH_IOMUX_H__ +/* This file will go away, please include mach/iomux-mx... directly */  #ifdef CONFIG_ARCH_MX1  #include <mach/iomux-mx1.h> @@ -110,25 +22,5 @@  #include <mach/iomux-mx27.h>  #endif  #endif -#ifdef CONFIG_ARCH_MX25 -#include <mach/iomux-mx25.h> -#endif - -/* decode irq number to use with IMR(x), ISR(x) and friends */ -#define IRQ_TO_REG(irq) ((irq - MXC_INTERNAL_IRQS) >> 5) - -#define IRQ_GPIOA(x)  (MXC_GPIO_IRQ_START + x) -#define IRQ_GPIOB(x)  (IRQ_GPIOA(32) + x) -#define IRQ_GPIOC(x)  (IRQ_GPIOB(32) + x) -#define IRQ_GPIOD(x)  (IRQ_GPIOC(32) + x) -#define IRQ_GPIOE(x)  (IRQ_GPIOD(32) + x) -#define IRQ_GPIOF(x)  (IRQ_GPIOE(32) + x) - - -extern void mxc_gpio_mode(int gpio_mode); -extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count, -	const char *label); -extern void mxc_gpio_release_multiple_pins(const int *pin_list, int count); - -#endif +#endif /* __MACH_IOMUX_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h index 0cb347645db..86781f7b0c0 100644 --- a/arch/arm/plat-mxc/include/mach/irqs.h +++ b/arch/arm/plat-mxc/include/mach/irqs.h @@ -12,22 +12,29 @@  #define __ASM_ARCH_MXC_IRQS_H__  /* - * So far all i.MX SoCs have 64 internal interrupts + * SoCs with TZIC interrupt controller have 128 IRQs, those with AVIC have 64   */ +#ifdef CONFIG_MXC_TZIC +#define MXC_INTERNAL_IRQS	128 +#else  #define MXC_INTERNAL_IRQS	64 +#endif  #define MXC_GPIO_IRQ_START	MXC_INTERNAL_IRQS -#if defined CONFIG_ARCH_MX1 -#define MXC_GPIO_IRQS		(32 * 4) -#elif defined CONFIG_ARCH_MX2 +/* these are ordered by size to support multi-SoC kernels */ +#if defined CONFIG_ARCH_MX2  #define MXC_GPIO_IRQS		(32 * 6) -#elif defined CONFIG_ARCH_MX3 -#define MXC_GPIO_IRQS		(32 * 3) +#elif defined CONFIG_ARCH_MX1 +#define MXC_GPIO_IRQS		(32 * 4)  #elif defined CONFIG_ARCH_MX25  #define MXC_GPIO_IRQS		(32 * 4) +#elif defined CONFIG_ARCH_MX5 +#define MXC_GPIO_IRQS		(32 * 4)  #elif defined CONFIG_ARCH_MXC91231  #define MXC_GPIO_IRQS		(32 * 4) +#elif defined CONFIG_ARCH_MX3 +#define MXC_GPIO_IRQS		(32 * 3)  #endif  /* @@ -51,6 +58,7 @@  #else  #define MX3_IPU_IRQS 0  #endif +/* REVISIT: Add IPU irqs on IMX51 */  #define NR_IRQS			(MXC_IPU_IRQ_START + MX3_IPU_IRQS) diff --git a/arch/arm/plat-mxc/include/mach/memory.h b/arch/arm/plat-mxc/include/mach/memory.h index d3afafdcc0e..c4b40c35a6a 100644 --- a/arch/arm/plat-mxc/include/mach/memory.h +++ b/arch/arm/plat-mxc/include/mach/memory.h @@ -11,37 +11,45 @@  #ifndef __ASM_ARCH_MXC_MEMORY_H__  #define __ASM_ARCH_MXC_MEMORY_H__ -#if defined CONFIG_ARCH_MX1 -#define PHYS_OFFSET		UL(0x08000000) -#elif defined CONFIG_ARCH_MX2 -#ifdef CONFIG_MACH_MX21 -#define PHYS_OFFSET		UL(0xC0000000) -#endif -#ifdef CONFIG_MACH_MX27 -#define PHYS_OFFSET		UL(0xA0000000) -#endif -#elif defined CONFIG_ARCH_MX3 -#define PHYS_OFFSET		UL(0x80000000) -#elif defined CONFIG_ARCH_MX25 -#define PHYS_OFFSET		UL(0x80000000) -#elif defined CONFIG_ARCH_MXC91231 -#define PHYS_OFFSET		UL(0x90000000) +#define MX1_PHYS_OFFSET		UL(0x08000000) +#define MX21_PHYS_OFFSET	UL(0xc0000000) +#define MX25_PHYS_OFFSET	UL(0x80000000) +#define MX27_PHYS_OFFSET	UL(0xa0000000) +#define MX3x_PHYS_OFFSET	UL(0x80000000) +#define MX51_PHYS_OFFSET	UL(0x90000000) +#define MXC91231_PHYS_OFFSET	UL(0x90000000) + +#if !defined(CONFIG_RUNTIME_PHYS_OFFSET) +# if defined CONFIG_ARCH_MX1 +#  define PHYS_OFFSET		MX1_PHYS_OFFSET +# elif defined CONFIG_MACH_MX21 +#  define PHYS_OFFSET		MX21_PHYS_OFFSET +# elif defined CONFIG_ARCH_MX25 +#  define PHYS_OFFSET		MX25_PHYS_OFFSET +# elif defined CONFIG_MACH_MX27 +#  define PHYS_OFFSET		MX27_PHYS_OFFSET +# elif defined CONFIG_ARCH_MX3 +#  define PHYS_OFFSET		MX3x_PHYS_OFFSET +# elif defined CONFIG_ARCH_MXC91231 +#  define PHYS_OFFSET		MXC91231_PHYS_OFFSET +# elif defined CONFIG_ARCH_MX5 +#  define PHYS_OFFSET		MX51_PHYS_OFFSET +# endif  #endif -#if defined(CONFIG_MX1_VIDEO) +#if defined(CONFIG_MX3_VIDEO)  /*   * Increase size of DMA-consistent memory region. - * This is required for i.MX camera driver to capture at least four VGA frames. + * This is required for mx3 camera driver to capture at least two QXGA frames.   */ -#define CONSISTENT_DMA_SIZE SZ_4M -#endif /* CONFIG_MX1_VIDEO */ +#define CONSISTENT_DMA_SIZE SZ_8M -#if defined(CONFIG_MX3_VIDEO) +#elif defined(CONFIG_MX1_VIDEO)  /*   * Increase size of DMA-consistent memory region. - * This is required for mx3 camera driver to capture at least two QXGA frames. + * This is required for i.MX camera driver to capture at least four VGA frames.   */ -#define CONSISTENT_DMA_SIZE SZ_8M -#endif /* CONFIG_MX3_VIDEO */ +#define CONSISTENT_DMA_SIZE SZ_4M +#endif /* CONFIG_MX1_VIDEO */  #endif /* __ASM_ARCH_MXC_MEMORY_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mtd-xip.h b/arch/arm/plat-mxc/include/mach/mtd-xip.h deleted file mode 100644 index 1ab1bba5688..00000000000 --- a/arch/arm/plat-mxc/include/mach/mtd-xip.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * MTD primitives for XIP support. Architecture specific functions - * - * Do not include this file directly. It's included from linux/mtd/xip.h - * - * Copyright (C) 2008 Darius Augulis <augulis.darius@gmail.com>, Teltonika, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - */ - -#include <mach/mxc_timer.h> - -#ifndef __ARCH_IMX_MTD_XIP_H__ -#define __ARCH_IMX_MTD_XIP_H__ - -#ifdef CONFIG_ARCH_MX1 -/* AITC registers */ -#define AITC_BASE	IO_ADDRESS(AVIC_BASE_ADDR) -#define NIPNDH		(AITC_BASE + 0x58) -#define NIPNDL		(AITC_BASE + 0x5C) -#define INTENABLEH	(AITC_BASE + 0x10) -#define INTENABLEL	(AITC_BASE + 0x14) -/* MTD macros */ -#define xip_irqpending() ((__raw_readl(INTENABLEH) &  __raw_readl(NIPNDH)) \ -			|| (__raw_readl(INTENABLEL) &  __raw_readl(NIPNDL))) -#define xip_currtime()		(__raw_readl(TIMER_BASE + MXC_TCN)) -#define xip_elapsed_since(x)	(signed)((__raw_readl(TIMER_BASE + MXC_TCN) - (x)) / 96) -#define xip_cpu_idle()		asm volatile ("mcr p15, 0, %0, c7, c0, 4" :: "r" (0)) -#endif /* CONFIG_ARCH_MX1 */ - -#endif /* __ARCH_IMX_MTD_XIP_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mx1.h b/arch/arm/plat-mxc/include/mach/mx1.h index 1b2890a5c45..5eba7e6785d 100644 --- a/arch/arm/plat-mxc/include/mach/mx1.h +++ b/arch/arm/plat-mxc/include/mach/mx1.h @@ -9,156 +9,289 @@   * published by the Free Software Foundation.   */ -#ifndef __ASM_ARCH_MXC_MX1_H__ -#define __ASM_ARCH_MXC_MX1_H__ +#ifndef __MACH_MX1_H__ +#define __MACH_MX1_H__  #include <mach/vmalloc.h>  /*   * Memory map   */ -#define IMX_IO_PHYS	0x00200000 -#define IMX_IO_SIZE	0x00100000 -#define IMX_IO_BASE	VMALLOC_END +#define MX1_IO_BASE_ADDR	0x00200000 +#define MX1_IO_SIZE		SZ_1M +#define MX1_IO_BASE_ADDR_VIRT	VMALLOC_END -#define IMX_CS0_PHYS	0x10000000 -#define IMX_CS0_SIZE	0x02000000 +#define MX1_CS0_PHYS		0x10000000 +#define MX1_CS0_SIZE		0x02000000 -#define IMX_CS1_PHYS	0x12000000 -#define IMX_CS1_SIZE	0x01000000 +#define MX1_CS1_PHYS		0x12000000 +#define MX1_CS1_SIZE		0x01000000 -#define IMX_CS2_PHYS	0x13000000 -#define IMX_CS2_SIZE	0x01000000 +#define MX1_CS2_PHYS		0x13000000 +#define MX1_CS2_SIZE		0x01000000 -#define IMX_CS3_PHYS	0x14000000 -#define IMX_CS3_SIZE	0x01000000 +#define MX1_CS3_PHYS		0x14000000 +#define MX1_CS3_SIZE		0x01000000 -#define IMX_CS4_PHYS	0x15000000 -#define IMX_CS4_SIZE	0x01000000 +#define MX1_CS4_PHYS		0x15000000 +#define MX1_CS4_SIZE		0x01000000 -#define IMX_CS5_PHYS	0x16000000 -#define IMX_CS5_SIZE	0x01000000 +#define MX1_CS5_PHYS		0x16000000 +#define MX1_CS5_SIZE		0x01000000  /*   *  Register BASEs, based on OFFSETs   */ -#define AIPI1_BASE_ADDR		(0x00000 + IMX_IO_PHYS) -#define WDT_BASE_ADDR		(0x01000 + IMX_IO_PHYS) -#define TIM1_BASE_ADDR		(0x02000 + IMX_IO_PHYS) -#define TIM2_BASE_ADDR		(0x03000 + IMX_IO_PHYS) -#define RTC_BASE_ADDR		(0x04000 + IMX_IO_PHYS) -#define LCDC_BASE_ADDR		(0x05000 + IMX_IO_PHYS) -#define UART1_BASE_ADDR		(0x06000 + IMX_IO_PHYS) -#define UART2_BASE_ADDR		(0x07000 + IMX_IO_PHYS) -#define PWM_BASE_ADDR		(0x08000 + IMX_IO_PHYS) -#define DMA_BASE_ADDR		(0x09000 + IMX_IO_PHYS) -#define AIPI2_BASE_ADDR		(0x10000 + IMX_IO_PHYS) -#define SIM_BASE_ADDR		(0x11000 + IMX_IO_PHYS) -#define USBD_BASE_ADDR		(0x12000 + IMX_IO_PHYS) -#define SPI1_BASE_ADDR		(0x13000 + IMX_IO_PHYS) -#define MMC_BASE_ADDR		(0x14000 + IMX_IO_PHYS) -#define ASP_BASE_ADDR		(0x15000 + IMX_IO_PHYS) -#define BTA_BASE_ADDR		(0x16000 + IMX_IO_PHYS) -#define I2C_BASE_ADDR		(0x17000 + IMX_IO_PHYS) -#define SSI_BASE_ADDR		(0x18000 + IMX_IO_PHYS) -#define SPI2_BASE_ADDR		(0x19000 + IMX_IO_PHYS) -#define MSHC_BASE_ADDR		(0x1A000 + IMX_IO_PHYS) -#define CCM_BASE_ADDR		(0x1B000 + IMX_IO_PHYS) -#define SCM_BASE_ADDR		(0x1B804 + IMX_IO_PHYS) -#define GPIO_BASE_ADDR		(0x1C000 + IMX_IO_PHYS) -#define EIM_BASE_ADDR		(0x20000 + IMX_IO_PHYS) -#define SDRAMC_BASE_ADDR	(0x21000 + IMX_IO_PHYS) -#define MMA_BASE_ADDR		(0x22000 + IMX_IO_PHYS) -#define AVIC_BASE_ADDR		(0x23000 + IMX_IO_PHYS) -#define CSI_BASE_ADDR		(0x24000 + IMX_IO_PHYS) +#define MX1_AIPI1_BASE_ADDR		(0x00000 + MX1_IO_BASE_ADDR) +#define MX1_WDT_BASE_ADDR		(0x01000 + MX1_IO_BASE_ADDR) +#define MX1_TIM1_BASE_ADDR		(0x02000 + MX1_IO_BASE_ADDR) +#define MX1_TIM2_BASE_ADDR		(0x03000 + MX1_IO_BASE_ADDR) +#define MX1_RTC_BASE_ADDR		(0x04000 + MX1_IO_BASE_ADDR) +#define MX1_LCDC_BASE_ADDR		(0x05000 + MX1_IO_BASE_ADDR) +#define MX1_UART1_BASE_ADDR		(0x06000 + MX1_IO_BASE_ADDR) +#define MX1_UART2_BASE_ADDR		(0x07000 + MX1_IO_BASE_ADDR) +#define MX1_PWM_BASE_ADDR		(0x08000 + MX1_IO_BASE_ADDR) +#define MX1_DMA_BASE_ADDR		(0x09000 + MX1_IO_BASE_ADDR) +#define MX1_AIPI2_BASE_ADDR		(0x10000 + MX1_IO_BASE_ADDR) +#define MX1_SIM_BASE_ADDR		(0x11000 + MX1_IO_BASE_ADDR) +#define MX1_USBD_BASE_ADDR		(0x12000 + MX1_IO_BASE_ADDR) +#define MX1_SPI1_BASE_ADDR		(0x13000 + MX1_IO_BASE_ADDR) +#define MX1_MMC_BASE_ADDR		(0x14000 + MX1_IO_BASE_ADDR) +#define MX1_ASP_BASE_ADDR		(0x15000 + MX1_IO_BASE_ADDR) +#define MX1_BTA_BASE_ADDR		(0x16000 + MX1_IO_BASE_ADDR) +#define MX1_I2C_BASE_ADDR		(0x17000 + MX1_IO_BASE_ADDR) +#define MX1_SSI_BASE_ADDR		(0x18000 + MX1_IO_BASE_ADDR) +#define MX1_SPI2_BASE_ADDR		(0x19000 + MX1_IO_BASE_ADDR) +#define MX1_MSHC_BASE_ADDR		(0x1A000 + MX1_IO_BASE_ADDR) +#define MX1_CCM_BASE_ADDR		(0x1B000 + MX1_IO_BASE_ADDR) +#define MX1_SCM_BASE_ADDR		(0x1B804 + MX1_IO_BASE_ADDR) +#define MX1_GPIO_BASE_ADDR		(0x1C000 + MX1_IO_BASE_ADDR) +#define MX1_EIM_BASE_ADDR		(0x20000 + MX1_IO_BASE_ADDR) +#define MX1_SDRAMC_BASE_ADDR		(0x21000 + MX1_IO_BASE_ADDR) +#define MX1_MMA_BASE_ADDR		(0x22000 + MX1_IO_BASE_ADDR) +#define MX1_AVIC_BASE_ADDR		(0x23000 + MX1_IO_BASE_ADDR) +#define MX1_CSI_BASE_ADDR		(0x24000 + MX1_IO_BASE_ADDR)  /* macro to get at IO space when running virtually */ -#define IO_ADDRESS(x)	((x) - IMX_IO_PHYS + IMX_IO_BASE) - -/* define macros needed for entry-macro.S */ -#define AVIC_IO_ADDRESS(x)	IO_ADDRESS(x) +#define MX1_IO_ADDRESS(x) (						\ +	IMX_IO_ADDRESS(x, MX1_IO))  /* fixed interrput numbers */ -#define INT_SOFTINT		0 -#define CSI_INT			6 -#define DSPA_MAC_INT		7 -#define DSPA_INT		8 -#define COMP_INT		9 -#define MSHC_XINT		10 -#define GPIO_INT_PORTA		11 -#define GPIO_INT_PORTB		12 -#define GPIO_INT_PORTC		13 -#define LCDC_INT		14 -#define SIM_INT			15 -#define SIM_DATA_INT		16 -#define RTC_INT			17 -#define RTC_SAMINT		18 -#define UART2_MINT_PFERR	19 -#define UART2_MINT_RTS		20 -#define UART2_MINT_DTR		21 -#define UART2_MINT_UARTC	22 -#define UART2_MINT_TX		23 -#define UART2_MINT_RX		24 -#define UART1_MINT_PFERR	25 -#define UART1_MINT_RTS		26 -#define UART1_MINT_DTR		27 -#define UART1_MINT_UARTC	28 -#define UART1_MINT_TX		29 -#define UART1_MINT_RX		30 -#define VOICE_DAC_INT		31 -#define VOICE_ADC_INT		32 -#define PEN_DATA_INT		33 -#define PWM_INT			34 -#define SDHC_INT		35 -#define I2C_INT			39 -#define CSPI_INT		41 -#define SSI_TX_INT		42 -#define SSI_TX_ERR_INT		43 -#define SSI_RX_INT		44 -#define SSI_RX_ERR_INT		45 -#define TOUCH_INT		46 -#define USBD_INT0		47 -#define USBD_INT1		48 -#define USBD_INT2		49 -#define USBD_INT3		50 -#define USBD_INT4		51 -#define USBD_INT5		52 -#define USBD_INT6		53 -#define BTSYS_INT		55 -#define BTTIM_INT		56 -#define BTWUI_INT		57 -#define TIM2_INT		58 -#define TIM1_INT		59 -#define DMA_ERR			60 -#define DMA_INT			61 -#define GPIO_INT_PORTD		62 -#define WDT_INT			63 +#define MX1_INT_SOFTINT		0 +#define MX1_CSI_INT		6 +#define MX1_DSPA_MAC_INT	7 +#define MX1_DSPA_INT		8 +#define MX1_COMP_INT		9 +#define MX1_MSHC_XINT		10 +#define MX1_GPIO_INT_PORTA	11 +#define MX1_GPIO_INT_PORTB	12 +#define MX1_GPIO_INT_PORTC	13 +#define MX1_LCDC_INT		14 +#define MX1_SIM_INT		15 +#define MX1_SIM_DATA_INT	16 +#define MX1_RTC_INT		17 +#define MX1_RTC_SAMINT		18 +#define MX1_UART2_MINT_PFERR	19 +#define MX1_UART2_MINT_RTS	20 +#define MX1_UART2_MINT_DTR	21 +#define MX1_UART2_MINT_UARTC	22 +#define MX1_UART2_MINT_TX	23 +#define MX1_UART2_MINT_RX	24 +#define MX1_UART1_MINT_PFERR	25 +#define MX1_UART1_MINT_RTS	26 +#define MX1_UART1_MINT_DTR	27 +#define MX1_UART1_MINT_UARTC	28 +#define MX1_UART1_MINT_TX	29 +#define MX1_UART1_MINT_RX	30 +#define MX1_VOICE_DAC_INT	31 +#define MX1_VOICE_ADC_INT	32 +#define MX1_PEN_DATA_INT	33 +#define MX1_PWM_INT		34 +#define MX1_SDHC_INT		35 +#define MX1_I2C_INT		39 +#define MX1_CSPI_INT		41 +#define MX1_SSI_TX_INT		42 +#define MX1_SSI_TX_ERR_INT	43 +#define MX1_SSI_RX_INT		44 +#define MX1_SSI_RX_ERR_INT	45 +#define MX1_TOUCH_INT		46 +#define MX1_USBD_INT0		47 +#define MX1_USBD_INT1		48 +#define MX1_USBD_INT2		49 +#define MX1_USBD_INT3		50 +#define MX1_USBD_INT4		51 +#define MX1_USBD_INT5		52 +#define MX1_USBD_INT6		53 +#define MX1_BTSYS_INT		55 +#define MX1_BTTIM_INT		56 +#define MX1_BTWUI_INT		57 +#define MX1_TIM2_INT		58 +#define MX1_TIM1_INT		59 +#define MX1_DMA_ERR		60 +#define MX1_DMA_INT		61 +#define MX1_GPIO_INT_PORTD	62 +#define MX1_WDT_INT		63  /* DMA */ -#define DMA_REQ_UART3_T		2 -#define DMA_REQ_UART3_R		3 -#define DMA_REQ_SSI2_T		4 -#define DMA_REQ_SSI2_R		5 -#define DMA_REQ_CSI_STAT	6 -#define DMA_REQ_CSI_R		7 -#define DMA_REQ_MSHC		8 -#define DMA_REQ_DSPA_DCT_DOUT	9 -#define DMA_REQ_DSPA_DCT_DIN	10 -#define DMA_REQ_DSPA_MAC	11 -#define DMA_REQ_EXT		12 -#define DMA_REQ_SDHC		13 -#define DMA_REQ_SPI1_R		14 -#define DMA_REQ_SPI1_T		15 -#define DMA_REQ_SSI_T		16 -#define DMA_REQ_SSI_R		17 -#define DMA_REQ_ASP_DAC		18 -#define DMA_REQ_ASP_ADC		19 -#define DMA_REQ_USP_EP(x)	(20 + (x)) -#define DMA_REQ_SPI2_R		26 -#define DMA_REQ_SPI2_T		27 -#define DMA_REQ_UART2_T		28 -#define DMA_REQ_UART2_R		29 -#define DMA_REQ_UART1_T		30 -#define DMA_REQ_UART1_R		31 +#define MX1_DMA_REQ_UART3_T		2 +#define MX1_DMA_REQ_UART3_R		3 +#define MX1_DMA_REQ_SSI2_T		4 +#define MX1_DMA_REQ_SSI2_R		5 +#define MX1_DMA_REQ_CSI_STAT		6 +#define MX1_DMA_REQ_CSI_R		7 +#define MX1_DMA_REQ_MSHC		8 +#define MX1_DMA_REQ_DSPA_DCT_DOUT	9 +#define MX1_DMA_REQ_DSPA_DCT_DIN	10 +#define MX1_DMA_REQ_DSPA_MAC		11 +#define MX1_DMA_REQ_EXT			12 +#define MX1_DMA_REQ_SDHC		13 +#define MX1_DMA_REQ_SPI1_R		14 +#define MX1_DMA_REQ_SPI1_T		15 +#define MX1_DMA_REQ_SSI_T		16 +#define MX1_DMA_REQ_SSI_R		17 +#define MX1_DMA_REQ_ASP_DAC		18 +#define MX1_DMA_REQ_ASP_ADC		19 +#define MX1_DMA_REQ_USP_EP(x)		(20 + (x)) +#define MX1_DMA_REQ_SPI2_R		26 +#define MX1_DMA_REQ_SPI2_T		27 +#define MX1_DMA_REQ_UART2_T		28 +#define MX1_DMA_REQ_UART2_R		29 +#define MX1_DMA_REQ_UART1_T		30 +#define MX1_DMA_REQ_UART1_R		31 + +/* + * This doesn't depend on IMX_NEEDS_DEPRECATED_SYMBOLS + * to not break drivers/usb/gadget/imx_udc.  Should go + * away after this driver uses the new name. + */ +#define USBD_INT0		MX1_USBD_INT0 + +#ifdef IMX_NEEDS_DEPRECATED_SYMBOLS +/* these should go away */ +#define IMX_IO_PHYS MX1_IO_BASE_ADDR +#define IMX_IO_SIZE MX1_IO_SIZE +#define IMX_IO_BASE MX1_IO_BASE_ADDR_VIRT +#define IMX_CS0_PHYS MX1_CS0_PHYS +#define IMX_CS0_SIZE MX1_CS0_SIZE +#define IMX_CS1_PHYS MX1_CS1_PHYS +#define IMX_CS1_SIZE MX1_CS1_SIZE +#define IMX_CS2_PHYS MX1_CS2_PHYS +#define IMX_CS2_SIZE MX1_CS2_SIZE +#define IMX_CS3_PHYS MX1_CS3_PHYS +#define IMX_CS3_SIZE MX1_CS3_SIZE +#define IMX_CS4_PHYS MX1_CS4_PHYS +#define IMX_CS4_SIZE MX1_CS4_SIZE +#define IMX_CS5_PHYS MX1_CS5_PHYS +#define IMX_CS5_SIZE MX1_CS5_SIZE +#define AIPI1_BASE_ADDR MX1_AIPI1_BASE_ADDR +#define WDT_BASE_ADDR MX1_WDT_BASE_ADDR +#define TIM1_BASE_ADDR MX1_TIM1_BASE_ADDR +#define TIM2_BASE_ADDR MX1_TIM2_BASE_ADDR +#define RTC_BASE_ADDR MX1_RTC_BASE_ADDR +#define LCDC_BASE_ADDR MX1_LCDC_BASE_ADDR +#define UART1_BASE_ADDR MX1_UART1_BASE_ADDR +#define UART2_BASE_ADDR MX1_UART2_BASE_ADDR +#define PWM_BASE_ADDR MX1_PWM_BASE_ADDR +#define DMA_BASE_ADDR MX1_DMA_BASE_ADDR +#define AIPI2_BASE_ADDR MX1_AIPI2_BASE_ADDR +#define SIM_BASE_ADDR MX1_SIM_BASE_ADDR +#define USBD_BASE_ADDR MX1_USBD_BASE_ADDR +#define SPI1_BASE_ADDR MX1_SPI1_BASE_ADDR +#define MMC_BASE_ADDR MX1_MMC_BASE_ADDR +#define ASP_BASE_ADDR MX1_ASP_BASE_ADDR +#define BTA_BASE_ADDR MX1_BTA_BASE_ADDR +#define I2C_BASE_ADDR MX1_I2C_BASE_ADDR +#define SSI_BASE_ADDR MX1_SSI_BASE_ADDR +#define SPI2_BASE_ADDR MX1_SPI2_BASE_ADDR +#define MSHC_BASE_ADDR MX1_MSHC_BASE_ADDR +#define CCM_BASE_ADDR MX1_CCM_BASE_ADDR +#define SCM_BASE_ADDR MX1_SCM_BASE_ADDR +#define GPIO_BASE_ADDR MX1_GPIO_BASE_ADDR +#define EIM_BASE_ADDR MX1_EIM_BASE_ADDR +#define SDRAMC_BASE_ADDR MX1_SDRAMC_BASE_ADDR +#define MMA_BASE_ADDR MX1_MMA_BASE_ADDR +#define AVIC_BASE_ADDR MX1_AVIC_BASE_ADDR +#define CSI_BASE_ADDR MX1_CSI_BASE_ADDR +#define IO_ADDRESS(x) MX1_IO_ADDRESS(x) +#define AVIC_IO_ADDRESS(x) IO_ADDRESS(x) +#define INT_SOFTINT MX1_INT_SOFTINT +#define CSI_INT MX1_CSI_INT +#define DSPA_MAC_INT MX1_DSPA_MAC_INT +#define DSPA_INT MX1_DSPA_INT +#define COMP_INT MX1_COMP_INT +#define MSHC_XINT MX1_MSHC_XINT +#define GPIO_INT_PORTA MX1_GPIO_INT_PORTA +#define GPIO_INT_PORTB MX1_GPIO_INT_PORTB +#define GPIO_INT_PORTC MX1_GPIO_INT_PORTC +#define LCDC_INT MX1_LCDC_INT +#define SIM_INT MX1_SIM_INT +#define SIM_DATA_INT MX1_SIM_DATA_INT +#define RTC_INT MX1_RTC_INT +#define RTC_SAMINT MX1_RTC_SAMINT +#define UART2_MINT_PFERR MX1_UART2_MINT_PFERR +#define UART2_MINT_RTS MX1_UART2_MINT_RTS +#define UART2_MINT_DTR MX1_UART2_MINT_DTR +#define UART2_MINT_UARTC MX1_UART2_MINT_UARTC +#define UART2_MINT_TX MX1_UART2_MINT_TX +#define UART2_MINT_RX MX1_UART2_MINT_RX +#define UART1_MINT_PFERR MX1_UART1_MINT_PFERR +#define UART1_MINT_RTS MX1_UART1_MINT_RTS +#define UART1_MINT_DTR MX1_UART1_MINT_DTR +#define UART1_MINT_UARTC MX1_UART1_MINT_UARTC +#define UART1_MINT_TX MX1_UART1_MINT_TX +#define UART1_MINT_RX MX1_UART1_MINT_RX +#define VOICE_DAC_INT MX1_VOICE_DAC_INT +#define VOICE_ADC_INT MX1_VOICE_ADC_INT +#define PEN_DATA_INT MX1_PEN_DATA_INT +#define PWM_INT MX1_PWM_INT +#define SDHC_INT MX1_SDHC_INT +#define I2C_INT MX1_I2C_INT +#define CSPI_INT MX1_CSPI_INT +#define SSI_TX_INT MX1_SSI_TX_INT +#define SSI_TX_ERR_INT MX1_SSI_TX_ERR_INT +#define SSI_RX_INT MX1_SSI_RX_INT +#define SSI_RX_ERR_INT MX1_SSI_RX_ERR_INT +#define TOUCH_INT MX1_TOUCH_INT +#define USBD_INT1 MX1_USBD_INT1 +#define USBD_INT2 MX1_USBD_INT2 +#define USBD_INT3 MX1_USBD_INT3 +#define USBD_INT4 MX1_USBD_INT4 +#define USBD_INT5 MX1_USBD_INT5 +#define USBD_INT6 MX1_USBD_INT6 +#define BTSYS_INT MX1_BTSYS_INT +#define BTTIM_INT MX1_BTTIM_INT +#define BTWUI_INT MX1_BTWUI_INT +#define TIM2_INT MX1_TIM2_INT +#define TIM1_INT MX1_TIM1_INT +#define DMA_ERR MX1_DMA_ERR +#define DMA_INT MX1_DMA_INT +#define GPIO_INT_PORTD MX1_GPIO_INT_PORTD +#define WDT_INT MX1_WDT_INT +#define DMA_REQ_UART3_T MX1_DMA_REQ_UART3_T +#define DMA_REQ_UART3_R MX1_DMA_REQ_UART3_R +#define DMA_REQ_SSI2_T MX1_DMA_REQ_SSI2_T +#define DMA_REQ_SSI2_R MX1_DMA_REQ_SSI2_R +#define DMA_REQ_CSI_STAT MX1_DMA_REQ_CSI_STAT +#define DMA_REQ_CSI_R MX1_DMA_REQ_CSI_R +#define DMA_REQ_MSHC MX1_DMA_REQ_MSHC +#define DMA_REQ_DSPA_DCT_DOUT MX1_DMA_REQ_DSPA_DCT_DOUT +#define DMA_REQ_DSPA_DCT_DIN MX1_DMA_REQ_DSPA_DCT_DIN +#define DMA_REQ_DSPA_MAC MX1_DMA_REQ_DSPA_MAC +#define DMA_REQ_EXT MX1_DMA_REQ_EXT +#define DMA_REQ_SDHC MX1_DMA_REQ_SDHC +#define DMA_REQ_SPI1_R MX1_DMA_REQ_SPI1_R +#define DMA_REQ_SPI1_T MX1_DMA_REQ_SPI1_T +#define DMA_REQ_SSI_T MX1_DMA_REQ_SSI_T +#define DMA_REQ_SSI_R MX1_DMA_REQ_SSI_R +#define DMA_REQ_ASP_DAC MX1_DMA_REQ_ASP_DAC +#define DMA_REQ_ASP_ADC MX1_DMA_REQ_ASP_ADC +#define DMA_REQ_USP_EP(x) MX1_DMA_REQ_USP_EP(x) +#define DMA_REQ_SPI2_R MX1_DMA_REQ_SPI2_R +#define DMA_REQ_SPI2_T MX1_DMA_REQ_SPI2_T +#define DMA_REQ_UART2_T MX1_DMA_REQ_UART2_T +#define DMA_REQ_UART2_R MX1_DMA_REQ_UART2_R +#define DMA_REQ_UART1_T MX1_DMA_REQ_UART1_T +#define DMA_REQ_UART1_R MX1_DMA_REQ_UART1_R +#endif /* ifdef IMX_NEEDS_DEPRECATED_SYMBOLS */ -#endif /*  __ASM_ARCH_MXC_MX1_H__ */ +#endif /* ifndef __MACH_MX1_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mx21.h b/arch/arm/plat-mxc/include/mach/mx21.h index bb297d8765a..ed98b9c9f38 100644 --- a/arch/arm/plat-mxc/include/mach/mx21.h +++ b/arch/arm/plat-mxc/include/mach/mx21.h @@ -22,8 +22,8 @@   * MA  02110-1301, USA.   */ -#ifndef __ASM_ARCH_MXC_MX21_H__ -#define __ASM_ARCH_MXC_MX21_H__ +#ifndef __MACH_MX21_H__ +#define __MACH_MX21_H__  #define MX21_AIPI_BASE_ADDR		0x10000000  #define MX21_AIPI_BASE_ADDR_VIRT	0xf4000000 @@ -92,6 +92,11 @@  #define MX21_IRAM_BASE_ADDR		0xffffe800	/* internal ram */ +#define MX21_IO_ADDRESS(x) (						\ +	IMX_IO_ADDRESS(x, MX21_AIPI) ?:					\ +	IMX_IO_ADDRESS(x, MX21_SAHB1) ?:				\ +	IMX_IO_ADDRESS(x, MX21_X_MEMC)) +  /* fixed interrupt numbers */  #define MX21_INT_CSPI3		6  #define MX21_INT_GPIO		8 @@ -179,6 +184,7 @@  #define MX21_DMA_REQ_CSI_STAT	30  #define MX21_DMA_REQ_CSI_RX	31 +#ifdef IMX_NEEDS_DEPRECATED_SYMBOLS  /* these should go away */  #define SDRAM_BASE_ADDR MX21_SDRAM_BASE_ADDR  #define CSD1_BASE_ADDR MX21_CSD1_BASE_ADDR @@ -211,5 +217,6 @@  #define DMA_REQ_FIRI_RX MX21_DMA_REQ_FIRI_RX  #define DMA_REQ_BMI_TX MX21_DMA_REQ_BMI_TX  #define DMA_REQ_BMI_RX MX21_DMA_REQ_BMI_RX +#endif -#endif /* __ASM_ARCH_MXC_MX21_H__ */ +#endif /* ifndef __MACH_MX21_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h index 854e2dc5848..4eb6e334bda 100644 --- a/arch/arm/plat-mxc/include/mach/mx25.h +++ b/arch/arm/plat-mxc/include/mach/mx25.h @@ -22,27 +22,27 @@  #define MX25_GPIO3_BASE_ADDR_VIRT	(MX25_AIPS2_BASE_ADDR_VIRT + 0xa4000)  #define MX25_GPIO4_BASE_ADDR_VIRT	(MX25_AIPS2_BASE_ADDR_VIRT + 0x9c000) -#define MX25_AIPS1_IO_ADDRESS(x)  \ -	(((x) - MX25_AIPS1_BASE_ADDR) + MX25_AIPS1_BASE_ADDR_VIRT) -#define MX25_AIPS2_IO_ADDRESS(x)  \ -	(((x) - MX25_AIPS2_BASE_ADDR) + MX25_AIPS2_BASE_ADDR_VIRT) -#define MX25_AVIC_IO_ADDRESS(x)  \ -	(((x) - MX25_AVIC_BASE_ADDR) + MX25_AVIC_BASE_ADDR_VIRT) +#define MX25_IO_ADDRESS(x) (					\ +	IMX_IO_ADDRESS(x, MX25_AIPS1) ?:			\ +	IMX_IO_ADDRESS(x, MX25_AIPS2) ?:			\ +	IMX_IO_ADDRESS(x, MX25_AVIC)) -#define __in_range(addr, name)	((addr) >= name##_BASE_ADDR && (addr) < name##_BASE_ADDR + name##_SIZE) - -#define MX25_IO_ADDRESS(x)					\ -	(void __force __iomem *)				\ -	(__in_range(x, MX25_AIPS1) ? MX25_AIPS1_IO_ADDRESS(x) :	\ -	__in_range(x, MX25_AIPS2) ? MX25_AIPS2_IO_ADDRESS(x) :	\ -	__in_range(x, MX25_AVIC) ? MX25_AVIC_IO_ADDRESS(x) :	\ -	0xDEADBEEF) - -#define UART1_BASE_ADDR			0x43f90000 -#define UART2_BASE_ADDR			0x43f94000 +#define MX25_UART1_BASE_ADDR		0x43f90000 +#define MX25_UART2_BASE_ADDR		0x43f94000  #define MX25_FEC_BASE_ADDR		0x50038000 +#define MX25_NFC_BASE_ADDR		0xbb000000 +#define MX25_DRYICE_BASE_ADDR		0x53ffc000 +#define MX25_LCDC_BASE_ADDR		0x53fbc000 +#define MX25_INT_DRYICE	25  #define MX25_INT_FEC	57 +#define MX25_INT_NANDFC	33 +#define MX25_INT_LCDC	39 + +#if defined(IMX_NEEDS_DEPRECATED_SYMBOLS) +#define UART1_BASE_ADDR			MX25_UART1_BASE_ADDR +#define UART2_BASE_ADDR			MX25_UART2_BASE_ADDR +#endif -#endif /* __MACH_MX25_H__ */ +#endif /* ifndef __MACH_MX25_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mx27.h b/arch/arm/plat-mxc/include/mach/mx27.h index e2ae19f5171..bae9cd75bee 100644 --- a/arch/arm/plat-mxc/include/mach/mx27.h +++ b/arch/arm/plat-mxc/include/mach/mx27.h @@ -21,8 +21,12 @@   * MA  02110-1301, USA.   */ -#ifndef __ASM_ARCH_MXC_MX27_H__ -#define __ASM_ARCH_MXC_MX27_H__ +#ifndef __MACH_MX27_H__ +#define __MACH_MX27_H__ + +#ifndef __ASSEMBLER__ +#include <linux/io.h> +#endif  #define MX27_AIPI_BASE_ADDR		0x10000000  #define MX27_AIPI_BASE_ADDR_VIRT	0xf4000000 @@ -109,11 +113,31 @@  #define MX27_M3IF_BASE_ADDR			(MX27_X_MEMC_BASE_ADDR + 0x3000)  #define MX27_PCMCIA_CTL_BASE_ADDR		(MX27_X_MEMC_BASE_ADDR + 0x4000) +#define MX27_WEIM_CSCRx_BASE_ADDR(cs)	(MX27_WEIM_BASE_ADDR + (cs) * 0x10) +#define MX27_WEIM_CSCRxU(cs)			(MX27_WEIM_CSCRx_BASE_ADDR(cs)) +#define MX27_WEIM_CSCRxL(cs)			(MX27_WEIM_CSCRx_BASE_ADDR(cs) + 0x4) +#define MX27_WEIM_CSCRxA(cs)			(MX27_WEIM_CSCRx_BASE_ADDR(cs) + 0x8) +  #define MX27_PCMCIA_MEM_BASE_ADDR	0xdc000000  /* IRAM */  #define MX27_IRAM_BASE_ADDR		0xffff4c00	/* internal ram */ +#define MX27_IO_ADDRESS(x) (						\ +	IMX_IO_ADDRESS(x, MX27_AIPI) ?:					\ +	IMX_IO_ADDRESS(x, MX27_SAHB1) ?:				\ +	IMX_IO_ADDRESS(x, MX27_X_MEMC)) + +#ifndef __ASSEMBLER__ +static inline void mx27_setup_weimcs(size_t cs, +		unsigned upper, unsigned lower, unsigned addional) +{ +	__raw_writel(upper, MX27_IO_ADDRESS(MX27_WEIM_CSCRxU(cs))); +	__raw_writel(lower, MX27_IO_ADDRESS(MX27_WEIM_CSCRxL(cs))); +	__raw_writel(addional, MX27_IO_ADDRESS(MX27_WEIM_CSCRxA(cs))); +} +#endif +  /* fixed interrupt numbers */  #define MX27_INT_I2C2		1  #define MX27_INT_GPT6		2 @@ -225,6 +249,7 @@  extern int mx27_revision(void);  #endif +#ifdef IMX_NEEDS_DEPRECATED_SYMBOLS  /* these should go away */  #define MSHC_BASE_ADDR MX27_MSHC_BASE_ADDR  #define GPT5_BASE_ADDR MX27_GPT5_BASE_ADDR @@ -292,5 +317,6 @@ extern int mx27_revision(void);  #define DMA_REQ_UART6_RX MX27_DMA_REQ_UART6_RX  #define DMA_REQ_SDHC3 MX27_DMA_REQ_SDHC3  #define DMA_REQ_NFC MX27_DMA_REQ_NFC +#endif -#endif /* __ASM_ARCH_MXC_MX27_H__ */ +#endif /* ifndef __MACH_MX27_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mx2x.h b/arch/arm/plat-mxc/include/mach/mx2x.h index f2eaf140ed0..afb895a0b5b 100644 --- a/arch/arm/plat-mxc/include/mach/mx2x.h +++ b/arch/arm/plat-mxc/include/mach/mx2x.h @@ -20,8 +20,8 @@   * MA  02110-1301, USA.   */ -#ifndef __ASM_ARCH_MXC_MX2x_H__ -#define __ASM_ARCH_MXC_MX2x_H__ +#ifndef __MACH_MX2x_H__ +#define __MACH_MX2x_H__  /* The following addresses are common between i.MX21 and i.MX27 */ @@ -176,6 +176,7 @@  #define MX2x_DMA_REQ_CSI_STAT	30  #define MX2x_DMA_REQ_CSI_RX	31 +#ifdef IMX_NEEDS_DEPRECATED_SYMBOLS  /* these should go away */  #define AIPI_BASE_ADDR MX2x_AIPI_BASE_ADDR  #define AIPI_BASE_ADDR_VIRT MX2x_AIPI_BASE_ADDR_VIRT @@ -287,5 +288,6 @@  #define DMA_REQ_UART1_TX MX2x_DMA_REQ_UART1_TX  #define DMA_REQ_CSI_STAT MX2x_DMA_REQ_CSI_STAT  #define DMA_REQ_CSI_RX MX2x_DMA_REQ_CSI_RX +#endif -#endif /* __ASM_ARCH_MXC_MX2x_H__ */ +#endif /* ifndef __MACH_MX2x_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mx31.h b/arch/arm/plat-mxc/include/mach/mx31.h index b8b47d139eb..fb90e119c2b 100644 --- a/arch/arm/plat-mxc/include/mach/mx31.h +++ b/arch/arm/plat-mxc/include/mach/mx31.h @@ -1,3 +1,10 @@ +#ifndef __MACH_MX31_H__ +#define __MACH_MX31_H__ + +#ifndef __ASSEMBLER__ +#include <linux/io.h> +#endif +  /*   * IRAM   */ @@ -107,8 +114,30 @@  #define MX31_EMI_CTL_BASE_ADDR			(MX31_X_MEMC_BASE_ADDR + 0x4000)  #define MX31_PCMCIA_CTL_BASE_ADDR		MX31_EMI_CTL_BASE_ADDR +#define MX31_WEIM_CSCRx_BASE_ADDR(cs)	(MX31_WEIM_BASE_ADDR + (cs) * 0x10) +#define MX31_WEIM_CSCRxU(cs)			(MX31_WEIM_CSCRx_BASE_ADDR(cs)) +#define MX31_WEIM_CSCRxL(cs)			(MX31_WEIM_CSCRx_BASE_ADDR(cs) + 0x4) +#define MX31_WEIM_CSCRxA(cs)			(MX31_WEIM_CSCRx_BASE_ADDR(cs) + 0x8) +  #define MX31_PCMCIA_MEM_BASE_ADDR	0xbc000000 +#define MX31_IO_ADDRESS(x) (						\ +	IMX_IO_ADDRESS(x, MX31_AIPS1) ?:				\ +	IMX_IO_ADDRESS(x, MX31_AIPS2) ?:				\ +	IMX_IO_ADDRESS(x, MX31_AVIC) ?:					\ +	IMX_IO_ADDRESS(x, MX31_X_MEMC) ?:				\ +	IMX_IO_ADDRESS(x, MX31_SPBA0)) + +#ifndef __ASSEMBLER__ +static inline void mx31_setup_weimcs(size_t cs, +		unsigned upper, unsigned lower, unsigned addional) +{ +	__raw_writel(upper, MX31_IO_ADDRESS(MX31_WEIM_CSCRxU(cs))); +	__raw_writel(lower, MX31_IO_ADDRESS(MX31_WEIM_CSCRxL(cs))); +	__raw_writel(addional, MX31_IO_ADDRESS(MX31_WEIM_CSCRxA(cs))); +} +#endif +  #define MX31_INT_I2C3		3  #define MX31_INT_I2C2		4  #define MX31_INT_MPEG4_ENCODER	5 @@ -186,6 +215,7 @@  #define MX31_SYSTEM_REV_MIN		MX31_CHIP_REV_1_0  #define MX31_SYSTEM_REV_NUM		3 +#ifdef IMX_NEEDS_DEPRECATED_SYMBOLS  /* these should go away */  #define ATA_BASE_ADDR MX31_ATA_BASE_ADDR  #define UART4_BASE_ADDR MX31_UART4_BASE_ADDR @@ -216,3 +246,6 @@  #define MXC_INT_UART5 MX31_INT_UART5  #define MXC_INT_CCM MX31_INT_CCM  #define MXC_INT_PCMCIA MX31_INT_PCMCIA +#endif + +#endif /* ifndef __MACH_MX31_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h index af871bce35b..526a55842ae 100644 --- a/arch/arm/plat-mxc/include/mach/mx35.h +++ b/arch/arm/plat-mxc/include/mach/mx35.h @@ -1,3 +1,5 @@ +#ifndef __MACH_MX35_H__ +#define __MACH_MX35_H__  /*   * IRAM   */ @@ -104,6 +106,13 @@  #define MX35_NFC_BASE_ADDR		0xbb000000  #define MX35_PCMCIA_MEM_BASE_ADDR	0xbc000000 +#define MX35_IO_ADDRESS(x) (						\ +	IMX_IO_ADDRESS(x, MX35_AIPS1) ?:				\ +	IMX_IO_ADDRESS(x, MX35_AIPS2) ?:				\ +	IMX_IO_ADDRESS(x, MX35_AVIC) ?:					\ +	IMX_IO_ADDRESS(x, MX35_X_MEMC) ?:				\ +	IMX_IO_ADDRESS(x, MX35_SPBA0)) +  /*   * Interrupt numbers   */ @@ -180,6 +189,7 @@  #define MX35_SYSTEM_REV_MIN		MX35_CHIP_REV_1_0  #define MX35_SYSTEM_REV_NUM		3 +#ifdef IMX_NEEDS_DEPRECATED_SYMBOLS  /* these should go away */  #define MXC_FEC_BASE_ADDR MX35_FEC_BASE_ADDR  #define MXC_INT_OWIRE MX35_INT_OWIRE @@ -195,3 +205,6 @@  #define MXC_INT_MLB MX35_INT_MLB  #define MXC_INT_SPDIF MX35_INT_SPDIF  #define MXC_INT_FEC MX35_INT_FEC +#endif + +#endif /* ifndef __MACH_MX35_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mx3x.h b/arch/arm/plat-mxc/include/mach/mx3x.h index be69272407a..7a356de385f 100644 --- a/arch/arm/plat-mxc/include/mach/mx3x.h +++ b/arch/arm/plat-mxc/include/mach/mx3x.h @@ -8,8 +8,8 @@   * published by the Free Software Foundation.   */ -#ifndef __ASM_ARCH_MXC_MX31_H__ -#define __ASM_ARCH_MXC_MX31_H__ +#ifndef __MACH_MX3x_H__ +#define __MACH_MX3x_H__  /*   * MX31 memory map: @@ -269,6 +269,7 @@ static inline int mx31_revision(void)  }  #endif +#ifdef IMX_NEEDS_DEPRECATED_SYMBOLS  /* these should go away */  #define L2CC_BASE_ADDR MX3x_L2CC_BASE_ADDR  #define L2CC_SIZE MX3x_L2CC_SIZE @@ -401,5 +402,6 @@ static inline int mx31_revision(void)  #define CHIP_REV_3_2 MX3x_CHIP_REV_3_2  #define SYSTEM_REV_MIN MX3x_SYSTEM_REV_MIN  #define SYSTEM_REV_NUM MX3x_SYSTEM_REV_NUM +#endif -#endif /*  __ASM_ARCH_MXC_MX31_H__ */ +#endif /* ifndef __MACH_MX3x_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h new file mode 100644 index 00000000000..5aad344d565 --- /dev/null +++ b/arch/arm/plat-mxc/include/mach/mx51.h @@ -0,0 +1,445 @@ +#ifndef __ASM_ARCH_MXC_MX51_H__ +#define __ASM_ARCH_MXC_MX51_H__ + +/* + * MX51 memory map: + * + * + * Virt		Phys		Size	What + * --------------------------------------------------------------------------- + * FA3E0000	1FFE0000	128K	IRAM (SCCv2 RAM) + *         	30000000	256M	GPU + *         	40000000	512M	IPU + * FA200000	60000000	1M	DEBUG + * FB100000	70000000	1M	SPBA 0 + * FB000000	73F00000	1M	AIPS 1 + * FB200000	83F00000	1M	AIPS 2 + *		8FFFC000	16K	TZIC (interrupt controller) + *         	90000000	256M	CSD0 SDRAM/DDR + *         	A0000000	256M	CSD1 SDRAM/DDR + *         	B0000000	128M	CS0 Flash + *         	B8000000	128M	CS1 Flash + *         	C0000000	128M	CS2 Flash + *         	C8000000	64M	CS3 Flash + *         	CC000000	32M	CS4 SRAM + *         	CE000000	32M	CS5 SRAM + *		CFFF0000	64K	NFC (NAND Flash AXI) + * + */ + +/* + * IROM + */ +#define MX51_IROM_BASE_ADDR		0x0 +#define MX51_IROM_SIZE			SZ_64K + +/* + * IRAM + */ +#define MX51_IRAM_BASE_ADDR		0x1FFE0000	/* internal ram */ +#define MX51_IRAM_BASE_ADDR_VIRT	0xFA3E0000 +#define MX51_IRAM_PARTITIONS		16 +#define MX51_IRAM_PARTITIONS_TO1	12 +#define MX51_IRAM_SIZE		(MX51_IRAM_PARTITIONS * SZ_8K)	/* 128KB */ + +/* + * NFC + */ +#define MX51_NFC_AXI_BASE_ADDR		0xCFFF0000	/* NAND flash AXI */ +#define MX51_NFC_AXI_SIZE		SZ_64K + +/* + * Graphics Memory of GPU + */ +#define MX51_GPU_BASE_ADDR		0x20000000 +#define MX51_GPU2D_BASE_ADDR		0xD0000000 + +#define MX51_TZIC_BASE_ADDR_TO1		0x8FFFC000 +#define MX51_TZIC_BASE_ADDR		0xE0000000 + +#define MX51_DEBUG_BASE_ADDR		0x60000000 +#define MX51_DEBUG_BASE_ADDR_VIRT	0xFA200000 +#define MX51_DEBUG_SIZE			SZ_1M +#define MX51_ETB_BASE_ADDR		(MX51_DEBUG_BASE_ADDR + 0x00001000) +#define MX51_ETM_BASE_ADDR		(MX51_DEBUG_BASE_ADDR + 0x00002000) +#define MX51_TPIU_BASE_ADDR		(MX51_DEBUG_BASE_ADDR + 0x00003000) +#define MX51_CTI0_BASE_ADDR		(MX51_DEBUG_BASE_ADDR + 0x00004000) +#define MX51_CTI1_BASE_ADDR		(MX51_DEBUG_BASE_ADDR + 0x00005000) +#define MX51_CTI2_BASE_ADDR		(MX51_DEBUG_BASE_ADDR + 0x00006000) +#define MX51_CTI3_BASE_ADDR		(MX51_DEBUG_BASE_ADDR + 0x00007000) +#define MX51_CORTEX_DBG_BASE_ADDR	(MX51_DEBUG_BASE_ADDR + 0x00008000) + +/* + * SPBA global module enabled #0 + */ +#define MX51_SPBA0_BASE_ADDR 		0x70000000 +#define MX51_SPBA0_BASE_ADDR_VIRT	0xFB100000 +#define MX51_SPBA0_SIZE			SZ_1M + +#define MX51_MMC_SDHC1_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x00004000) +#define MX51_MMC_SDHC2_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x00008000) +#define MX51_UART3_BASE_ADDR 		(MX51_SPBA0_BASE_ADDR + 0x0000C000) +#define MX51_CSPI1_BASE_ADDR 		(MX51_SPBA0_BASE_ADDR + 0x00010000) +#define MX51_SSI2_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x00014000) +#define MX51_MMC_SDHC3_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x00020000) +#define MX51_MMC_SDHC4_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x00024000) +#define MX51_SPDIF_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x00028000) +#define MX51_ATA_DMA_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x00030000) +#define MX51_SLIM_DMA_BASE_ADDR		(MX51_SPBA0_BASE_ADDR + 0x00034000) +#define MX51_HSI2C_DMA_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x00038000) +#define MX51_SPBA_CTRL_BASE_ADDR	(MX51_SPBA0_BASE_ADDR + 0x0003C000) + +/* + * defines for SPBA modules + */ +#define MX51_SPBA_SDHC1	0x04 +#define MX51_SPBA_SDHC2	0x08 +#define MX51_SPBA_UART3	0x0C +#define MX51_SPBA_CSPI1	0x10 +#define MX51_SPBA_SSI2	0x14 +#define MX51_SPBA_SDHC3	0x20 +#define MX51_SPBA_SDHC4	0x24 +#define MX51_SPBA_SPDIF	0x28 +#define MX51_SPBA_ATA	0x30 +#define MX51_SPBA_SLIM	0x34 +#define MX51_SPBA_HSI2C	0x38 +#define MX51_SPBA_CTRL	0x3C + +/* + * AIPS 1 + */ +#define MX51_AIPS1_BASE_ADDR 	0x73F00000 +#define MX51_AIPS1_BASE_ADDR_VIRT	0xFB000000 +#define MX51_AIPS1_SIZE		SZ_1M + +#define MX51_OTG_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x00080000) +#define MX51_GPIO1_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x00084000) +#define MX51_GPIO2_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x00088000) +#define MX51_GPIO3_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x0008C000) +#define MX51_GPIO4_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x00090000) +#define MX51_KPP_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x00094000) +#define MX51_WDOG_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x00098000) +#define MX51_WDOG2_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x0009C000) +#define MX51_GPT1_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000A0000) +#define MX51_SRTC_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000A4000) +#define MX51_IOMUXC_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000A8000) +#define MX51_EPIT1_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000AC000) +#define MX51_EPIT2_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000B0000) +#define MX51_PWM1_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000B4000) +#define MX51_PWM2_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000B8000) +#define MX51_UART1_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000BC000) +#define MX51_UART2_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000C0000) +#define MX51_SRC_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000D0000) +#define MX51_CCM_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000D4000) +#define MX51_GPC_BASE_ADDR	(MX51_AIPS1_BASE_ADDR + 0x000D8000) + +/* + * Defines for modules using static and dynamic DMA channels + */ +#define MX51_MXC_DMA_CHANNEL_IRAM	30 +#define MX51_MXC_DMA_CHANNEL_SPDIF_TX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_UART1_RX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_UART1_TX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_UART2_RX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_UART2_TX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_UART3_RX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_UART3_TX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_MMC1	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_MMC2	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_SSI1_RX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_SSI1_TX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_SSI2_RX	MXC_DMA_DYNAMIC_CHANNEL +#ifdef CONFIG_SDMA_IRAM +#define MX51_MXC_DMA_CHANNEL_SSI2_TX	(MX51_MXC_DMA_CHANNEL_IRAM + 1) +#else				/*CONFIG_SDMA_IRAM */ +#define MX51_MXC_DMA_CHANNEL_SSI2_TX	MXC_DMA_DYNAMIC_CHANNEL +#endif				/*CONFIG_SDMA_IRAM */ +#define MX51_MXC_DMA_CHANNEL_CSPI1_RX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_CSPI1_TX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_CSPI2_RX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_CSPI2_TX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_CSPI3_RX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_CSPI3_TX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_ATA_RX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_ATA_TX	MXC_DMA_DYNAMIC_CHANNEL +#define MX51_MXC_DMA_CHANNEL_MEMORY	MXC_DMA_DYNAMIC_CHANNEL + +/* + * AIPS 2 + */ +#define MX51_AIPS2_BASE_ADDR		0x83F00000 +#define MX51_AIPS2_BASE_ADDR_VIRT	0xFB200000 +#define MX51_AIPS2_SIZE			SZ_1M + +#define MX51_PLL1_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x00080000) +#define MX51_PLL2_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x00084000) +#define MX51_PLL3_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x00088000) +#define MX51_AHBMAX_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x00094000) +#define MX51_IIM_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x00098000) +#define MX51_CSU_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x0009C000) +#define MX51_ARM_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000A0000) +#define MX51_OWIRE_BASE_ADDR 	(MX51_AIPS2_BASE_ADDR + 0x000A4000) +#define MX51_FIRI_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000A8000) +#define MX51_CSPI2_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000AC000) +#define MX51_SDMA_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000B0000) +#define MX51_SCC_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000B4000) +#define MX51_ROMCP_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000B8000) +#define MX51_RTIC_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000BC000) +#define MX51_CSPI3_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000C0000) +#define MX51_I2C2_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000C4000) +#define MX51_I2C1_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000C8000) +#define MX51_SSI1_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000CC000) +#define MX51_AUDMUX_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000D0000) +#define MX51_M4IF_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000D8000) +#define MX51_ESDCTL_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000D9000) +#define MX51_WEIM_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000DA000) +#define MX51_NFC_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000DB000) +#define MX51_EMI_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000DBF00) +#define MX51_MIPI_HSC_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000DC000) +#define MX51_ATA_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000E0000) +#define MX51_SIM_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000E4000) +#define MX51_SSI3BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000E8000) +#define MX51_MXC_FEC_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000EC000) +#define MX51_TVE_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000F0000) +#define MX51_VPU_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000F4000) +#define MX51_SAHARA_BASE_ADDR	(MX51_AIPS2_BASE_ADDR + 0x000F8000) + +/* + * Memory regions and CS + */ +#define MX51_GPU_CTRL_BASE_ADDR		0x30000000 +#define MX51_IPU_CTRL_BASE_ADDR		0x40000000 +#define MX51_CSD0_BASE_ADDR		0x90000000 +#define MX51_CSD1_BASE_ADDR		0xA0000000 +#define MX51_CS0_BASE_ADDR		0xB0000000 +#define MX51_CS1_BASE_ADDR		0xB8000000 +#define MX51_CS2_BASE_ADDR		0xC0000000 +#define MX51_CS3_BASE_ADDR		0xC8000000 +#define MX51_CS4_BASE_ADDR		0xCC000000 +#define MX51_CS5_BASE_ADDR		0xCE000000 + +/* Does given address belongs to the specified memory region? */ +#define ADDRESS_IN_REGION(addr, start, size)			\ +	(((addr) >= (start)) && ((addr) < (start)+(size))) + +/* Does given address belongs to the specified named `module'? */ +#define MX51_IS_MODULE(addr, module)			       \ +	ADDRESS_IN_REGION(addr, MX51_ ## module ## _BASE_ADDR, \ +				MX51_ ## module ## _SIZE) +/* + * This macro defines the physical to virtual address mapping for all the + * peripheral modules. It is used by passing in the physical address as x + * and returning the virtual address. If the physical address is not mapped, + * it returns 0xDEADBEEF + */ + +#define MX51_IO_ADDRESS(x)					\ +	(void __iomem *)					\ +	(MX51_IS_MODULE(x, IRAM) ? MX51_IRAM_IO_ADDRESS(x) :	\ +	MX51_IS_MODULE(x, DEBUG) ? MX51_DEBUG_IO_ADDRESS(x) :	\ +	MX51_IS_MODULE(x, SPBA0) ? MX51_SPBA0_IO_ADDRESS(x) :	\ +	MX51_IS_MODULE(x, AIPS1) ? MX51_AIPS1_IO_ADDRESS(x) :	\ +	MX51_IS_MODULE(x, AIPS2) ? MX51_AIPS2_IO_ADDRESS(x) : \ +	0xDEADBEEF) + +/* + * define the address mapping macros: in physical address order + */ +#define MX51_IRAM_IO_ADDRESS(x)  \ +	(((x) - MX51_IRAM_BASE_ADDR) + MX51_IRAM_BASE_ADDR_VIRT) + +#define MX51_DEBUG_IO_ADDRESS(x)  \ +	(((x) - MX51_DEBUG_BASE_ADDR) + MX51_DEBUG_BASE_ADDR_VIRT) + +#define MX51_SPBA0_IO_ADDRESS(x)  \ +	(((x) - MX51_SPBA0_BASE_ADDR) + MX51_SPBA0_BASE_ADDR_VIRT) + +#define MX51_AIPS1_IO_ADDRESS(x)  \ +	(((x) - MX51_AIPS1_BASE_ADDR) + MX51_AIPS1_BASE_ADDR_VIRT) + +#define MX51_AIPS2_IO_ADDRESS(x)  \ +	(((x) - MX51_AIPS2_BASE_ADDR) + MX51_AIPS2_BASE_ADDR_VIRT) + +#define MX51_IS_MEM_DEVICE_NONSHARED(x)		0 + +/* + * DMA request assignments + */ +#define MX51_DMA_REQ_SSI3_TX1	47 +#define MX51_DMA_REQ_SSI3_RX1	46 +#define MX51_DMA_REQ_SPDIF	45 +#define MX51_DMA_REQ_UART3_TX	44 +#define MX51_DMA_REQ_UART3_RX	43 +#define MX51_DMA_REQ_SLIM_B_TX	42 +#define MX51_DMA_REQ_SDHC4	41 +#define MX51_DMA_REQ_SDHC3	40 +#define MX51_DMA_REQ_CSPI_TX	39 +#define MX51_DMA_REQ_CSPI_RX	38 +#define MX51_DMA_REQ_SSI3_TX2	37 +#define MX51_DMA_REQ_IPU	36 +#define MX51_DMA_REQ_SSI3_RX2	35 +#define MX51_DMA_REQ_EPIT2	34 +#define MX51_DMA_REQ_CTI2_1	33 +#define MX51_DMA_REQ_EMI_WR	32 +#define MX51_DMA_REQ_CTI2_0	31 +#define MX51_DMA_REQ_EMI_RD	30 +#define MX51_DMA_REQ_SSI1_TX1	29 +#define MX51_DMA_REQ_SSI1_RX1	28 +#define MX51_DMA_REQ_SSI1_TX2	27 +#define MX51_DMA_REQ_SSI1_RX2	26 +#define MX51_DMA_REQ_SSI2_TX1	25 +#define MX51_DMA_REQ_SSI2_RX1	24 +#define MX51_DMA_REQ_SSI2_TX2	23 +#define MX51_DMA_REQ_SSI2_RX2	22 +#define MX51_DMA_REQ_SDHC2	21 +#define MX51_DMA_REQ_SDHC1	20 +#define MX51_DMA_REQ_UART1_TX	19 +#define MX51_DMA_REQ_UART1_RX	18 +#define MX51_DMA_REQ_UART2_TX	17 +#define MX51_DMA_REQ_UART2_RX	16 +#define MX51_DMA_REQ_GPU	15 +#define MX51_DMA_REQ_EXTREQ1	14 +#define MX51_DMA_REQ_FIRI_TX	13 +#define MX51_DMA_REQ_FIRI_RX	12 +#define MX51_DMA_REQ_HS_I2C_RX	11 +#define MX51_DMA_REQ_HS_I2C_TX	10 +#define MX51_DMA_REQ_CSPI2_TX	9 +#define MX51_DMA_REQ_CSPI2_RX	8 +#define MX51_DMA_REQ_CSPI1_TX	7 +#define MX51_DMA_REQ_CSPI1_RX	6 +#define MX51_DMA_REQ_SLIM_B	5 +#define MX51_DMA_REQ_ATA_TX_END	4 +#define MX51_DMA_REQ_ATA_TX	3 +#define MX51_DMA_REQ_ATA_RX	2 +#define MX51_DMA_REQ_GPC	1 +#define MX51_DMA_REQ_VPU	0 + +/* + * Interrupt numbers + */ +#define MX51_MXC_INT_BASE	0 +#define MX51_MXC_INT_RESV0	0 +#define MX51_MXC_INT_MMC_SDHC1	1 +#define MX51_MXC_INT_MMC_SDHC2	2 +#define MX51_MXC_INT_MMC_SDHC3	3 +#define MX51_MXC_INT_MMC_SDHC4	4 +#define MX51_MXC_INT_RESV5	5 +#define MX51_MXC_INT_SDMA	6 +#define MX51_MXC_INT_IOMUX	7 +#define MX51_MXC_INT_NFC	8 +#define MX51_MXC_INT_VPU	9 +#define MX51_MXC_INT_IPU_ERR	10 +#define MX51_MXC_INT_IPU_SYN	11 +#define MX51_MXC_INT_GPU	12 +#define MX51_MXC_INT_RESV13	13 +#define MX51_MXC_INT_USB_H1	14 +#define MX51_MXC_INT_EMI	15 +#define MX51_MXC_INT_USB_H2	16 +#define MX51_MXC_INT_USB_H3	17 +#define MX51_MXC_INT_USB_OTG	18 +#define MX51_MXC_INT_SAHARA_H0	19 +#define MX51_MXC_INT_SAHARA_H1	20 +#define MX51_MXC_INT_SCC_SMN	21 +#define MX51_MXC_INT_SCC_STZ	22 +#define MX51_MXC_INT_SCC_SCM	23 +#define MX51_MXC_INT_SRTC_NTZ	24 +#define MX51_MXC_INT_SRTC_TZ	25 +#define MX51_MXC_INT_RTIC	26 +#define MX51_MXC_INT_CSU	27 +#define MX51_MXC_INT_SLIM_B	28 +#define MX51_MXC_INT_SSI1	29 +#define MX51_MXC_INT_SSI2	30 +#define MX51_MXC_INT_UART1	31 +#define MX51_MXC_INT_UART2	32 +#define MX51_MXC_INT_UART3	33 +#define MX51_MXC_INT_RESV34	34 +#define MX51_MXC_INT_RESV35	35 +#define MX51_MXC_INT_CSPI1	36 +#define MX51_MXC_INT_CSPI2	37 +#define MX51_MXC_INT_CSPI	38 +#define MX51_MXC_INT_GPT	39 +#define MX51_MXC_INT_EPIT1	40 +#define MX51_MXC_INT_EPIT2	41 +#define MX51_MXC_INT_GPIO1_INT7	42 +#define MX51_MXC_INT_GPIO1_INT6	43 +#define MX51_MXC_INT_GPIO1_INT5	44 +#define MX51_MXC_INT_GPIO1_INT4	45 +#define MX51_MXC_INT_GPIO1_INT3	46 +#define MX51_MXC_INT_GPIO1_INT2	47 +#define MX51_MXC_INT_GPIO1_INT1	48 +#define MX51_MXC_INT_GPIO1_INT0	49 +#define MX51_MXC_INT_GPIO1_LOW	50 +#define MX51_MXC_INT_GPIO1_HIGH	51 +#define MX51_MXC_INT_GPIO2_LOW	52 +#define MX51_MXC_INT_GPIO2_HIGH	53 +#define MX51_MXC_INT_GPIO3_LOW	54 +#define MX51_MXC_INT_GPIO3_HIGH	55 +#define MX51_MXC_INT_GPIO4_LOW	56 +#define MX51_MXC_INT_GPIO4_HIGH	57 +#define MX51_MXC_INT_WDOG1	58 +#define MX51_MXC_INT_WDOG2	59 +#define MX51_MXC_INT_KPP	60 +#define MX51_MXC_INT_PWM1	61 +#define MX51_MXC_INT_I2C1	62 +#define MX51_MXC_INT_I2C2	63 +#define MX51_MXC_INT_HS_I2C	64 +#define MX51_MXC_INT_RESV65	65 +#define MX51_MXC_INT_RESV66	66 +#define MX51_MXC_INT_SIM_IPB	67 +#define MX51_MXC_INT_SIM_DAT	68 +#define MX51_MXC_INT_IIM	69 +#define MX51_MXC_INT_ATA	70 +#define MX51_MXC_INT_CCM1	71 +#define MX51_MXC_INT_CCM2	72 +#define MX51_MXC_INT_GPC1	73 +#define MX51_MXC_INT_GPC2	74 +#define MX51_MXC_INT_SRC	75 +#define MX51_MXC_INT_NM		76 +#define MX51_MXC_INT_PMU	77 +#define MX51_MXC_INT_CTI_IRQ	78 +#define MX51_MXC_INT_CTI1_TG0	79 +#define MX51_MXC_INT_CTI1_TG1	80 +#define MX51_MXC_INT_MCG_ERR	81 +#define MX51_MXC_INT_MCG_TMR	82 +#define MX51_MXC_INT_MCG_FUNC	83 +#define MX51_MXC_INT_GPU2_IRQ	84 +#define MX51_MXC_INT_GPU2_BUSY	85 +#define MX51_MXC_INT_RESV86	86 +#define MX51_MXC_INT_FEC	87 +#define MX51_MXC_INT_OWIRE	88 +#define MX51_MXC_INT_CTI1_TG2	89 +#define MX51_MXC_INT_SJC	90 +#define MX51_MXC_INT_SPDIF	91 +#define MX51_MXC_INT_TVE	92 +#define MX51_MXC_INT_FIRI	93 +#define MX51_MXC_INT_PWM2	94 +#define MX51_MXC_INT_SLIM_EXP	95 +#define MX51_MXC_INT_SSI3	96 +#define MX51_MXC_INT_EMI_BOOT	97 +#define MX51_MXC_INT_CTI1_TG3	98 +#define MX51_MXC_INT_SMC_RX	99 +#define MX51_MXC_INT_VPU_IDLE	100 +#define MX51_MXC_INT_EMI_NFC	101 +#define MX51_MXC_INT_GPU_IDLE	102 + +/* silicon revisions specific to i.MX51 */ +#define MX51_CHIP_REV_1_0	0x10 +#define MX51_CHIP_REV_1_1	0x11 +#define MX51_CHIP_REV_1_2	0x12 +#define MX51_CHIP_REV_1_3	0x13 +#define MX51_CHIP_REV_2_0	0x20 +#define MX51_CHIP_REV_2_1	0x21 +#define MX51_CHIP_REV_2_2	0x22 +#define MX51_CHIP_REV_2_3	0x23 +#define MX51_CHIP_REV_3_0	0x30 +#define MX51_CHIP_REV_3_1	0x31 +#define MX51_CHIP_REV_3_2	0x32 + +/* Mandatory defines used globally */ + +#if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) + +extern int mx51_revision(void); +#endif + +#endif	/*  __ASM_ARCH_MXC_MX51_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/mxc.h b/arch/arm/plat-mxc/include/mach/mxc.h index 51990536b84..a790bf21297 100644 --- a/arch/arm/plat-mxc/include/mach/mxc.h +++ b/arch/arm/plat-mxc/include/mach/mxc.h @@ -30,6 +30,7 @@  #define MXC_CPU_MX27		27  #define MXC_CPU_MX31		31  #define MXC_CPU_MX35		35 +#define MXC_CPU_MX51		51  #define MXC_CPU_MXC91231	91231  #ifndef __ASSEMBLY__ @@ -108,6 +109,18 @@ extern unsigned int __mxc_cpu_type;  # define cpu_is_mx35()		(0)  #endif +#ifdef CONFIG_ARCH_MX5 +# ifdef mxc_cpu_type +#  undef mxc_cpu_type +#  define mxc_cpu_type __mxc_cpu_type +# else +#  define mxc_cpu_type MXC_CPU_MX51 +# endif +# define cpu_is_mx51()		(mxc_cpu_type == MXC_CPU_MX51) +#else +# define cpu_is_mx51()		(0) +#endif +  #ifdef CONFIG_ARCH_MXC91231  # ifdef mxc_cpu_type  #  undef mxc_cpu_type @@ -121,9 +134,10 @@ extern unsigned int __mxc_cpu_type;  #endif  #if defined(CONFIG_ARCH_MX3) || defined(CONFIG_ARCH_MX2) -#define CSCR_U(n) (IO_ADDRESS(WEIM_BASE_ADDR) + n * 0x10) -#define CSCR_L(n) (IO_ADDRESS(WEIM_BASE_ADDR) + n * 0x10 + 0x4) -#define CSCR_A(n) (IO_ADDRESS(WEIM_BASE_ADDR) + n * 0x10 + 0x8) +/* These are deprecated, use mx[23][157]_setup_weimcs instead. */ +#define CSCR_U(n) (IO_ADDRESS(WEIM_BASE_ADDR + n * 0x10)) +#define CSCR_L(n) (IO_ADDRESS(WEIM_BASE_ADDR + n * 0x10 + 0x4)) +#define CSCR_A(n) (IO_ADDRESS(WEIM_BASE_ADDR + n * 0x10 + 0x8))  #endif  #define cpu_is_mx3()	(cpu_is_mx31() || cpu_is_mx35() || cpu_is_mxc91231()) diff --git a/arch/arm/plat-mxc/include/mach/mxc91231.h b/arch/arm/plat-mxc/include/mach/mxc91231.h index 81484d1ef23..5182b986b78 100644 --- a/arch/arm/plat-mxc/include/mach/mxc91231.h +++ b/arch/arm/plat-mxc/include/mach/mxc91231.h @@ -184,60 +184,22 @@  #define MXC91231_CS4_BASE_ADDR		0xB4000000  #define MXC91231_CS5_BASE_ADDR		0xB6000000 -/* Is given address belongs to the specified memory region? */ -#define ADDRESS_IN_REGION(addr, start, size) \ -	(((addr) >= (start)) && ((addr) < (start)+(size))) - -/* Is given address belongs to the specified named `module'? */ -#define MXC91231_IS_MODULE(addr, module) \ -	ADDRESS_IN_REGION(addr, MXC91231_ ## module ## _BASE_ADDR, \ -	                        MXC91231_ ## module ## _SIZE)  /*   * This macro defines the physical to virtual address mapping for all the   * peripheral modules. It is used by passing in the physical address as x   * and returning the virtual address. If the physical address is not mapped, - * it returns 0xDEADBEEF - */ - -#define MXC91231_IO_ADDRESS(x) \ -	(void __iomem *) \ -	(MXC91231_IS_MODULE(x, L2CC) ? MXC91231_L2CC_IO_ADDRESS(x) : \ -	 MXC91231_IS_MODULE(x, AIPS1) ? MXC91231_AIPS1_IO_ADDRESS(x) : \ -	 MXC91231_IS_MODULE(x, AIPS2) ? MXC91231_AIPS2_IO_ADDRESS(x) : \ -	 MXC91231_IS_MODULE(x, SPBA0) ? MXC91231_SPBA0_IO_ADDRESS(x) : \ -	 MXC91231_IS_MODULE(x, SPBA1) ? MXC91231_SPBA1_IO_ADDRESS(x) : \ -	 MXC91231_IS_MODULE(x, ROMP) ? MXC91231_ROMP_IO_ADDRESS(x) : \ -	 MXC91231_IS_MODULE(x, AVIC) ? MXC91231_AVIC_IO_ADDRESS(x) : \ -	 MXC91231_IS_MODULE(x, X_MEMC) ? MXC91231_X_MEMC_IO_ADDRESS(x) : \ -	 0xDEADBEEF) - - -/* - * define the address mapping macros: in physical address order + * it returns 0.   */ -#define MXC91231_L2CC_IO_ADDRESS(x)  \ -	(((x) - MXC91231_L2CC_BASE_ADDR) + MXC91231_L2CC_BASE_ADDR_VIRT) - -#define MXC91231_AIPS1_IO_ADDRESS(x)  \ -	(((x) - MXC91231_AIPS1_BASE_ADDR) + MXC91231_AIPS1_BASE_ADDR_VIRT) - -#define MXC91231_SPBA0_IO_ADDRESS(x)  \ -	(((x) - MXC91231_SPBA0_BASE_ADDR) + MXC91231_SPBA0_BASE_ADDR_VIRT) - -#define MXC91231_SPBA1_IO_ADDRESS(x)  \ -	(((x) - MXC91231_SPBA1_BASE_ADDR) + MXC91231_SPBA1_BASE_ADDR_VIRT) - -#define MXC91231_AIPS2_IO_ADDRESS(x)  \ -	(((x) - MXC91231_AIPS2_BASE_ADDR) + MXC91231_AIPS2_BASE_ADDR_VIRT) - -#define MXC91231_ROMP_IO_ADDRESS(x)  \ -	(((x) - MXC91231_ROMP_BASE_ADDR) + MXC91231_ROMP_BASE_ADDR_VIRT) - -#define MXC91231_AVIC_IO_ADDRESS(x)  \ -	(((x) - MXC91231_AVIC_BASE_ADDR) + MXC91231_AVIC_BASE_ADDR_VIRT) -#define MXC91231_X_MEMC_IO_ADDRESS(x)  \ -	(((x) - MXC91231_X_MEMC_BASE_ADDR) + MXC91231_X_MEMC_BASE_ADDR_VIRT) +#define MXC91231_IO_ADDRESS(x) (					\ +	IMX_IO_ADDRESS(x, MXC91231_L2CC) ?:				\ +	IMX_IO_ADDRESS(x, MXC91231_X_MEMC) ?:				\ +	IMX_IO_ADDRESS(x, MXC91231_ROMP) ?:				\ +	IMX_IO_ADDRESS(x, MXC91231_AVIC) ?:				\ +	IMX_IO_ADDRESS(x, MXC91231_AIPS1) ?:				\ +	IMX_IO_ADDRESS(x, MXC91231_SPBA0) ?:				\ +	IMX_IO_ADDRESS(x, MXC91231_SPBA1) ?:				\ +	IMX_IO_ADDRESS(x, MXC91231_AIPS2))  /*   * Interrupt numbers diff --git a/arch/arm/plat-mxc/include/mach/mxc_ehci.h b/arch/arm/plat-mxc/include/mach/mxc_ehci.h index 8f796239393..4b9b8368c0c 100644 --- a/arch/arm/plat-mxc/include/mach/mxc_ehci.h +++ b/arch/arm/plat-mxc/include/mach/mxc_ehci.h @@ -22,6 +22,10 @@  #define MXC_EHCI_POWER_PINS_ENABLED	(1 << 5)  #define MXC_EHCI_TTL_ENABLED		(1 << 6) +#define MXC_EHCI_INTERNAL_PHY		(1 << 7) +#define MXC_EHCI_IPPUE_DOWN		(1 << 8) +#define MXC_EHCI_IPPUE_UP		(1 << 9) +  struct mxc_usbh_platform_data {  	int (*init)(struct platform_device *pdev);  	int (*exit)(struct platform_device *pdev); diff --git a/arch/arm/plat-mxc/include/mach/ssi.h b/arch/arm/plat-mxc/include/mach/ssi.h new file mode 100644 index 00000000000..c34ded523f1 --- /dev/null +++ b/arch/arm/plat-mxc/include/mach/ssi.h @@ -0,0 +1,18 @@ +#ifndef __MACH_SSI_H +#define __MACH_SSI_H + +struct snd_ac97; + +extern unsigned char imx_ssi_fiq_start, imx_ssi_fiq_end; +extern unsigned long imx_ssi_fiq_base, imx_ssi_fiq_tx_buffer, imx_ssi_fiq_rx_buffer; + +struct imx_ssi_platform_data { +	unsigned int flags; +#define IMX_SSI_DMA            (1 << 0) +#define IMX_SSI_USE_AC97       (1 << 1) +	void (*ac97_reset) (struct snd_ac97 *ac97); +	void (*ac97_warm_reset)(struct snd_ac97 *ac97); +}; + +#endif /* __MACH_SSI_H */ + diff --git a/arch/arm/plat-mxc/include/mach/timex.h b/arch/arm/plat-mxc/include/mach/timex.h index 527a6c24788..024416ed11c 100644 --- a/arch/arm/plat-mxc/include/mach/timex.h +++ b/arch/arm/plat-mxc/include/mach/timex.h @@ -28,6 +28,8 @@  #define CLOCK_TICK_RATE		16625000  #elif defined CONFIG_ARCH_MX25  #define CLOCK_TICK_RATE		16000000 +#elif defined CONFIG_ARCH_MX5 +#define CLOCK_TICK_RATE		8000000  #elif defined CONFIG_ARCH_MXC91231  #define CLOCK_TICK_RATE		13000000  #endif diff --git a/arch/arm/plat-mxc/include/mach/uncompress.h b/arch/arm/plat-mxc/include/mach/uncompress.h index d49384cb1e9..b6d3d0fddc4 100644 --- a/arch/arm/plat-mxc/include/mach/uncompress.h +++ b/arch/arm/plat-mxc/include/mach/uncompress.h @@ -1,8 +1,6 @@  /*   *  arch/arm/plat-mxc/include/mach/uncompress.h   * - * - *   *  Copyright (C) 1999 ARM Limited   *  Copyright (C) Shane Nay (shane@minirl.com)   * @@ -25,7 +23,6 @@  #define __MXC_BOOT_UNCOMPRESS -#include <mach/hardware.h>  #include <asm/mach-types.h>  static unsigned long uart_base; @@ -69,6 +66,7 @@ static inline void flush(void)  #define MX2X_UART1_BASE_ADDR	0x1000a000  #define MX3X_UART1_BASE_ADDR	0x43F90000  #define MX3X_UART2_BASE_ADDR	0x43F94000 +#define MX51_UART1_BASE_ADDR	0x73fbc000  static __inline__ void __arch_decomp_setup(unsigned long arch_id)  { @@ -104,6 +102,9 @@ static __inline__ void __arch_decomp_setup(unsigned long arch_id)  	case MACH_TYPE_MAGX_ZN5:  		uart_base = MX3X_UART2_BASE_ADDR;  		break; +	case MACH_TYPE_MX51_BABBAGE: +		uart_base = MX51_UART1_BASE_ADDR; +		break;  	default:  		break;  	}  |