blob: bebaf565715eb07bde2f00c4584bdd18bf466c24 [file] [log] [blame]
/*
* (C) Copyright 2010 Juergen Beisert - Pengutronix
*
* 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.
*/
/* 3322222222221111111111
* 10987654321098765432109876543210
* ^^^_ Register Number
* ^^^^____ Bit offset
* ^^________ Function
* ^__________ Drive strength feature present
* ^___________ Pull up / bit keeper present
* ^^____________ Drive strength setting
* ^______________ Pull up / bit keeper setting
* ^_______________ Voltage select present
* ^________________ Voltage selection
* ^____________________ direction if enabled as GPIO (1 = output)
* ^_____________________ initial output value if enabled as GPIO and configured as output
*/
#ifndef __ASM_MACH_IOMUX_H
#define __ASM_MACH_IOMUX_H
/* control pad's function */
#define FBIT_SHIFT (3)
#define PORTF(bank,bit) (((bit) << FBIT_SHIFT) | (bank))
#define GET_PORTF(x) ((x) & 0x7)
#define GET_FBITPOS(x) (((x) >> FBIT_SHIFT) & 0xf)
#define GET_GPIO_NO(x) ((GET_PORTF(x) << 4) + GET_FBITPOS(m))
#define FUNC_SHIFT 7
#define FUNC(x) ((x) << FUNC_SHIFT)
#define GET_FUNC(x) (((x) >> FUNC_SHIFT) & 3)
#define IS_GPIO (3)
/* control pad's GPIO feature if enabled */
#define GPIO_OUT (1 << 19)
#define GPIO_VALUE(x) ((x) << 20)
#define GPIO_IN (0 << 19)
#define GET_GPIODIR(x) (!!((x) & (1 << 19)))
#define GET_GPIOVAL(x) (!!((x) & (1 << 20)))
/* control pad's drive strength */
#define SE (1 << 9)
#define SE_PRESENT(x) (!!((x) & SE))
#define STRENGTH(x) ((x) << 11)
#define S4MA 0 /* used to define a 4 mA drive strength */
#define S8MA 1 /* used to define a 8 mA drive strength */
#define S12MA 2 /* used to define a 12 mA drive strength */
#define S16MA 3 /* used to define a 16 mA drive strength, not all pads can drive this current! */
#define GET_STRENGTH(x) (((x) >> 11) & 0x3)
/* control pad's pull up / bit keeper feature */
#define PE (1 << 10)
#define PE_PRESENT(x) (!!((x) & PE))
#define PULLUP(x) ((x) << 13)
#define GET_PULLUP(x) (!!((x) & (1 << 13)))
/* control pad's voltage feature */
#define VE (1 << 14)
#define VE_PRESENT(x) (!!((x) & VE))
#define VE_1_8V (0 << 15)
#define VE_2_5V (0 << 15) /* don't ask my why, RTFM */
#define GET_VOLTAGE(x) (!!((x) & (1 << 15)))
/* Bank 0, pins 0 ... 15, GPIO pins 0 ... 15 */
#define GPMI_D15 (FUNC(0) | PORTF(0, 15) | SE | PE)
#define GPMI_D15_AUART2_TX (FUNC(1) | PORTF(0, 15) | SE | PE)
#define GPMI_D15_GPMI_CE3N (FUNC(2) | PORTF(0, 15) | SE | PE)
#define GPMI_D15_GPIO (FUNC(3) | PORTF(0, 15) | SE | PE)
#define GPMI_D14 (FUNC(0) | PORTF(0, 14) | SE)
#define GPMI_D14_AUART2_RX (FUNC(1) | PORTF(0, 14) | SE)
#define GPMI_D14_GPIO (FUNC(3) | PORTF(0, 14) | SE)
#define GPMI_D13 (FUNC(0) | PORTF(0, 13) | SE)
#define GPMI_D13_LCD_D23 (FUNC(1) | PORTF(0, 13) | SE)
#define GPMI_D13_GPIO (FUNC(3) | PORTF(0, 13) | SE)
#define GPMI_D12 (FUNC(0) | PORTF(0, 12) | SE)
#define GPMI_D12_LCD_D22 (FUNC(1) | PORTF(0, 12) | SE)
#define GPMI_D12_GPIO (FUNC(3) | PORTF(0, 12) | SE)
#define GPMI_D11 (FUNC(0) | PORTF(0, 11) | SE | PE)
#define GPMI_D11_LCD_D21 (FUNC(1) | PORTF(0, 11) | SE | PE)
#define GPMI_D11_SSP1_D7 (FUNC(2) | PORTF(0, 11) | SE | PE)
#define GPMI_D11_GPIO (FUNC(3) | PORTF(0, 11) | SE | PE)
#define GPMI_D10 (FUNC(0) | PORTF(0, 10) | SE | PE)
#define GPMI_D10_LCD_D20 (FUNC(1) | PORTF(0, 10) | SE | PE)
#define GPMI_D10_SSP1_D6 (FUNC(2) | PORTF(0, 10) | SE | PE)
#define GPMI_D10_GPIO (FUNC(3) | PORTF(0, 10) | SE | PE)
#define GPMI_D09 (FUNC(0) | PORTF(0, 9) | SE | PE)
#define GPMI_D09_LCD_D19 (FUNC(1) | PORTF(0, 9) | SE | PE)
#define GPMI_D09_SSP1_D5 (FUNC(2) | PORTF(0, 9) | SE | PE)
#define GPMI_D09_GPIO (FUNC(3) | PORTF(0, 9) | SE | PE)
#define GPMI_D08 (FUNC(0) | PORTF(0, 8) | SE | PE)
#define GPMI_D08_LCD_D18 (FUNC(1) | PORTF(0, 8) | SE | PE)
#define GPMI_D08_SSP1_D4 (FUNC(2) | PORTF(0, 8) | SE | PE)
#define GPMI_D08_GPIO (FUNC(3) | PORTF(0, 8) | SE | PE)
#define GPMI_D07 (FUNC(0) | PORTF(0, 7) | SE | PE)
#define GPMI_D07_LCD_D15 (FUNC(1) | PORTF(0, 7) | SE | PE)
#define GPMI_D07_SSP2_D7 (FUNC(2) | PORTF(0, 7) | SE | PE)
#define GPMI_D07_GPIO (FUNC(3) | PORTF(0, 7) | SE | PE)
#define GPMI_D06 (FUNC(0) | PORTF(0, 6) | SE | PE)
#define GPMI_D06_LCD_D14 (FUNC(1) | PORTF(0, 6) | SE | PE)
#define GPMI_D06_SSP2_D6 (FUNC(2) | PORTF(0, 6) | SE | PE)
#define GPMI_D06_GPIO (FUNC(3) | PORTF(0, 6) | SE | PE)
#define GPMI_D05 (FUNC(0) | PORTF(0, 5) | SE | PE)
#define GPMI_D05_LCD_D13 (FUNC(1) | PORTF(0, 5) | SE | PE)
#define GPMI_D05_SSP2_D5 (FUNC(2) | PORTF(0, 5) | SE | PE)
#define GPMI_D05_GPIO (FUNC(3) | PORTF(0, 5) | SE | PE)
#define GPMI_D04 (FUNC(0) | PORTF(0, 4) | SE | PE)
#define GPMI_D04_LCD_D12 (FUNC(1) | PORTF(0, 4) | SE | PE)
#define GPMI_D04_SSP2_D4 (FUNC(2) | PORTF(0, 4) | SE | PE)
#define GPMI_D04_GPIO (FUNC(3) | PORTF(0, 4) | SE | PE)
#define GPMI_D03 (FUNC(0) | PORTF(0, 3) | SE | PE)
#define GPMI_D03_LCD_D11 (FUNC(1) | PORTF(0, 3) | SE | PE)
#define GPMI_D03_SSP2_D3 (FUNC(2) | PORTF(0, 3) | SE | PE)
#define GPMI_D03_GPIO (FUNC(3) | PORTF(0, 3) | SE | PE)
#define GPMI_D02 (FUNC(0) | PORTF(0, 2) | SE | PE)
#define GPMI_D02_LCD_D10 (FUNC(1) | PORTF(0, 2) | SE | PE)
#define GPMI_D02_SSP2_D2 (FUNC(2) | PORTF(0, 2) | SE | PE)
#define GPMI_D02_GPIO (FUNC(3) | PORTF(0, 2) | SE | PE)
#define GPMI_D01 (FUNC(0) | PORTF(0, 1) | SE | PE)
#define GPMI_D01_LCD_D9 (FUNC(1) | PORTF(0, 1) | SE | PE)
#define GPMI_D01_SSP2_D1 (FUNC(2) | PORTF(0, 1) | SE | PE)
#define GPMI_D01_GPIO (FUNC(3) | PORTF(0, 1) | SE | PE)
#define GPMI_D00 (FUNC(0) | PORTF(0, 0) | SE | PE)
#define GPMI_D00_LCD_D8 (FUNC(1) | PORTF(0, 0) | SE | PE)
#define GPMI_D00_SSP2_D0 (FUNC(2) | PORTF(0, 0) | SE | PE)
#define GPMI_D00_GPIO (FUNC(3) | PORTF(0, 0) | SE | PE)
/* Bank 0, pins 16 ... 31 GPIO pins 16 ... 31 */
#define I2C_SDA (FUNC(0) | PORTF(1, 15) | SE)
#define I2C_SDA_GPMI_CE2N (FUNC(1) | PORTF(1, 15) | SE)
#define I2C_SDA_AUART1_RX (FUNC(2) | PORTF(1, 15) | SE)
#define I2C_SDA_GPIO (FUNC(3) | PORTF(1, 15) | SE)
#define I2C_CLK (FUNC(0) | PORTF(1, 14) | SE | PE)
#define I2C_CLK_GPMI_RDY2 (FUNC(1) | PORTF(1, 14) | SE | PE)
#define I2C_CLK_AUART1_TX (FUNC(2) | PORTF(1, 14) | SE | PE)
#define I2C_CLK_GPIO (FUNC(3) | PORTF(1, 14) | SE | PE)
#define AUART1_TX (FUNC(0) | PORTF(1, 13) | SE | PE)
#define AUART1_TX_SSP1_D7 (FUNC(2) | PORTF(1, 13) | SE | PE)
#define AUART1_TX_GPIO (FUNC(3) | PORTF(1, 13) | SE | PE)
#define AUART1_RX (FUNC(0) | PORTF(1, 12) | SE | PE)
#define AUART1_RX_SSP1_D6 (FUNC(2) | PORTF(1, 12) | SE | PE)
#define AUART1_RX_GPIO (FUNC(3) | PORTF(1, 12) | SE | PE)
#define AUART1_RTS (FUNC(0) | PORTF(1, 11) | SE | PE)
#define AUART1_RTS_SSP1_D5 (FUNC(2) | PORTF(1, 11) | SE | PE)
#define AUART1_RTS_GPIO (FUNC(3) | PORTF(1, 11) | SE | PE)
#define AUART1_CTS (FUNC(0) | PORTF(1, 10) | SE | PE)
#define AUART1_CTS_SSP1_D4 (FUNC(2) | PORTF(1, 10) | SE | PE)
#define AUART1_CTS_GPIO (FUNC(3) | PORTF(1, 10) | SE | PE)
#define GPMI_RDN (FUNC(0) | PORTF(1, 9) | SE)
#define GPMI_RDN_GPIO (FUNC(3) | PORTF(1, 9) | SE)
#define GPMI_WRN (FUNC(0) | PORTF(1, 8) | SE)
#define GPMI_WRN_SSP2_SCK (FUNC(2) | PORTF(1, 8) | SE)
#define GPMI_WRN_GPIO (FUNC(3) | PORTF(1, 8) | SE)
#define GPMI_WPM (FUNC(0) | PORTF(1, 7) | SE)
#define GPMI_WPM_GPIO (FUNC(3) | PORTF(1, 7) | SE)
#define GPMI_RDY3 (FUNC(0) | PORTF(1, 6) | SE | PE)
#define GPMI_RDY3_GPIO (FUNC(3) | PORTF(1, 6) | SE | PE)
#define GPMI_RDY2 (FUNC(0) | PORTF(1, 5) | SE | PE)
#define GPMI_RDY2_GPIO (FUNC(3) | PORTF(1, 5) | SE | PE)
#define GPMI_RDY1 (FUNC(0) | PORTF(1, 4) | SE | PE)
#define GPMI_RDY1_SSP2_CMD (FUNC(2) | PORTF(1, 4) | SE | PE)
#define GPMI_RDY1_GPIO (FUNC(3) | PORTF(1, 4) | SE | PE)
#define GPMI_RDY0 (FUNC(0) | PORTF(1, 3) | SE | PE)
#define GPMI_RDY0_SSP2_DETECT (FUNC(2) | PORTF(1, 3) | SE | PE)
#define GPMI_RDY0_GPIO (FUNC(3) | PORTF(1, 3) | SE | PE)
#define GPMI_CE2N (FUNC(0) | PORTF(1, 2) | SE | PE)
#define GPMI_CE2N_GPIO (FUNC(3) | PORTF(1, 2) | SE | PE)
#define GPMI_ALE (FUNC(0) | PORTF(1, 1) | SE)
#define GPMI_ALE_LCD_D17 (FUNC(1) | PORTF(1, 1) | SE)
#define GPMI_ALE_GPIO (FUNC(3) | PORTF(1, 1) | SE)
#define GPMI_CLE (FUNC(0) | PORTF(1, 0) | SE)
#define GPMI_CLE_LCD_D16 (FUNC(1) | PORTF(1, 1) | SE)
#define GPMI_CLE_GPIO (FUNC(3) | PORTF(1, 0) | SE)
/* Bank 1, pins 0 ... 15 GPIO pins 32 ... 47 */
#define LCD_D15 (FUNC(0) | PORTF(2, 15) | SE)
#define LCD_D15_ETM_DA7 (FUNC(1) | PORTF(2, 15) | SE)
#define LCD_D15_SAIF1_SDATA1 (FUNC(2) | PORTF(2, 15) | SE)
#define LCD_D15_GPIO (FUNC(3) | PORTF(2, 15) | SE)
#define LCD_D14 (FUNC(0) | PORTF(2, 14) | SE)
#define LCD_D14_ETM_DA6 (FUNC(1) | PORTF(2, 14) | SE)
#define LCD_D14_SAIF1_SDATA2 (FUNC(2) | PORTF(2, 14) | SE)
#define LCD_D14_GPIO (FUNC(3) | PORTF(2, 14) | SE)
#define LCD_D13 (FUNC(0) | PORTF(2, 13) | SE)
#define LCD_D13_ETM_DA5 (FUNC(1) | PORTF(2, 13) | SE)
#define LCD_D13_SAIF2_SDATA2 (FUNC(2) | PORTF(2, 13) | SE)
#define LCD_D13_GPIO (FUNC(3) | PORTF(2, 13) | SE)
#define LCD_D12 (FUNC(0) | PORTF(2, 12) | SE)
#define LCD_D12_ETM_DA4 (FUNC(1) | PORTF(2, 12) | SE)
#define LCD_D12_SAIF2_SDATA1 (FUNC(2) | PORTF(2, 12) | SE)
#define LCD_D12_GPIO (FUNC(3) | PORTF(2, 12) | SE)
#define LCD_D11 (FUNC(0) | PORTF(2, 11) | SE)
#define LCD_D11_ETM_DA3 (FUNC(1) | PORTF(2, 11) | SE)
#define LCD_D11_SAIF_LRCLK (FUNC(2) | PORTF(2, 11) | SE)
#define LCD_D11_GPIO (FUNC(3) | PORTF(2, 11) | SE)
#define LCD_D10 (FUNC(0) | PORTF(2, 10) | SE)
#define LCD_D10_ETM_DA2 (FUNC(1) | PORTF(2, 10) | SE)
#define LCD_D10_SAIF_BITCLK (FUNC(2) | PORTF(2, 10) | SE)
#define LCD_D10_GPIO (FUNC(3) | PORTF(2, 10) | SE)
#define LCD_D9 (FUNC(0) | PORTF(2, 9) | SE)
#define LCD_D9_ETM_DA1 (FUNC(1) | PORTF(2, 9) | SE)
#define LCD_D9_SAIF1_SDATA0 (FUNC(2) | PORTF(2, 9) | SE)
#define LCD_D9_GPIO (FUNC(3) | PORTF(2, 9) | SE)
#define LCD_D8 (FUNC(0) | PORTF(2, 8) | SE)
#define LCD_D8_ETM_DA0 (FUNC(1) | PORTF(2, 8) | SE)
#define LCD_D8_SAIF2_SDATA0 (FUNC(2) | PORTF(2, 8) | SE)
#define LCD_D8_GPIO (FUNC(3) | PORTF(2, 8) | SE)
#define LCD_D7 (FUNC(0) | PORTF(2, 7) | SE)
#define LCD_D7_ETM_DA15 (FUNC(1) | PORTF(2, 7) | SE)
#define LCD_D7_GPIO (FUNC(3) | PORTF(2, 7) | SE)
#define LCD_D6 (FUNC(0) | PORTF(2, 6) | SE)
#define LCD_D6_ETM_DA14 (FUNC(1) | PORTF(2, 6) | SE)
#define LCD_D6_GPIO (FUNC(3) | PORTF(2, 6) | SE)
#define LCD_D5 (FUNC(0) | PORTF(2, 5) | SE)
#define LCD_D5_ETM_DA13 (FUNC(1) | PORTF(2, 5) | SE)
#define LCD_D5_GPIO (FUNC(3) | PORTF(2, 5) | SE)
#define LCD_D4 (FUNC(0) | PORTF(2, 4) | SE)
#define LCD_D4_ETM_DA12 (FUNC(1) | PORTF(2, 4) | SE)
#define LCD_D4_GPIO (FUNC(3) | PORTF(2, 4) | SE)
#define LCD_D3 (FUNC(0) | PORTF(2, 3) | SE)
#define LCD_D3_ETM_DA11 (FUNC(1) | PORTF(2, 3) | SE)
#define LCD_D3_GPIO (FUNC(3) | PORTF(2, 3) | SE)
#define LCD_D2 (FUNC(0) | PORTF(2, 2) | SE)
#define LCD_D2_ETM_DA10 (FUNC(1) | PORTF(2, 2) | SE)
#define LCD_D2_GPIO (FUNC(3) | PORTF(2, 2) | SE)
#define LCD_D1 (FUNC(0) | PORTF(2, 1) | SE)
#define LCD_D1_ETM_DA9 (FUNC(1) | PORTF(2, 1) | SE)
#define LCD_D1_GPIO (FUNC(3) | PORTF(2, 1) | SE)
#define LCD_D0 (FUNC(0) | PORTF(2, 0) | SE)
#define LCD_D0_ETM_DA8 (FUNC(1) | PORTF(2, 0) | SE)
#define LCD_D0_GPIO (FUNC(3) | PORTF(2, 0) | SE)
/* Bank 1, pins 16 ... 30 GPIO pins 48 ... 63 */
#define PWM4 (FUNC(0) | PORTF(3, 14) | SE)
#define PWM4_ETM_CLK (FUNC(1) | PORTF(3, 14) | SE)
#define PWM4_AUART1_RTS (FUNC(2) | PORTF(3, 14) | SE)
#define PWM4_GPIO (FUNC(3) | PORTF(3, 14) | SE)
#define PWM3 (FUNC(0) | PORTF(3, 13) | SE)
#define PWM3_ETM_TCTL (FUNC(1) | PORTF(3, 13) | SE)
#define PWM3_AUART1_CTS (FUNC(2) | PORTF(3, 13) | SE)
#define PWM3_GPIO (FUNC(3) | PORTF(3, 13) | SE)
#define PWM2 (FUNC(0) | PORTF(3, 12) | SE | PE)
#define PWM2_GPMI_READY3 (FUNC(1) | PORTF(3, 12) | SE | PE)
#define PWM2_GPIO (FUNC(3) | PORTF(3, 12) | SE | PE)
#define PWM1 (FUNC(0) | PORTF(3, 11) | SE)
#define PWM1_TIMROT2 (FUNC(1) | PORTF(3, 11) | SE)
#define PWM1_DUART_TX (FUNC(2) | PORTF(3, 11) | SE)
#define PWM1_GPIO (FUNC(3) | PORTF(3, 11) | SE)
#define PWM0 (FUNC(0) | PORTF(3, 10) | SE)
#define PWM0_TIMROT1 (FUNC(1) | PORTF(3, 10) | SE)
#define PWM0_DUART_RX (FUNC(2) | PORTF(3, 10) | SE)
#define PWM0_GPIO (FUNC(3) | PORTF(3, 10) | SE)
#define LCD_VSYNC (FUNC(0) | PORTF(3, 9) | SE)
#define LCD_VSYNC_LCD_BUSY (FUNC(1) | PORTF(3, 9) | SE)
#define LCD_VSYNC_GPIO (FUNC(3) | PORTF(3, 9) | SE)
#define LCD_HSYNC (FUNC(0) | PORTF(3, 8) | SE)
#define LCD_HSYNC_I2C_SD (FUNC(1) | PORTF(3, 8) | SE)
#define LCD_HSYNC_GPIO (FUNC(3) | PORTF(3, 8) | SE)
#define LCD_ENABE (FUNC(0) | PORTF(3, 7) | SE)
#define LCD_ENABE_I2C_CLK (FUNC(1) | PORTF(3, 7) | SE)
#define LCD_ENABE_GPIO (FUNC(3) | PORTF(3, 7) | SE)
#define LCD_DOTCLOCK (FUNC(0) | PORTF(3, 6) | SE | PE)
#define LCD_DOTCLOCK_GPMI_READY3 (FUNC(1) | PORTF(3, 6) | SE | PE)
#define LCD_DOTCLOCK_GPIO (FUNC(3) | PORTF(3, 6) | SE | PE)
#define LCD_CS (FUNC(0) | PORTF(3, 5) | SE)
#define LCD_CS_GPIO (FUNC(3) | PORTF(3, 5) | SE)
#define LCD_WR (FUNC(0) | PORTF(3, 4) | SE)
#define LCD_WR_GPIO (FUNC(3) | PORTF(3, 4) | SE)
#define LCD_RS (FUNC(0) | PORTF(3, 3) | SE)
#define LCD_RS_ETM_TCLK (FUNC(1) | PORTF(3, 3) | SE)
#define LCD_RS_GPIO (FUNC(3) | PORTF(3, 3) | SE)
#define LCD_RESET (FUNC(0) | PORTF(3, 2) | SE | PE)
#define LCD_RESET_ETM_TCTL (FUNC(1) | PORTF(3, 2) | SE | PE)
#define LCD_RESET_GPMI_CE3N (FUNC(2) | PORTF(3, 2) | SE | PE)
#define LCD_RESET_GPIO (FUNC(3) | PORTF(3, 2) | SE | PE)
#define LCD_D17 (FUNC(0) | PORTF(3, 1) | SE)
#define LCD_D17_GPIO (FUNC(3) | PORTF(3, 1) | SE)
#define LCD_D16 (FUNC(0) | PORTF(3, 0) | SE)
#define LCD_D16_SAIF_ALT_BITCLK (FUNC(2) | PORTF(3, 0) | SE)
#define LCD_D16_GPIO (FUNC(3) | PORTF(3, 0) | SE)
/* Bank 2, pins 0 ... 15 GPIO pins 64 ... 79 */
#define EMI_A6 (FUNC(0) | PORTF(4, 15) | SE | VE)
#define EMI_A6_GPIO (FUNC(3) | PORTF(4, 15) | SE | VE)
#define EMI_A5 (FUNC(0) | PORTF(4, 14) | SE | VE)
#define EMI_A5_GPIO (FUNC(3) | PORTF(4, 14) | SE | VE)
#define EMI_A4 (FUNC(0) | PORTF(4, 13) | SE | VE)
#define EMI_A4_GPIO (FUNC(3) | PORTF(4, 13) | SE | VE)
#define EMI_A3 (FUNC(0) | PORTF(4, 12) | SE | VE)
#define EMI_A3_GPIO (FUNC(3) | PORTF(4, 12) | SE | VE)
#define EMI_A2 (FUNC(0) | PORTF(4, 11) | SE | VE)
#define EMI_A2_GPIO (FUNC(3) | PORTF(4, 11) | SE | VE)
#define EMI_A1 (FUNC(0) | PORTF(4, 10) | SE | VE)
#define EMI_A1_GPIO (FUNC(3) | PORTF(4, 10) | SE | VE)
#define EMI_A0 (FUNC(0) | PORTF(4, 9) | SE | VE)
#define EMI_A0_GPIO (FUNC(3) | PORTF(4, 9) | SE | VE)
#define ROTARYB (FUNC(0) | PORTF(4, 8) | SE | PE)
#define ROTARYB_AUART2_CTS (FUNC(1) | PORTF(4, 8) | SE | PE)
#define ROTARYB_GPMI_CE3N (FUNC(2) | PORTF(4, 8) | SE | PE)
#define ROTARYB_GPIO (FUNC(3) | PORTF(4, 8) | SE | PE)
#define ROTARYA (FUNC(0) | PORTF(4, 7) | SE)
#define ROTARYA_AUART2_RTS (FUNC(1) | PORTF(4, 7) | SE)
#define ROTARYA_SPDIF (FUNC(2) | PORTF(4, 7) | SE)
#define ROTARYA_GPIO (FUNC(3) | PORTF(4, 7) | SE)
#define SSP1_SCK (FUNC(0) | PORTF(4, 6) | SE)
#define SSP1_SCK_ALT_JTAG_TRST (FUNC(2) | PORTF(4, 6) | SE)
#define SSP1_SCK_GPIO (FUNC(3) | PORTF(4, 6) | SE)
#define SSP1_DATA3 (FUNC(0) | PORTF(4, 5) | SE | PE)
#define SSP1_DATA3_ALT_JTAG_TMS (FUNC(2) | PORTF(4, 5) | SE | PE)
#define SSP1_DATA3_GPIO (FUNC(3) | PORTF(4, 5) | SE | PE)
#define SSP1_DATA2 (FUNC(0) | PORTF(4, 4) | SE | PE)
#define SSP1_DATA2_I2C_SD (FUNC(1) | PORTF(4, 4) | SE | PE)
#define SSP1_DATA2_ALT_JTAG_RTCK (FUNC(2) | PORTF(4, 4) | SE | PE)
#define SSP1_DATA2_GPIO (FUNC(3) | PORTF(4, 4) | SE | PE)
#define SSP1_DATA1 (FUNC(0) | PORTF(4, 3) | SE | PE)
#define SSP1_DATA1_I2C_CLK (FUNC(1) | PORTF(4, 3) | SE | PE)
#define SSP1_DATA1_ALT_JTAG_TCK (FUNC(2) | PORTF(4, 3) | SE | PE)
#define SSP1_DATA1_GPIO (FUNC(3) | PORTF(4, 3) | SE | PE)
#define SSP1_DATA0 (FUNC(0) | PORTF(4, 2) | SE | PE)
#define SSP1_DATA0_ALT_JTAG_TDI (FUNC(2) | PORTF(4, 2) | SE | PE)
#define SSP1_DATA0_GPIO (FUNC(3) | PORTF(4, 2) | SE | PE)
#define SSP1_DETECT (FUNC(0) | PORTF(4, 1) | SE | PE)
#define SSP1_DETECT_GPMI_CE3N (FUNC(1) | PORTF(4, 1) | SE | PE)
#define SSP1_DETECT_USB_ID (FUNC(2) | PORTF(4, 1) | SE | PE)
#define SSP1_DETECT_GPIO (FUNC(3) | PORTF(4, 1) | SE | PE)
#define SSP1_CMD (FUNC(0) | PORTF(4, 0) | SE | PE)
#define SSP1_CMD_JTAG_TDO (FUNC(2) | PORTF(4, 0) | SE | PE)
#define SSP1_CMD_GPIO (FUNC(3) | PORTF(4, 0) | SE | PE)
/* Bank 2, pins 16 ... 31 GPIO pins 80 ... 95 */
#define EMI_WEN (FUNC(0) | PORTF(5, 15) | SE | VE)
#define EMI_WEN_GPIO (FUNC(3) | PORTF(5, 15) | SE | VE)
#define EMI_RASN (FUNC(0) | PORTF(5, 14) | SE | VE)
#define EMI_RASN_GPIO (FUNC(3) | PORTF(5, 14) | SE | VE)
#define EMI_CKE (FUNC(0) | PORTF(5, 13) | SE | VE)
#define EMI_CKE_GPIO (FUNC(3) | PORTF(5, 13) | SE | VE)
#define GPMI_CE0N (FUNC(0) | PORTF(5, 12) | SE)
#define GPMI_CE0N_GPIO (FUNC(3) | PORTF(5, 12) | SE)
#define GPMI_CE1N (FUNC(0) | PORTF(5, 11) | SE | PE)
#define GPMI_CE1N_GPIO (FUNC(3) | PORTF(5, 11) | SE | PE)
#define EMI_CE1N (FUNC(0) | PORTF(5, 10) | SE | VE | PE)
#define EMI_CE1N_GPIO (FUNC(3) | PORTF(5, 10) | SE | VE | PE)
#define EMI_CE0N (FUNC(0) | PORTF(5, 9) | SE | VE)
#define EMI_CE0N_GPIO (FUNC(3) | PORTF(5, 9) | SE | VE)
#define EMI_CASN (FUNC(0) | PORTF(5, 8) | SE | VE)
#define EMI_CASN_GPIO (FUNC(3) | PORTF(5, 8) | SE | VE)
#define EMI_BA1 (FUNC(0) | PORTF(5, 7) | SE | VE)
#define EMI_BA1_GPIO (FUNC(3) | PORTF(5, 7) | SE | VE)
#define EMI_BA0 (FUNC(0) | PORTF(5, 6) | SE | VE)
#define EMI_BA0_GPIO (FUNC(3) | PORTF(5, 6) | SE | VE)
#define EMI_A12 (FUNC(0) | PORTF(5, 5) | SE | VE)
#define EMI_A12_GPIO (FUNC(3) | PORTF(5, 5) | SE | VE)
#define EMI_A11 (FUNC(0) | PORTF(5, 4) | SE | VE)
#define EMI_A11_GPIO (FUNC(3) | PORTF(5, 4) | SE | VE)
#define EMI_A10 (FUNC(0) | PORTF(5, 3) | SE | VE)
#define EMI_A10_GPIO (FUNC(3) | PORTF(5, 3) | SE | VE)
#define EMI_A9 (FUNC(0) | PORTF(5, 2) | SE | VE)
#define EMI_A9_GPIO (FUNC(3) | PORTF(5, 2) | SE | VE)
#define EMI_A8 (FUNC(0) | PORTF(5, 1) | SE | VE)
#define EMI_A8_GPIO (FUNC(3) | PORTF(5, 1) | SE | VE)
#define EMI_A7 (FUNC(0) | PORTF(5, 0) | SE | VE)
#define EMI_A7_GPIO (FUNC(3) | PORTF(5, 0) | SE | VE)
/* Bank 3, pins 0 ... 15 GPIO pins 96 ... 111 */
#define EMI_D15 (FUNC(0) | PORTF(6, 15) | SE | VE | PE)
#define EMI_D15_DISABLED (FUNC(3) | PORTF(6, 15) | SE | VE | PE)
#define EMI_D14 (FUNC(0) | PORTF(6, 14) | SE | VE | PE)
#define EMI_D14_DISABLED (FUNC(3) | PORTF(6, 14) | SE | VE | PE)
#define EMI_D13 (FUNC(0) | PORTF(6, 13) | SE | VE | PE)
#define EMI_D13_DISABLED (FUNC(3) | PORTF(6, 13) | SE | VE | PE)
#define EMI_D12 (FUNC(0) | PORTF(6, 12) | SE | VE | PE)
#define EMI_D12_DISABLED (FUNC(3) | PORTF(6, 12) | SE | VE | PE)
#define EMI_D11 (FUNC(0) | PORTF(6, 11) | SE | VE | PE)
#define EMI_D11_DISABLED (FUNC(3) | PORTF(6, 11) | SE | VE | PE)
#define EMI_D10 (FUNC(0) | PORTF(6, 10) | SE | VE | PE)
#define EMI_D10_DISABLED (FUNC(3) | PORTF(6, 10) | SE | VE | PE)
#define EMI_D9 (FUNC(0) | PORTF(6, 9) | SE | VE | PE)
#define EMI_D9_DISABLED (FUNC(3) | PORTF(6, 9) | SE | VE | PE)
#define EMI_D8 (FUNC(0) | PORTF(6, 8) | SE | VE | PE)
#define EMI_D8_DISABLED (FUNC(3) | PORTF(6, 8) | SE | VE | PE)
#define EMI_D7 (FUNC(0) | PORTF(6, 7) | SE | VE | PE)
#define EMI_D7_DISABLED (FUNC(3) | PORTF(6, 7) | SE | VE | PE)
#define EMI_D6 (FUNC(0) | PORTF(6, 6) | SE | VE | PE)
#define EMI_D6_DISABLED (FUNC(3) | PORTF(6, 6) | SE | VE | PE)
#define EMI_D5 (FUNC(0) | PORTF(6, 5) | SE | VE | PE)
#define EMI_D5_DISABLED (FUNC(3) | PORTF(6, 5) | SE | VE | PE)
#define EMI_D4 (FUNC(0) | PORTF(6, 4) | SE | VE | PE)
#define EMI_D4_DISABLED (FUNC(3) | PORTF(6, 4) | SE | VE | PE)
#define EMI_D3 (FUNC(0) | PORTF(6, 3) | SE | VE | PE)
#define EMI_D3_DISABLED (FUNC(3) | PORTF(6, 3) | SE | VE | PE)
#define EMI_D2 (FUNC(0) | PORTF(6, 2) | SE | VE | PE)
#define EMI_D2_DISABLED (FUNC(3) | PORTF(6, 2) | SE | VE | PE)
#define EMI_D1 (FUNC(0) | PORTF(6, 1) | SE | VE | PE)
#define EMI_D1_DISABLED (FUNC(3) | PORTF(6, 1) | SE | VE | PE)
#define EMI_D0 (FUNC(0) | PORTF(6, 0) | SE | VE | PE)
#define EMI_D0_DISABLED (FUNC(3) | PORTF(6, 0) | SE | VE | PE)
/* Bank 3, pins 16 ... 21 GPIO pins 112 ... 117 */
#define EMI_CLKN (FUNC(0) | PORTF(7, 5) | SE | VE)
#define EMI_CLKN_DISABLED (FUNC(3) | PORTF(7, 5) | SE | VE)
#define EMI_CLK (FUNC(0) | PORTF(7, 4) | SE | VE)
#define EMI_CLK_DISABLED (FUNC(3) | PORTF(7, 4) | SE | VE)
#define EMI_DQS1 (FUNC(0) | PORTF(7, 3) | SE | VE)
#define EMI_DQS1_DISABLED (FUNC(3) | PORTF(7, 3) | SE | VE)
#define EMI_DQS0 (FUNC(0) | PORTF(7, 2) | SE | VE)
#define EMI_DQS0_DISABLED (FUNC(3) | PORTF(7, 2) | SE | VE)
#define EMI_DQM1 (FUNC(0) | PORTF(7, 1) | SE | VE | PE)
#define EMI_DQM1_DISABLED (FUNC(3) | PORTF(7, 1) | SE | VE | PE)
#define EMI_DQM0 (FUNC(0) | PORTF(7, 0) | SE | VE | PE)
#define EMI_DQM0_DISABLED (FUNC(3) | PORTF(7, 0) | SE | VE | PE)
#endif /* __ASM_MACH_IOMUX_H */