GPIO167_LCD_D38, GPIO168_LCD_D39, GPIO169_LCDA_DE, GPIO170_LCDA_VSO, GPIO171_LCDA_HSO, ); static UX500_PINS(gavini_r0_0_pins_uart0, GPIO0_U0_CTSn | PIN_INPUT_PULLUP, GPIO1_U0_RTSn | PIN_OUTPUT_HIGH, GPIO2_U0_RXD | PIN_INPUT_PULLUP, GPIO3_U0_TXD | PIN_OUTPUT_HIGH, ); static struct ux500_pin_lookup gavini_r0_0_lookup_pins[] = { PIN_LOOKUP("uart0", &gavini_r0_0_pins_uart0), PIN_LOOKUP("mcde-dpi", &gavini_r0_0_mcde_dpi), PIN_LOOKUP("nmk-i2c.0", &gavini_r0_0_i2c0), PIN_LOOKUP("nmk-i2c.1", &gavini_r0_0_i2c1), PIN_LOOKUP("nmk-i2c.2", &gavini_r0_0_i2c2), PIN_LOOKUP("nmk-i2c.3", &gavini_r0_0_i2c3), }; extern struct device *gps_dev; extern struct class *sec_class; static pin_cfg_t gavini_gps_rev0_0_pins[] = { GPIO4_U1_RXD | PIN_INPUT_PULLUP, /* GPS UART */ GPIO5_U1_TXD | PIN_OUTPUT_HIGH, /* GPS UART */ PIN_CFG(GPS_RST_N_GAVINI_R0_0,GPIO) | PIN_OUTPUT_HIGH, /* GPS_RST_N */ PIN_CFG(EN_GPS_GAVINI_R0_0,GPIO) | PIN_OUTPUT_HIGH, /* GPS_EN */
GPIO256_USB_NXT, GPIO257_USB_STP | PIN_OUTPUT_HIGH, GPIO258_USB_XCLK, GPIO259_USB_DIR, GPIO260_USB_DAT7, GPIO261_USB_DAT6, GPIO262_USB_DAT5, GPIO263_USB_DAT4, GPIO264_USB_DAT3, GPIO265_USB_DAT2, GPIO266_USB_DAT1, GPIO267_USB_DAT0, ); static struct ux500_pin_lookup codina_r0_0_lookup_pins[] = { PIN_LOOKUP("mcde-dpi", &codina_r0_0_mcde_dpi), PIN_LOOKUP("nmk-i2c.0", &codina_r0_0_i2c0), PIN_LOOKUP("nmk-i2c.1", &codina_r0_0_i2c1), PIN_LOOKUP("nmk-i2c.2", &codina_r0_0_i2c2), PIN_LOOKUP("nmk-i2c.3", &codina_r0_0_i2c3), PIN_LOOKUP("musb-ux500.0", &codina_pins_usb), PIN_LOOKUP("ab-iddet.0", &codina_pins_usb), }; static pin_cfg_t codina_gps_uart_pins[] = { GPIO4_U1_RXD | PIN_INPUT_PULLUP, GPIO5_U1_TXD | PIN_OUTPUT_HIGH, GPIO6_U1_CTSn | PIN_INPUT_PULLUP, GPIO7_U1_RTSn | PIN_OUTPUT_HIGH, };
/* * Pins disabled when not used to save power */ static UX500_PINS(golden_bringup_sdmmc, /* MMC0 (MicroSD card) */ 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, ); static struct ux500_pin_lookup golden_bringup_lookup_sdmmc_pins[] = { PIN_LOOKUP("sdi0", &golden_bringup_sdmmc), }; /* * Pins disabled when not used to save power */ /* Proximity & Light Sensor I2C */ static UX500_PINS(golden_bringup_i2c0, GPIO147_I2C0_SCL | PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL, GPIO148_I2C0_SDA | PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL, );
static UX500_PINS(mop500_pins_sensors1p_v60, GPIO217_GPIO| PIN_INPUT_PULLUP | PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL, GPIO145_GPIO | PIN_INPUT_PULLDOWN | PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL, GPIO139_GPIO | PIN_INPUT_PULLUP | PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL, ); static UX500_PINS(mop500_pins_sensors1p, PIN_CFG_INPUT(GPIO_PROX_SENSOR, GPIO, NOPULL), PIN_CFG_INPUT(GPIO_HAL_SENSOR, GPIO, NOPULL), ); static struct ux500_pin_lookup mop500_runtime_pins[] = { PIN_LOOKUP("mcde-tvout", &mop500_pins_mcde_tvout), PIN_LOOKUP("av8100-hdmi", &mop500_pins_mcde_hdmi), PIN_LOOKUP("nmk-i2c.0", &mop500_pins_i2c0), PIN_LOOKUP("nmk-i2c.1", &mop500_pins_i2c1), PIN_LOOKUP("nmk-i2c.2", &mop500_pins_i2c2), PIN_LOOKUP("nmk-i2c.3", &mop500_pins_i2c3), PIN_LOOKUP("ske", &mop500_pins_ske), PIN_LOOKUP("sdi0", &mop500_pins_sdi0), PIN_LOOKUP("sdi1", &mop500_pins_sdi1), PIN_LOOKUP("sdi2", &mop500_pins_sdi2), PIN_LOOKUP("sdi4", &mop500_pins_sdi4), PIN_LOOKUP("musb-ux500.0", &mop500_pins_usb), PIN_LOOKUP("spi2", &mop500_pins_spi2), }; static struct ux500_pin_lookup mop500_runtime_pins_v60[] = {
GPIO161_KP_I3 | PIN_INPUT_PULLDOWN | PIN_SLPM_INPUT_PULLUP, GPIO162_KP_I2 | PIN_INPUT_PULLDOWN | PIN_SLPM_INPUT_PULLUP, GPIO163_KP_I1 | PIN_INPUT_PULLDOWN | PIN_SLPM_INPUT_PULLUP, GPIO164_KP_I0 | PIN_INPUT_PULLDOWN | PIN_SLPM_INPUT_PULLUP, GPIO157_KP_O7 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO158_KP_O6 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO159_KP_O5 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO160_KP_O4 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO165_KP_O3 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO166_KP_O2 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO167_KP_O1 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO168_KP_O0 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, ); static struct ux500_pin_lookup mop500_pins[] = { PIN_LOOKUP("nmk-i2c.1", &mop500_pins_i2c1), PIN_LOOKUP("nmk-i2c.2", &mop500_pins_i2c2), PIN_LOOKUP("ske", &mop500_pins_ske), PIN_LOOKUP("sdi1", &mop500_pins_sdi1), PIN_LOOKUP("sdi2", &mop500_pins_sdi2), PIN_LOOKUP("sdi3", &mop500_pins_sdi3), PIN_LOOKUP("sdi4", &mop500_pins_sdi4), PIN_LOOKUP("musb-ux500.0", &mop500_pins_usb), }; void __init mop500_pins_init(void) { nmk_config_pins(mop500_pins_default, ARRAY_SIZE(mop500_pins_default)); ux500_pins_add(mop500_pins, ARRAY_SIZE(mop500_pins)); switch (pinsfor) { case PINS_FOR_U9500_21:
GPIO261_USB_DAT6, GPIO262_USB_DAT5, GPIO263_USB_DAT4, GPIO264_USB_DAT3, GPIO265_USB_DAT2, GPIO266_USB_DAT1, GPIO267_USB_DAT0, ); static UX500_PINS(ccu9540_pins_sensors1p, GPIO229_GPIO | PIN_INPUT_NOPULL | PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL, ); static struct ux500_pin_lookup u9540_ccu_pins[] = { PIN_LOOKUP("ske", &u9540_ccu_pins_ske), PIN_LOOKUP("sdi0", &ccu9540_pins_sdi0), PIN_LOOKUP("sdi1", &ccu9540_pins_sdi1), PIN_LOOKUP("sdi4", &ccu9540_pins_sdi4), PIN_LOOKUP("musb-ux500.0", &ccu9540_pins_usb), PIN_LOOKUP("ab-iddet.0", &ccu9540_pins_usb), PIN_LOOKUP("gpio-keys.0", &ccu9540_pins_sensors1p), }; /* * Sleep pin configuration for u8500 platform. * If another HW is used the GPIO's must be configured * correctly when entering sleep for optimal power * consumption.
PIN_SLPM_GPIO | PIN_SLPM_OUTPUT_HIGH, ); static UX500_PINS(kyle_r0_1_pins_uart1, GPIO6_U1_CTSn | PIN_INPUT_PULLUP | PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL, GPIO7_U1_RTSn | PIN_OUTPUT_HIGH | PIN_SLPM_GPIO | PIN_SLPM_OUTPUT_HIGH, GPIO4_U1_RXD | PIN_INPUT_PULLUP | PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL, GPIO5_U1_TXD | PIN_OUTPUT_HIGH | PIN_SLPM_GPIO | PIN_SLPM_OUTPUT_HIGH, ); static struct ux500_pin_lookup kyle_lookup_pins[] = { PIN_LOOKUP("nmk-i2c.0", &kyle_i2c0), PIN_LOOKUP("nmk-i2c.1", &kyle_i2c1), PIN_LOOKUP("nmk-i2c.2", &kyle_i2c2), PIN_LOOKUP("nmk-i2c.3", &kyle_i2c3), PIN_LOOKUP("musb-ux500.0", &kyle_pins_usb), PIN_LOOKUP("uart0", &kyle_bringup_pins_uart0), }; static struct ux500_pin_lookup kyle_r0_1_lookup_pins[] = { PIN_LOOKUP("nmk-i2c.0", &kyle_i2c0), PIN_LOOKUP("nmk-i2c.2", &kyle_i2c2), PIN_LOOKUP("nmk-i2c.3", &kyle_i2c3), PIN_LOOKUP("musb-ux500.0", &kyle_pins_usb), PIN_LOOKUP("uart0", &kyle_bringup_pins_uart0), PIN_LOOKUP("uart1", &kyle_r0_1_pins_uart1), };
GPIO157_KP_O7 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO158_KP_O6 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO159_KP_O5 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO160_KP_O4 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO165_KP_O3 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO166_KP_O2 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO167_KP_O1 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, GPIO168_KP_O0 | PIN_INPUT_PULLUP | PIN_SLPM_OUTPUT_LOW, ); static UX500_PINS(mop500_pins_mcde_hdmi, GPIO69_LCD_VSI1 | PIN_INPUT_PULLUP, ); static struct ux500_pin_lookup mop500_pins[] = { PIN_LOOKUP("nmk-i2c.0", &mop500_pins_i2c0), PIN_LOOKUP("nmk-i2c.1", &mop500_pins_i2c1), PIN_LOOKUP("nmk-i2c.2", &mop500_pins_i2c2), PIN_LOOKUP("nmk-i2c.3", &mop500_pins_i2c3), PIN_LOOKUP("ske", &mop500_pins_ske), PIN_LOOKUP("sdi1", &mop500_pins_sdi1), PIN_LOOKUP("sdi2", &mop500_pins_sdi2), PIN_LOOKUP("sdi3", &mop500_pins_sdi3), PIN_LOOKUP("sdi4", &mop500_pins_sdi4), PIN_LOOKUP("musb-ux500.0", &mop500_pins_usb), PIN_LOOKUP("av8100-hdmi", &mop500_pins_mcde_hdmi), }; void __init mop500_pins_init(void) { nmk_config_pins(mop500_pins_default, ARRAY_SIZE(mop500_pins_default));
GPIO167_LCD_D38, GPIO168_LCD_D39, GPIO169_LCDA_DE, GPIO170_LCDA_VSO, GPIO171_LCDA_HSO, ); static UX500_PINS(gti9060_r0_1_pins_uart0, GPIO0_U0_CTSn | PIN_INPUT_PULLUP, GPIO1_U0_RTSn | PIN_OUTPUT_HIGH, GPIO2_U0_RXD | PIN_INPUT_PULLUP, GPIO3_U0_TXD | PIN_OUTPUT_HIGH, ); static struct ux500_pin_lookup gti9060_r0_1_lookup_pins[] = { PIN_LOOKUP("uart0", >i9060_r0_1_pins_uart0), PIN_LOOKUP("mcde-dpi", >i9060_r0_1_mcde_dpi), PIN_LOOKUP("nmk-i2c.0", >i9060_r0_1_i2c0), PIN_LOOKUP("nmk-i2c.1", >i9060_r0_1_i2c1), PIN_LOOKUP("nmk-i2c.2", >i9060_r0_1_i2c2), PIN_LOOKUP("nmk-i2c.3", >i9060_r0_1_i2c3), }; extern struct device *gps_dev; extern struct class *sec_class; static pin_cfg_t gti9060_gps_rev0_1_pins[] = { GPIO4_U1_RXD | PIN_INPUT_PULLUP, /* GPS UART */ GPIO5_U1_TXD | PIN_OUTPUT_HIGH, /* GPS UART */ PIN_CFG(GPS_RST_N_GTI9060_R0_1,GPIO) | PIN_OUTPUT_HIGH, /* GPS_RST_N */ PIN_CFG(EN_GPS_GTI060_R0_1,GPIO) | PIN_OUTPUT_HIGH, /* GPS_EN */
GPIO267_USB_DAT0, ); static UX500_PINS(janice_pins_uart0, GPIO0_U0_CTSn | PIN_INPUT_PULLUP | PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL, GPIO1_U0_RTSn | PIN_OUTPUT_HIGH | PIN_SLPM_GPIO | PIN_SLPM_OUTPUT_HIGH, GPIO2_U0_RXD | PIN_INPUT_PULLUP | PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL, GPIO3_U0_TXD | PIN_OUTPUT_HIGH | PIN_SLPM_GPIO | PIN_SLPM_OUTPUT_HIGH, ); static struct ux500_pin_lookup janice_r0_0_lookup_pins[] = { PIN_LOOKUP("uart0", &janice_pins_uart0), PIN_LOOKUP("mcde-dpi", &janice_r0_0_mcde_dpi), PIN_LOOKUP("nmk-i2c.0", &janice_r0_0_i2c0), PIN_LOOKUP("nmk-i2c.1", &janice_r0_0_i2c1), PIN_LOOKUP("nmk-i2c.2", &janice_r0_0_i2c2), PIN_LOOKUP("nmk-i2c.3", &janice_r0_0_i2c3), PIN_LOOKUP("musb-ux500.0", &janice_pins_usb), }; extern struct device *gps_dev; extern struct class *sec_class; static pin_cfg_t janice_gps_rev0_0_pins[] = { GPIO4_U1_RXD | PIN_INPUT_PULLUP, /* GPS UART */ GPIO5_U1_TXD | PIN_OUTPUT_HIGH, /* GPS UART */ PIN_CFG(GPS_RST_N_JANICE_R0_0, GPIO) | PIN_OUTPUT_HIGH, /* GPS_RST_N */