static int uart_wakeup(pm_wakeup_src_t src, int enable) { unsigned int ret = 0; mfp_cfg_t m; if (enable) { if (src.bits.uart1) { if (is_uart_gpio()) { m = MFP_CFG(GPIO53, AF0) | MFP_LPM_EDGE_FALL; pxa3xx_mfp_config(&m, 1); ret |= PXA95x_PM_WE_GENERIC(13); } else { m = GPIO53_UART1_RXD | MFP_LPM_EDGE_FALL; pxa3xx_mfp_config(&m, 1); ret |= PXA95x_PM_WE_GENERIC(9); } } if (src.bits.uart2) { if (is_uart_gpio()) { m = MFP_CFG(GPIO45, AF0) | MFP_LPM_EDGE_FALL; pxa3xx_mfp_config(&m, 1); ret |= PXA95x_PM_WE_GENERIC(13); } else { m = GPIO45_UART3_RXD | MFP_LPM_EDGE_FALL; pxa3xx_mfp_config(&m, 1); /* note: on pxa930, uart2 use this bit */ ret |= PXA95x_PM_WE_GENERIC(2); } } } else { if (src.bits.uart1) { m = GPIO53_UART1_RXD | MFP_LPM_EDGE_NONE; pxa3xx_mfp_config(&m, 1); } if (src.bits.uart2) { m = GPIO45_UART3_RXD | MFP_LPM_EDGE_NONE; pxa3xx_mfp_config(&m, 1); } } return ret; }
GPIO111_UART2_TXD, /* UART 3 configuration */ GPIO30_UART3_RXD, GPIO31_UART3_TXD, /* UHC */ GPIO2_2_USBH_PEN, GPIO3_2_USBH_PWR, /* I2C */ GPIO32_I2C_SCL, GPIO33_I2C_SDA, /* PCMCIA */ MFP_CFG(GPIO59, AF7), /* PRST ; AF7 to tristate */ MFP_CFG(GPIO61, AF7), /* PCE1 ; AF7 to tristate */ MFP_CFG(GPIO60, AF7), /* PCE2 ; AF7 to tristate */ MFP_CFG(GPIO62, AF7), /* PCD ; AF7 to tristate */ MFP_CFG(GPIO56, AF7), /* PSKTSEL ; AF7 to tristate */ GPIO27_GPIO, /* RDnWR ; input/tristate */ GPIO50_GPIO, /* PREG ; input/tristate */ GPIO2_RDY, GPIO5_NPIOR, GPIO6_NPIOW, GPIO7_NPIOS16, GPIO8_NPWAIT, GPIO29_GPIO, /* PRDY (READY GPIO) */ GPIO57_GPIO, /* PPEN (POWER GPIO) */ GPIO81_GPIO, /* PCD (DETECT GPIO) */ GPIO77_GPIO, /* PRST (RESET GPIO) */
/* Keypad */ GPIO16_KP_DKIN0 | MFP_PULL_HIGH, GPIO17_KP_DKIN1 | MFP_PULL_HIGH, GPIO18_KP_DKIN2 | MFP_PULL_HIGH, GPIO19_KP_DKIN3 | MFP_PULL_HIGH, GPIO20_KP_DKIN4 | MFP_PULL_HIGH, GPIO22_KP_DKIN6 | MFP_PULL_HIGH, PMIC_PMIC_INT | MFP_LPM_EDGE_FALL, /* HDMI */ GPIO59_HDMI_DET, GPIO54_HDMI_CEC, /* OTG vbus enable signal */ MFP_CFG(GPIO82, AF0), /* HSIC1 reset pin*/ MFP_CFG_LPM(GPIO96, AF0, DRIVE_LOW), GPIO101_GPIO, /* TS INT*/ GPIO85_GPIO, /* TS_IO_EN */ }; static unsigned long mmc1_pin_config[] __initdata = { GPIO131_MMC1_DAT3, GPIO132_MMC1_DAT2, GPIO133_MMC1_DAT1, GPIO134_MMC1_DAT0, GPIO136_MMC1_CMD, GPIO135_MMC1_CLK,
CSM_GPIO85_XotgDRV_VBUS, // [email protected] -these two were left out before /* i2c bus */ GPIO105_CI2C_SDA, GPIO106_CI2C_SCL, /* UART1 */ /********* GPIO107_UART1_RXD, GPIO108_UART1_TXD, **********/ //Added to ensure UART1 input works MFP_CFG(GPIO109, AF0), /* SSP0 */ GPIO113_I2S_MCLK, GPIO114_I2S_FRM, GPIO115_I2S_BCLK, GPIO116_I2S_RXD, GPIO117_I2S_TXD, #if defined(CONFIG_WLAN_8688_SDIO) || defined(CONFIG_WLAN_8688_SDIO_MODULE) /* sdh MMC2, wlan*/ // [email protected] - the Silvermoon board with eSD boot uses MMC2 #if defined(CONFIG_CHUMBY_SILVERMOON_MMC2_WIFI) GPIO90_MMC2_DAT3,
#include <mach/irqs.h> #include <plat/pxa3xx_pmic.h> #include <plat/pxa_u2o.h> #include <plat/generic.h> #include <mach/mmc.h> #include <mach/camera.h> #include <mach/ov529.h> #include "common.h" #include <linux/delay.h> /* MFP configurations */ static unsigned long ipcam_pin_config[] __initdata = { /* DEBUG UART3 */ MFP_CFG(GPIO30, AF2), MFP_CFG(GPIO31, AF2), /* MMC3_CD */ MFP_CFG(GPIO2, AF5), /* MMC3 DAT3-0/CLK/CMD */ MFP_CFG(GPIO4, AF6), MFP_CFG(GPIO5, AF6), MFP_CFG(GPIO6, AF6), MFP_CFG(GPIO7, AF6), MFP_CFG(GPIO35, AF6), MFP_CFG(GPIO36, AF6), /* MMC4_CD */ MFP_CFG(GPIO77, AF0),