2011-02-11 17:07:21 -07:00
/*
* Copyright ( C ) ST - Ericsson SA 2010
*
* License terms : GNU General Public License ( GPL ) version 2
*/
# include <linux/kernel.h>
# include <linux/init.h>
2011-02-15 10:46:59 +01:00
# include <asm/mach-types.h>
2011-02-11 17:07:21 -07:00
# include <plat/pincfg.h>
2011-08-22 08:33:30 +01:00
# include <plat/gpio-nomadik.h>
2011-02-11 17:07:21 -07:00
# include <mach/hardware.h>
# include "pins-db8500.h"
2011-02-15 10:46:59 +01:00
static pin_cfg_t mop500_pins_common [ ] = {
2011-02-11 17:07:21 -07:00
/* I2C */
GPIO147_I2C0_SCL ,
GPIO148_I2C0_SDA ,
GPIO16_I2C1_SCL ,
GPIO17_I2C1_SDA ,
GPIO10_I2C2_SDA ,
GPIO11_I2C2_SCL ,
GPIO229_I2C3_SDA ,
GPIO230_I2C3_SCL ,
2011-02-15 10:46:59 +01:00
/* MSP0 */
GPIO12_MSP0_TXD ,
GPIO13_MSP0_TFS ,
GPIO14_MSP0_TCK ,
GPIO15_MSP0_RXD ,
/* MSP2: HDMI */
GPIO193_MSP2_TXD ,
GPIO194_MSP2_TCK ,
GPIO195_MSP2_TFS ,
GPIO196_MSP2_RXD | PIN_OUTPUT_LOW ,
/* Touch screen INTERFACE */
GPIO84_GPIO | PIN_INPUT_PULLUP , /* TOUCH_INT1 */
/* STMPE1601/tc35893 keypad IRQ */
GPIO218_GPIO | PIN_INPUT_PULLUP ,
/* MMC0 (MicroSD card) */
GPIO18_MC0_CMDDIR | PIN_OUTPUT_HIGH ,
GPIO19_MC0_DAT0DIR | PIN_OUTPUT_HIGH ,
GPIO20_MC0_DAT2DIR | PIN_OUTPUT_HIGH ,
GPIO22_MC0_FBCLK | PIN_INPUT_NOPULL ,
GPIO23_MC0_CLK | PIN_OUTPUT_LOW ,
GPIO24_MC0_CMD | PIN_INPUT_PULLUP ,
GPIO25_MC0_DAT0 | PIN_INPUT_PULLUP ,
GPIO26_MC0_DAT1 | PIN_INPUT_PULLUP ,
GPIO27_MC0_DAT2 | PIN_INPUT_PULLUP ,
GPIO28_MC0_DAT3 | PIN_INPUT_PULLUP ,
/* SDI1 (SDIO) */
GPIO208_MC1_CLK | PIN_OUTPUT_LOW ,
GPIO209_MC1_FBCLK | PIN_INPUT_NOPULL ,
GPIO210_MC1_CMD | PIN_INPUT_PULLUP ,
GPIO211_MC1_DAT0 | PIN_INPUT_PULLUP ,
GPIO212_MC1_DAT1 | PIN_INPUT_PULLUP ,
GPIO213_MC1_DAT2 | PIN_INPUT_PULLUP ,
GPIO214_MC1_DAT3 | PIN_INPUT_PULLUP ,
/* MMC2 (On-board DATA INTERFACE eMMC) */
GPIO128_MC2_CLK | PIN_OUTPUT_LOW ,
GPIO129_MC2_CMD | PIN_INPUT_PULLUP ,
GPIO130_MC2_FBCLK | PIN_INPUT_NOPULL ,
GPIO131_MC2_DAT0 | PIN_INPUT_PULLUP ,
GPIO132_MC2_DAT1 | PIN_INPUT_PULLUP ,
GPIO133_MC2_DAT2 | PIN_INPUT_PULLUP ,
GPIO134_MC2_DAT3 | PIN_INPUT_PULLUP ,
GPIO135_MC2_DAT4 | PIN_INPUT_PULLUP ,
GPIO136_MC2_DAT5 | PIN_INPUT_PULLUP ,
GPIO137_MC2_DAT6 | PIN_INPUT_PULLUP ,
GPIO138_MC2_DAT7 | PIN_INPUT_PULLUP ,
/* MMC4 (On-board STORAGE INTERFACE eMMC) */
GPIO197_MC4_DAT3 | PIN_INPUT_PULLUP ,
GPIO198_MC4_DAT2 | PIN_INPUT_PULLUP ,
GPIO199_MC4_DAT1 | PIN_INPUT_PULLUP ,
GPIO200_MC4_DAT0 | PIN_INPUT_PULLUP ,
GPIO201_MC4_CMD | PIN_INPUT_PULLUP ,
GPIO202_MC4_FBCLK | PIN_INPUT_NOPULL ,
GPIO203_MC4_CLK | PIN_OUTPUT_LOW ,
GPIO204_MC4_DAT7 | PIN_INPUT_PULLUP ,
GPIO205_MC4_DAT6 | PIN_INPUT_PULLUP ,
GPIO206_MC4_DAT5 | PIN_INPUT_PULLUP ,
GPIO207_MC4_DAT4 | PIN_INPUT_PULLUP ,
2011-02-11 17:07:21 -07:00
/* SKE keypad */
GPIO153_KP_I7 ,
GPIO154_KP_I6 ,
GPIO155_KP_I5 ,
GPIO156_KP_I4 ,
GPIO157_KP_O7 ,
GPIO158_KP_O6 ,
GPIO159_KP_O5 ,
GPIO160_KP_O4 ,
GPIO161_KP_I3 ,
GPIO162_KP_I2 ,
GPIO163_KP_I1 ,
GPIO164_KP_I0 ,
GPIO165_KP_O3 ,
GPIO166_KP_O2 ,
GPIO167_KP_O1 ,
GPIO168_KP_O0 ,
2011-02-15 10:46:59 +01:00
/* UART */
2011-06-13 10:11:44 +02:00
/* uart-0 pins gpio configuration should be
* kept intact to prevent glitch in tx line
* when tty dev is opened . Later these pins
* are configured to uart mop500_pins_uart0
*
* It will be replaced with uart configuration
* once the issue is solved .
*/
GPIO0_GPIO | PIN_INPUT_PULLUP ,
GPIO1_GPIO | PIN_OUTPUT_HIGH ,
GPIO2_GPIO | PIN_INPUT_PULLUP ,
GPIO3_GPIO | PIN_OUTPUT_HIGH ,
2011-02-15 10:46:59 +01:00
GPIO29_U2_RXD | PIN_INPUT_PULLUP ,
GPIO30_U2_TXD | PIN_OUTPUT_HIGH ,
GPIO31_U2_CTSn | PIN_INPUT_PULLUP ,
GPIO32_U2_RTSn | PIN_OUTPUT_HIGH ,
/* Display & HDMI HW sync */
GPIO68_LCD_VSI0 | PIN_INPUT_PULLUP ,
GPIO69_LCD_VSI1 | PIN_INPUT_PULLUP ,
} ;
static pin_cfg_t mop500_pins_default [ ] = {
/* SSP0 */
GPIO143_SSP0_CLK ,
GPIO144_SSP0_FRM ,
GPIO145_SSP0_RXD | PIN_PULL_DOWN ,
GPIO146_SSP0_TXD ,
GPIO217_GPIO | PIN_INPUT_PULLUP , /* TC35892 IRQ */
/* SDI0 (MicroSD card) */
GPIO21_MC0_DAT31DIR | PIN_OUTPUT_HIGH ,
/* UART */
GPIO4_U1_RXD | PIN_INPUT_PULLUP ,
GPIO5_U1_TXD | PIN_OUTPUT_HIGH ,
GPIO6_U1_CTSn | PIN_INPUT_PULLUP ,
GPIO7_U1_RTSn | PIN_OUTPUT_HIGH ,
} ;
2011-08-26 16:54:07 +01:00
static pin_cfg_t hrefv60_pins [ ] = {
2011-02-15 10:46:59 +01:00
/* WLAN */
GPIO4_GPIO | PIN_INPUT_PULLUP , /* WLAN_IRQ */
GPIO85_GPIO | PIN_OUTPUT_LOW , /* WLAN_ENA */
/* XENON Flashgun INTERFACE */
GPIO6_IP_GPIO0 | PIN_INPUT_PULLUP , /* XENON_FLASH_ID */
GPIO7_IP_GPIO1 | PIN_INPUT_PULLUP , /* XENON_READY */
GPIO170_GPIO | PIN_OUTPUT_LOW , /* XENON_CHARGE */
/* Assistant LED INTERFACE */
GPIO21_GPIO | PIN_OUTPUT_LOW , /* XENON_EN1 */
GPIO64_IP_GPIO4 | PIN_OUTPUT_LOW , /* XENON_EN2 */
/* Magnetometer */
GPIO31_GPIO | PIN_INPUT_PULLUP , /* magnetometer_INT */
GPIO32_GPIO | PIN_INPUT_PULLDOWN , /* Magnetometer DRDY */
/* Display Interface */
GPIO65_GPIO | PIN_OUTPUT_LOW , /* DISP1 RST */
GPIO66_GPIO | PIN_OUTPUT_LOW , /* DISP2 RST */
/* Touch screen INTERFACE */
GPIO143_GPIO | PIN_OUTPUT_LOW , /*TOUCH_RST1 */
/* Touch screen INTERFACE 2 */
GPIO67_GPIO | PIN_INPUT_PULLUP , /* TOUCH_INT2 */
GPIO146_GPIO | PIN_OUTPUT_LOW , /*TOUCH_RST2 */
/* ETM_PTM_TRACE INTERFACE */
GPIO70_GPIO | PIN_OUTPUT_LOW , /* ETM_PTM_DATA23 */
GPIO71_GPIO | PIN_OUTPUT_LOW , /* ETM_PTM_DATA22 */
GPIO72_GPIO | PIN_OUTPUT_LOW , /* ETM_PTM_DATA21 */
GPIO73_GPIO | PIN_OUTPUT_LOW , /* ETM_PTM_DATA20 */
GPIO74_GPIO | PIN_OUTPUT_LOW , /* ETM_PTM_DATA19 */
/* NAHJ INTERFACE */
GPIO76_GPIO | PIN_OUTPUT_LOW , /* NAHJ_CTRL */
GPIO216_GPIO | PIN_OUTPUT_HIGH , /* NAHJ_CTRL_INV */
/* NFC INTERFACE */
GPIO77_GPIO | PIN_OUTPUT_LOW , /* NFC_ENA */
GPIO144_GPIO | PIN_INPUT_PULLDOWN , /* NFC_IRQ */
GPIO142_GPIO | PIN_OUTPUT_LOW , /* NFC_RESET */
/* Keyboard MATRIX INTERFACE */
GPIO90_MC5_CMD | PIN_OUTPUT_LOW , /* KP_O_1 */
GPIO87_MC5_DAT1 | PIN_OUTPUT_LOW , /* KP_O_2 */
GPIO86_MC5_DAT0 | PIN_OUTPUT_LOW , /* KP_O_3 */
GPIO96_KP_O6 | PIN_OUTPUT_LOW , /* KP_O_6 */
GPIO94_KP_O7 | PIN_OUTPUT_LOW , /* KP_O_7 */
GPIO93_MC5_DAT4 | PIN_INPUT_PULLUP , /* KP_I_0 */
GPIO89_MC5_DAT3 | PIN_INPUT_PULLUP , /* KP_I_2 */
GPIO88_MC5_DAT2 | PIN_INPUT_PULLUP , /* KP_I_3 */
GPIO91_GPIO | PIN_INPUT_PULLUP , /* FORCE_SENSING_INT */
GPIO92_GPIO | PIN_OUTPUT_LOW , /* FORCE_SENSING_RST */
GPIO97_GPIO | PIN_OUTPUT_LOW , /* FORCE_SENSING_WU */
/* DiPro Sensor Interface */
GPIO139_GPIO | PIN_INPUT_PULLUP , /* DIPRO_INT */
/* HAL SWITCH INTERFACE */
GPIO145_GPIO | PIN_INPUT_PULLDOWN , /* HAL_SW */
/* Audio Amplifier Interface */
GPIO149_GPIO | PIN_OUTPUT_LOW , /* VAUDIO_HF_EN */
/* GBF INTERFACE */
GPIO171_GPIO | PIN_OUTPUT_LOW , /* GBF_ENA_RESET */
/* MSP : HDTV INTERFACE */
GPIO192_GPIO | PIN_INPUT_PULLDOWN ,
/* ACCELEROMETER_INTERFACE */
GPIO82_GPIO | PIN_INPUT_PULLUP , /* ACC_INT1 */
GPIO83_GPIO | PIN_INPUT_PULLUP , /* ACC_INT2 */
/* Proximity Sensor */
GPIO217_GPIO | PIN_INPUT_PULLUP ,
2011-02-11 17:07:21 -07:00
} ;
2011-06-21 09:39:13 +02:00
static pin_cfg_t snowball_pins [ ] = {
/* SSP0, to AB8500 */
GPIO143_SSP0_CLK ,
GPIO144_SSP0_FRM ,
GPIO145_SSP0_RXD | PIN_PULL_DOWN ,
GPIO146_SSP0_TXD ,
/* MMC0: MicroSD card */
GPIO21_MC0_DAT31DIR | PIN_OUTPUT_HIGH ,
/* MMC2: LAN */
GPIO86_SM_ADQ0 ,
GPIO87_SM_ADQ1 ,
GPIO88_SM_ADQ2 ,
GPIO89_SM_ADQ3 ,
GPIO90_SM_ADQ4 ,
GPIO91_SM_ADQ5 ,
GPIO92_SM_ADQ6 ,
GPIO93_SM_ADQ7 ,
GPIO94_SM_ADVn ,
GPIO95_SM_CS0n ,
GPIO96_SM_OEn ,
GPIO97_SM_WEn ,
GPIO128_SM_CKO ,
GPIO130_SM_FBCLK ,
GPIO131_SM_ADQ8 ,
GPIO132_SM_ADQ9 ,
GPIO133_SM_ADQ10 ,
GPIO134_SM_ADQ11 ,
GPIO135_SM_ADQ12 ,
GPIO136_SM_ADQ13 ,
GPIO137_SM_ADQ14 ,
GPIO138_SM_ADQ15 ,
/* RSTn_LAN */
GPIO141_GPIO | PIN_OUTPUT_HIGH ,
} ;
2011-02-11 17:07:21 -07:00
void __init mop500_pins_init ( void )
{
2011-02-15 10:46:59 +01:00
nmk_config_pins ( mop500_pins_common ,
2011-08-26 16:54:07 +01:00
ARRAY_SIZE ( mop500_pins_common ) ) ;
nmk_config_pins ( mop500_pins_default ,
ARRAY_SIZE ( mop500_pins_default ) ) ;
}
void __init snowball_pins_init ( void )
{
nmk_config_pins ( mop500_pins_common ,
ARRAY_SIZE ( mop500_pins_common ) ) ;
nmk_config_pins ( snowball_pins ,
ARRAY_SIZE ( snowball_pins ) ) ;
}
void __init hrefv60_pins_init ( void )
{
nmk_config_pins ( mop500_pins_common ,
ARRAY_SIZE ( mop500_pins_common ) ) ;
nmk_config_pins ( hrefv60_pins ,
ARRAY_SIZE ( hrefv60_pins ) ) ;
2011-02-11 17:07:21 -07:00
}