|
@@ -434,3 +434,184 @@ static struct pinctrl_map __initdata mop500_family_pinmap[] = {
|
|
|
DB8500_PIN_STATE("GPIO76_J2", out_lo,
|
|
|
"stm", "mod_mipi34"), /* uartmod tx */
|
|
|
|
|
|
+ DB8500_PIN_STATE("GPIO70_G5", slpm_out_lo_pdis,
|
|
|
+ "stm", "mod_mipi34_sleep"), /* clk */
|
|
|
+ DB8500_PIN_STATE("GPIO71_G4", slpm_out_lo_pdis,
|
|
|
+ "stm", "mod_mipi34_sleep"), /* dat3 */
|
|
|
+ DB8500_PIN_STATE("GPIO72_H4", slpm_out_lo_pdis,
|
|
|
+ "stm", "mod_mipi34_sleep"), /* dat2 */
|
|
|
+ DB8500_PIN_STATE("GPIO73_H3", slpm_out_lo_pdis,
|
|
|
+ "stm", "mod_mipi34_sleep"), /* dat1 */
|
|
|
+ DB8500_PIN_STATE("GPIO74_J3", slpm_out_lo_pdis,
|
|
|
+ "stm", "mod_mipi34_sleep"), /* dat0 */
|
|
|
+ DB8500_PIN_STATE("GPIO75_H2", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_mipi34_sleep"), /* uartmod rx */
|
|
|
+ DB8500_PIN_STATE("GPIO76_J2", slpm_out_lo_wkup_pdis,
|
|
|
+ "stm", "mod_mipi34_sleep"), /* uartmod tx */
|
|
|
+
|
|
|
+ DB8500_MUX_STATE("stmmod_b_1", "stmmod",
|
|
|
+ "stm", "mod_microsd"),
|
|
|
+ DB8500_MUX_STATE("uartmodrx_oc3_1", "uartmod",
|
|
|
+ "stm", "mod_microsd"),
|
|
|
+ DB8500_MUX_STATE("uartmodtx_oc3_1", "uartmod",
|
|
|
+ "stm", "mod_microsd"),
|
|
|
+ DB8500_PIN_STATE("GPIO23_AA4", in_nopull,
|
|
|
+ "stm", "mod_microsd"), /* clk */
|
|
|
+ DB8500_PIN_STATE("GPIO25_Y4", in_nopull,
|
|
|
+ "stm", "mod_microsd"), /* dat0 */
|
|
|
+ DB8500_PIN_STATE("GPIO26_Y2", in_nopull,
|
|
|
+ "stm", "mod_microsd"), /* dat1 */
|
|
|
+ DB8500_PIN_STATE("GPIO27_AA2", in_nopull,
|
|
|
+ "stm", "mod_microsd"), /* dat2 */
|
|
|
+ DB8500_PIN_STATE("GPIO28_AA1", in_nopull,
|
|
|
+ "stm", "mod_microsd"), /* dat3 */
|
|
|
+ DB8500_PIN_STATE("GPIO75_H2", in_pu,
|
|
|
+ "stm", "mod_microsd"), /* uartmod rx */
|
|
|
+ DB8500_PIN_STATE("GPIO76_J2", out_lo,
|
|
|
+ "stm", "mod_microsd"), /* uartmod tx */
|
|
|
+
|
|
|
+ DB8500_PIN_STATE("GPIO23_AA4", slpm_out_lo_wkup_pdis,
|
|
|
+ "stm", "mod_microsd_sleep"), /* clk */
|
|
|
+ DB8500_PIN_STATE("GPIO25_Y4", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_microsd_sleep"), /* dat0 */
|
|
|
+ DB8500_PIN_STATE("GPIO26_Y2", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_microsd_sleep"), /* dat1 */
|
|
|
+ DB8500_PIN_STATE("GPIO27_AA2", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_microsd_sleep"), /* dat2 */
|
|
|
+ DB8500_PIN_STATE("GPIO28_AA1", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_microsd_sleep"), /* dat3 */
|
|
|
+ DB8500_PIN_STATE("GPIO75_H2", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_microsd_sleep"), /* uartmod rx */
|
|
|
+ DB8500_PIN_STATE("GPIO76_J2", slpm_out_lo_wkup_pdis,
|
|
|
+ "stm", "mod_microsd_sleep"), /* uartmod tx */
|
|
|
+
|
|
|
+ /* STM dual Modem/APE pins state */
|
|
|
+ DB8500_MUX_STATE("stmmod_oc3_2", "stmmod",
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"),
|
|
|
+ DB8500_MUX_STATE("stmape_c_2", "stmape",
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"),
|
|
|
+ DB8500_MUX_STATE("uartmodrx_oc3_1", "uartmod",
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"),
|
|
|
+ DB8500_MUX_STATE("uartmodtx_oc3_1", "uartmod",
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"),
|
|
|
+ DB8500_PIN_STATE("GPIO70_G5", in_nopull,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* clk */
|
|
|
+ DB8500_PIN_STATE("GPIO71_G4", in_nopull,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* dat3 */
|
|
|
+ DB8500_PIN_STATE("GPIO72_H4", in_nopull,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* dat2 */
|
|
|
+ DB8500_PIN_STATE("GPIO73_H3", in_nopull,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* dat1 */
|
|
|
+ DB8500_PIN_STATE("GPIO74_J3", in_nopull,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* dat0 */
|
|
|
+ DB8500_PIN_STATE("GPIO75_H2", in_pu,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* uartmod rx */
|
|
|
+ DB8500_PIN_STATE("GPIO76_J2", out_lo,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* uartmod tx */
|
|
|
+ DB8500_PIN_STATE("GPIO155_C19", in_nopull,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* clk */
|
|
|
+ DB8500_PIN_STATE("GPIO156_C17", in_nopull,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* dat3 */
|
|
|
+ DB8500_PIN_STATE("GPIO157_A18", in_nopull,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* dat2 */
|
|
|
+ DB8500_PIN_STATE("GPIO158_C18", in_nopull,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* dat1 */
|
|
|
+ DB8500_PIN_STATE("GPIO159_B19", in_nopull,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60"), /* dat0 */
|
|
|
+
|
|
|
+ DB8500_PIN_STATE("GPIO70_G5", slpm_out_lo_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* clk */
|
|
|
+ DB8500_PIN_STATE("GPIO71_G4", slpm_out_lo_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat3 */
|
|
|
+ DB8500_PIN_STATE("GPIO72_H4", slpm_out_lo_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat2 */
|
|
|
+ DB8500_PIN_STATE("GPIO73_H3", slpm_out_lo_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat1 */
|
|
|
+ DB8500_PIN_STATE("GPIO74_J3", slpm_out_lo_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat0 */
|
|
|
+ DB8500_PIN_STATE("GPIO75_H2", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* uartmod rx */
|
|
|
+ DB8500_PIN_STATE("GPIO76_J2", slpm_out_lo_wkup_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* uartmod tx */
|
|
|
+ DB8500_PIN_STATE("GPIO155_C19", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* clk */
|
|
|
+ DB8500_PIN_STATE("GPIO156_C17", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat3 */
|
|
|
+ DB8500_PIN_STATE("GPIO157_A18", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat2 */
|
|
|
+ DB8500_PIN_STATE("GPIO158_C18", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat1 */
|
|
|
+ DB8500_PIN_STATE("GPIO159_B19", slpm_in_wkup_pdis,
|
|
|
+ "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat0 */
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * These are specifically for the MOP500 and HREFP (pre-v60) version of the
|
|
|
+ * board, which utilized a TC35892 GPIO expander instead of using a lot of
|
|
|
+ * on-chip pins as the HREFv60 and later does.
|
|
|
+ */
|
|
|
+static struct pinctrl_map __initdata mop500_pinmap[] = {
|
|
|
+ /* Mux in SSP0, pull down RXD pin */
|
|
|
+ DB8500_MUX_HOG("ssp0_a_1", "ssp0"),
|
|
|
+ DB8500_PIN_HOG("GPIO145_C13", pd),
|
|
|
+ /*
|
|
|
+ * XENON Flashgun on image processor GPIO (controlled from image
|
|
|
+ * processor firmware), mux in these image processor GPIO lines 0
|
|
|
+ * (XENON_FLASH_ID) and 1 (XENON_READY) on altfunction C and pull up
|
|
|
+ * the pins.
|
|
|
+ */
|
|
|
+ DB8500_MUX_HOG("ipgpio0_c_1", "ipgpio"),
|
|
|
+ DB8500_MUX_HOG("ipgpio1_c_1", "ipgpio"),
|
|
|
+ DB8500_PIN_HOG("GPIO6_AF6", in_pu),
|
|
|
+ DB8500_PIN_HOG("GPIO7_AG5", in_pu),
|
|
|
+ /* TC35892 IRQ, pull up the line, let the driver mux in the pin */
|
|
|
+ DB8500_PIN_HOG("GPIO217_AH12", gpio_in_pu),
|
|
|
+ /* Mux in UART1 and set the pull-ups */
|
|
|
+ DB8500_MUX_HOG("u1rxtx_a_1", "u1"),
|
|
|
+ DB8500_PIN_HOG("GPIO4_AH6", in_pu), /* RXD */
|
|
|
+ DB8500_PIN_HOG("GPIO5_AG6", out_hi), /* TXD */
|
|
|
+ /*
|
|
|
+ * Runtime stuff: make it possible to mux in the SKE keypad
|
|
|
+ * and bias the pins
|
|
|
+ */
|
|
|
+ /* ske default state */
|
|
|
+ DB8500_MUX("kp_a_2", "kp", "nmk-ske-keypad"),
|
|
|
+ DB8500_PIN("GPIO153_B17", in_pu, "nmk-ske-keypad"), /* I7 */
|
|
|
+ DB8500_PIN("GPIO154_C16", in_pu, "nmk-ske-keypad"), /* I6 */
|
|
|
+ DB8500_PIN("GPIO155_C19", in_pu, "nmk-ske-keypad"), /* I5 */
|
|
|
+ DB8500_PIN("GPIO156_C17", in_pu, "nmk-ske-keypad"), /* I4 */
|
|
|
+ DB8500_PIN("GPIO161_D21", in_pu, "nmk-ske-keypad"), /* I3 */
|
|
|
+ DB8500_PIN("GPIO162_D20", in_pu, "nmk-ske-keypad"), /* I2 */
|
|
|
+ DB8500_PIN("GPIO163_C20", in_pu, "nmk-ske-keypad"), /* I1 */
|
|
|
+ DB8500_PIN("GPIO164_B21", in_pu, "nmk-ske-keypad"), /* I0 */
|
|
|
+ DB8500_PIN("GPIO157_A18", out_lo, "nmk-ske-keypad"), /* O7 */
|
|
|
+ DB8500_PIN("GPIO158_C18", out_lo, "nmk-ske-keypad"), /* O6 */
|
|
|
+ DB8500_PIN("GPIO159_B19", out_lo, "nmk-ske-keypad"), /* O5 */
|
|
|
+ DB8500_PIN("GPIO160_B20", out_lo, "nmk-ske-keypad"), /* O4 */
|
|
|
+ DB8500_PIN("GPIO165_C21", out_lo, "nmk-ske-keypad"), /* O3 */
|
|
|
+ DB8500_PIN("GPIO166_A22", out_lo, "nmk-ske-keypad"), /* O2 */
|
|
|
+ DB8500_PIN("GPIO167_B24", out_lo, "nmk-ske-keypad"), /* O1 */
|
|
|
+ DB8500_PIN("GPIO168_C22", out_lo, "nmk-ske-keypad"), /* O0 */
|
|
|
+ /* ske sleep state */
|
|
|
+ DB8500_PIN_SLEEP("GPIO153_B17", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I7 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO154_C16", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I6 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO155_C19", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I5 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO156_C17", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I4 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO161_D21", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I3 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO162_D20", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I2 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO163_C20", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I1 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO164_B21", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I0 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO157_A18", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O7 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO158_C18", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O6 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO159_B19", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O5 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO160_B20", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O4 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO165_C21", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O3 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO166_A22", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O2 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO167_B24", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O1 */
|
|
|
+ DB8500_PIN_SLEEP("GPIO168_C22", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O0 */
|
|
|
+
|
|
|
+ /* Mux in and drive the SDI0 DAT31DIR line high at runtime */
|
|
|
+ DB8500_MUX("mc0dat31dir_a_1", "mc0", "sdi0"),
|
|
|
+ DB8500_PIN("GPIO21_AB3", out_hi, "sdi0"),
|
|
|
+};
|
|
|
+
|