/*
 * Copyright (C) ST-Ericsson SA 2010
 *
 * License terms: GNU General Public License, version 2
 * Author: Rabin Vincent <rabin.vincent@stericsson.com>
 */

#ifndef __MACH_PINS_DB8500_H
#define __MACH_PINS_DB8500_H

/*
 * TODO: Eventually encode all non-board specific pull up/down configuration
 * here.
 */

#define GPIO0_GPIO		PIN_CFG(0, GPIO)
#define GPIO0_U0_CTSn		PIN_CFG(0, ALT_A)
#define GPIO0_TRIG_OUT		PIN_CFG(0, ALT_B)
#define GPIO0_IP_TDO		PIN_CFG(0, ALT_C)

#define GPIO1_GPIO		PIN_CFG(1, GPIO)
#define GPIO1_U0_RTSn		PIN_CFG(1, ALT_A)
#define GPIO1_TRIG_IN		PIN_CFG(1, ALT_B)
#define GPIO1_IP_TDI		PIN_CFG(1, ALT_C)

#define GPIO2_GPIO		PIN_CFG(2, GPIO)
#define GPIO2_U0_RXD		PIN_CFG(2, ALT_A)
#define GPIO2_NONE		PIN_CFG(2, ALT_B)
#define GPIO2_IP_TMS		PIN_CFG(2, ALT_C)

#define GPIO3_GPIO		PIN_CFG(3, GPIO)
#define GPIO3_U0_TXD		PIN_CFG(3, ALT_A)
#define GPIO3_NONE		PIN_CFG(3, ALT_B)
#define GPIO3_IP_TCK		PIN_CFG(3, ALT_C)

#define GPIO4_GPIO		PIN_CFG(4, GPIO)
#define GPIO4_U1_RXD		PIN_CFG(4, ALT_A)
#define GPIO4_I2C4_SCL		PIN_CFG(4, ALT_B)
#define GPIO4_IP_TRSTn		PIN_CFG(4, ALT_C)

#define GPIO5_GPIO		PIN_CFG(5, GPIO)
#define GPIO5_U1_TXD		PIN_CFG(5, ALT_A)
#define GPIO5_I2C4_SDA		PIN_CFG(5, ALT_B)
#define GPIO5_IP_GPIO6		PIN_CFG(5, ALT_C)

#define GPIO6_GPIO		PIN_CFG(6, GPIO)
#define GPIO6_U1_CTSn		PIN_CFG(6, ALT_A)
#define GPIO6_I2C1_SCL		PIN_CFG(6, ALT_B)
#define GPIO6_IP_GPIO0		PIN_CFG(6, ALT_C)

#define GPIO7_GPIO		PIN_CFG(7, GPIO)
#define GPIO7_U1_RTSn		PIN_CFG(7, ALT_A)
#define GPIO7_I2C1_SDA		PIN_CFG(7, ALT_B)
#define GPIO7_IP_GPIO1		PIN_CFG(7, ALT_C)

#define GPIO8_GPIO		PIN_CFG(8, GPIO)
#define GPIO8_IPI2C_SDA		PIN_CFG(8, ALT_A)
#define GPIO8_I2C2_SDA		PIN_CFG(8, ALT_B)

#define GPIO9_GPIO		PIN_CFG(9, GPIO)
#define GPIO9_IPI2C_SCL		PIN_CFG(9, ALT_A)
#define GPIO9_I2C2_SCL		PIN_CFG(9, ALT_B)

#define GPIO10_GPIO		PIN_CFG(10, GPIO)
#define GPIO10_IPI2C_SDA	PIN_CFG(10, ALT_A)
#define GPIO10_I2C2_SDA		PIN_CFG(10, ALT_B)
#define GPIO10_IP_GPIO3		PIN_CFG(10, ALT_C)

#define GPIO11_GPIO		PIN_CFG(11, GPIO)
#define GPIO11_IPI2C_SCL	PIN_CFG(11, ALT_A)
#define GPIO11_I2C2_SCL		PIN_CFG(11, ALT_B)
#define GPIO11_IP_GPIO2		PIN_CFG(11, ALT_C)

#define GPIO12_GPIO		PIN_CFG(12, GPIO)
#define GPIO12_MSP0_TXD		PIN_CFG(12, ALT_A)
#define GPIO12_MSP0_RXD		PIN_CFG(12, ALT_B)

#define GPIO13_GPIO		PIN_CFG(13, GPIO)
#define GPIO13_MSP0_TFS		PIN_CFG(13, ALT_A)

#define GPIO14_GPIO		PIN_CFG(14, GPIO)
#define GPIO14_MSP0_TCK		PIN_CFG(14, ALT_A)

#define GPIO15_GPIO		PIN_CFG(15, GPIO)
#define GPIO15_MSP0_RXD		PIN_CFG(15, ALT_A)
#define GPIO15_MSP0_TXD		PIN_CFG(15, ALT_B)

#define GPIO16_GPIO		PIN_CFG(16, GPIO)
#define GPIO16_MSP0_RFS		PIN_CFG(16, ALT_A)
#define GPIO16_I2C1_SCL		PIN_CFG(16, ALT_B)
#define GPIO16_SLIM0_DAT	PIN_CFG(16, ALT_C)

#define GPIO17_GPIO		PIN_CFG(17, GPIO)
#define GPIO17_MSP0_RCK		PIN_CFG(17, ALT_A)
#define GPIO17_I2C1_SDA		PIN_CFG(17, ALT_B)
#define GPIO17_SLIM0_CLK	PIN_CFG(17, ALT_C)

#define GPIO18_GPIO		PIN_CFG(18, GPIO)
#define GPIO18_MC0_CMDDIR	PIN_CFG_INPUT(18, ALT_A, PULLUP)
#define GPIO18_U2_RXD		PIN_CFG(18, ALT_B)
#define GPIO18_MS_IEP		PIN_CFG(18, ALT_C)

#define GPIO19_GPIO		PIN_CFG(19, GPIO)
#define GPIO19_MC0_DAT0DIR	PIN_CFG_INPUT(19, ALT_A, PULLUP)
#define GPIO19_U2_TXD		PIN_CFG(19, ALT_B)
#define GPIO19_MS_DAT0DIR	PIN_CFG(19, ALT_C)

#define GPIO20_GPIO		PIN_CFG(20, GPIO)
#define GPIO20_MC0_DAT2DIR	PIN_CFG_INPUT(20, ALT_A, PULLUP)
#define GPIO20_UARTMOD_TXD	PIN_CFG(20, ALT_B)
#define GPIO20_IP_TRIGOUT	PIN_CFG(20, ALT_C)

#define GPIO21_GPIO		PIN_CFG(21, GPIO)
#define GPIO21_MC0_DAT31DIR	PIN_CFG_INPUT(21, ALT_A, PULLUP)
#define GPIO21_MSP0_SCK		PIN_CFG(21, ALT_B)
#define GPIO21_MS_DAT31DIR	PIN_CFG(21, ALT_C)

#define GPIO22_GPIO		PIN_CFG(22, GPIO)
#define GPIO22_MC0_FBCLK	PIN_CFG_INPUT(22, ALT_A, PULLUP)
#define GPIO22_UARTMOD_RXD	PIN_CFG(22, ALT_B)
#define GPIO22_MS_FBCLK		PIN_CFG(22, ALT_C)

#define GPIO23_GPIO		PIN_CFG(23, GPIO)
#define GPIO23_MC0_CLK		PIN_CFG_INPUT(23, ALT_A, PULLUP)
#define GPIO23_STMMOD_CLK	PIN_CFG(23, ALT_B)
#define GPIO23_MS_CLK		PIN_CFG(23, ALT_C)

#define GPIO24_GPIO		PIN_CFG(24, GPIO)
#define GPIO24_MC0_CMD		PIN_CFG_INPUT(24, ALT_A, PULLUP)
#define GPIO24_UARTMOD_RXD	PIN_CFG(24, ALT_B)
#define GPIO24_MS_BS		PIN_CFG(24, ALT_C)

#define GPIO25_GPIO		PIN_CFG(25, GPIO)
#define GPIO25_MC0_DAT0		PIN_CFG_INPUT(25, ALT_A, PULLUP)
#define GPIO25_STMMOD_DAT0	PIN_CFG(25, ALT_B)
#define GPIO25_MS_DAT0		PIN_CFG(25, ALT_C)

#define GPIO26_GPIO		PIN_CFG(26, GPIO)
#define GPIO26_MC0_DAT1		PIN_CFG_INPUT(26, ALT_A, PULLUP)
#define GPIO26_STMMOD_DAT1	PIN_CFG(26, ALT_B)
#define GPIO26_MS_DAT1		PIN_CFG(26, ALT_C)

#define GPIO27_GPIO		PIN_CFG(27, GPIO)
#define GPIO27_MC0_DAT2		PIN_CFG_INPUT(27, ALT_A, PULLUP)
#define GPIO27_STMMOD_DAT2	PIN_CFG(27, ALT_B)
#define GPIO27_MS_DAT2		PIN_CFG(27, ALT_C)

#define GPIO28_GPIO		PIN_CFG(28, GPIO)
#define GPIO28_MC0_DAT3		PIN_CFG_INPUT(28, ALT_A, PULLUP)
#define GPIO28_STMMOD_DAT3	PIN_CFG(28, ALT_B)
#define GPIO28_MS_DAT3		PIN_CFG(28, ALT_C)

#define GPIO29_GPIO		PIN_CFG(29, GPIO)
#define GPIO29_MC0_DAT4		PIN_CFG(29, ALT_A)
#define GPIO29_SPI3_CLK		PIN_CFG(29, ALT_B)
#define GPIO29_U2_RXD		PIN_CFG(29, ALT_C)

#define GPIO30_GPIO		PIN_CFG(30, GPIO)
#define GPIO30_MC0_DAT5		PIN_CFG(30, ALT_A)
#define GPIO30_SPI3_RXD		PIN_CFG(30, ALT_B)
#define GPIO30_U2_TXD		PIN_CFG(30, ALT_C)

#define GPIO31_GPIO		PIN_CFG(31, GPIO)
#define GPIO31_MC0_DAT6		PIN_CFG(31, ALT_A)
#define GPIO31_SPI3_FRM		PIN_CFG(31, ALT_B)
#define GPIO31_U2_CTSn		PIN_CFG(31, ALT_C)

#define GPIO32_GPIO		PIN_CFG(32, GPIO)
#define GPIO32_MC0_DAT7		PIN_CFG(32, ALT_A)
#define GPIO32_SPI3_TXD		PIN_CFG(32, ALT_B)
#define GPIO32_U2_RTSn		PIN_CFG(32, ALT_C)

#define GPIO33_GPIO		PIN_CFG(33, GPIO)
#define GPIO33_MSP1_TXD		PIN_CFG(33, ALT_A)
#define GPIO33_MSP1_RXD		PIN_CFG(33, ALT_B)
#define GPIO33_U0_DTRn		PIN_CFG(33, ALT_C)

#define GPIO34_GPIO		PIN_CFG(34, GPIO)
#define GPIO34_MSP1_TFS		PIN_CFG(34, ALT_A)
#define GPIO34_NONE		PIN_CFG(34, ALT_B)
#define GPIO34_U0_DCDn		PIN_CFG(34, ALT_C)

#define GPIO35_GPIO		PIN_CFG(35, GPIO)
#define GPIO35_MSP1_TCK		PIN_CFG(35, ALT_A)
#define GPIO35_NONE		PIN_CFG(35, ALT_B)
#define GPIO35_U0_DSRn		PIN_CFG(35, ALT_C)

#define GPIO36_GPIO		PIN_CFG(36, GPIO)
#define GPIO36_MSP1_RXD		PIN_CFG(36, ALT_A)
#define GPIO36_MSP1_TXD		PIN_CFG(36, ALT_B)
#define GPIO36_U0_RIn		PIN_CFG(36, ALT_C)

#define GPIO64_GPIO		PIN_CFG(64, GPIO)
#define GPIO64_LCDB_DE		PIN_CFG(64, ALT_A)
#define GPIO64_KP_O1		PIN_CFG(64, ALT_B)
#define GPIO64_IP_GPIO4		PIN_CFG(64, ALT_C)

#define GPIO65_GPIO		PIN_CFG(65, GPIO)
#define GPIO65_LCDB_HSO		PIN_CFG(65, ALT_A)
#define GPIO65_KP_O0		PIN_CFG(65, ALT_B)
#define GPIO65_IP_GPIO5		PIN_CFG(65, ALT_C)

#define GPIO66_GPIO		PIN_CFG(66, GPIO)
#define GPIO66_LCDB_VSO		PIN_CFG(66, ALT_A)
#define GPIO66_KP_I1		PIN_CFG(66, ALT_B)
#define GPIO66_IP_GPIO6		PIN_CFG(66, ALT_C)

#define GPIO67_GPIO		PIN_CFG(67, GPIO)
#define GPIO67_LCDB_CLK		PIN_CFG(67, ALT_A)
#define GPIO67_KP_I0		PIN_CFG(67, ALT_B)
#define GPIO67_IP_GPIO7		PIN_CFG(67, ALT_C)

#define GPIO68_GPIO		PIN_CFG(68, GPIO)
#define GPIO68_LCD_VSI0		PIN_CFG(68, ALT_A)
#define GPIO68_KP_O7		PIN_CFG(68, ALT_B)
#define GPIO68_SM_CLE		PIN_CFG(68, ALT_C)

#define GPIO69_GPIO		PIN_CFG(69, GPIO)
#define GPIO69_LCD_VSI1		PIN_CFG(69, ALT_A)
#define GPIO69_KP_I7		PIN_CFG(69, ALT_B)
#define GPIO69_SM_ALE		PIN_CFG(69, ALT_C)

#define GPIO70_GPIO		PIN_CFG(70, GPIO)
#define GPIO70_LCD_D0		PIN_CFG(70, ALT_A)
#define GPIO70_KP_O5		PIN_CFG(70, ALT_B)
#define GPIO70_STMAPE_CLK	PIN_CFG(70, ALT_C)

#define GPIO71_GPIO		PIN_CFG(71, GPIO)
#define GPIO71_LCD_D1		PIN_CFG(71, ALT_A)
#define GPIO71_KP_O4		PIN_CFG(71, ALT_B)
#define GPIO71_STMAPE_DAT3	PIN_CFG(71, ALT_C)

#define GPIO72_GPIO		PIN_CFG(72, GPIO)
#define GPIO72_LCD_D2		PIN_CFG(72, ALT_A)
#define GPIO72_KP_O3		PIN_CFG(72, ALT_B)
#define GPIO72_STMAPE_DAT2	PIN_CFG(72, ALT_C)
