]> err.no Git - linux-2.6/blobdiff - arch/arm/mach-pxa/zylonite_pxa300.c
Merge git://git.infradead.org/mtd-2.6
[linux-2.6] / arch / arm / mach-pxa / zylonite_pxa300.c
index 38c1ddc6cb1d234ea64fcc5b4d900335681e4d3e..6ac04c09b0e9bd4ff5c4117b7a265f3e7d9ef3e5 100644 (file)
@@ -53,13 +53,13 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
 
        /* BTUART */
        GPIO111_UART2_RTS,
-       GPIO112_UART2_RXD,
+       GPIO112_UART2_RXD | MFP_LPM_EDGE_FALL,
        GPIO113_UART2_TXD,
-       GPIO114_UART2_CTS,
+       GPIO114_UART2_CTS | MFP_LPM_EDGE_BOTH,
 
        /* STUART */
        GPIO109_UART3_TXD,
-       GPIO110_UART3_RXD,
+       GPIO110_UART3_RXD | MFP_LPM_EDGE_FALL,
 
        /* AC97 */
        GPIO23_AC97_nACRESET,
@@ -70,16 +70,16 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
        GPIO28_AC97_SYNC,
 
        /* Keypad */
-       GPIO107_KP_DKIN_0,
-       GPIO108_KP_DKIN_1,
-       GPIO115_KP_MKIN_0,
-       GPIO116_KP_MKIN_1,
-       GPIO117_KP_MKIN_2,
-       GPIO118_KP_MKIN_3,
-       GPIO119_KP_MKIN_4,
-       GPIO120_KP_MKIN_5,
-       GPIO2_2_KP_MKIN_6,
-       GPIO3_2_KP_MKIN_7,
+       GPIO107_KP_DKIN_0 | MFP_LPM_EDGE_BOTH,
+       GPIO108_KP_DKIN_1 | MFP_LPM_EDGE_BOTH,
+       GPIO115_KP_MKIN_0 | MFP_LPM_EDGE_BOTH,
+       GPIO116_KP_MKIN_1 | MFP_LPM_EDGE_BOTH,
+       GPIO117_KP_MKIN_2 | MFP_LPM_EDGE_BOTH,
+       GPIO118_KP_MKIN_3 | MFP_LPM_EDGE_BOTH,
+       GPIO119_KP_MKIN_4 | MFP_LPM_EDGE_BOTH,
+       GPIO120_KP_MKIN_5 | MFP_LPM_EDGE_BOTH,
+       GPIO2_2_KP_MKIN_6 | MFP_LPM_EDGE_BOTH,
+       GPIO3_2_KP_MKIN_7 | MFP_LPM_EDGE_BOTH,
        GPIO121_KP_MKOUT_0,
        GPIO122_KP_MKOUT_1,
        GPIO123_KP_MKOUT_2,
@@ -91,7 +91,7 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
 
        /* MMC1 */
        GPIO3_MMC1_DAT0,
-       GPIO4_MMC1_DAT1,
+       GPIO4_MMC1_DAT1 | MFP_LPM_EDGE_BOTH,
        GPIO5_MMC1_DAT2,
        GPIO6_MMC1_DAT3,
        GPIO7_MMC1_CLK,
@@ -100,7 +100,7 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
 
        /* MMC2 */
        GPIO9_MMC2_DAT0,
-       GPIO10_MMC2_DAT1,
+       GPIO10_MMC2_DAT1 | MFP_LPM_EDGE_BOTH,
        GPIO11_MMC2_DAT2,
        GPIO12_MMC2_DAT3,
        GPIO13_MMC2_CLK,
@@ -109,12 +109,12 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
 
 static mfp_cfg_t pxa300_mfp_cfg[] __initdata = {
        /* FFUART */
-       GPIO30_UART1_RXD,
+       GPIO30_UART1_RXD | MFP_LPM_EDGE_FALL,
        GPIO31_UART1_TXD,
        GPIO32_UART1_CTS,
        GPIO37_UART1_RTS,
        GPIO33_UART1_DCD,
-       GPIO34_UART1_DSR,
+       GPIO34_UART1_DSR | MFP_LPM_EDGE_FALL,
        GPIO35_UART1_RI,
        GPIO36_UART1_DTR,
 
@@ -125,7 +125,7 @@ static mfp_cfg_t pxa300_mfp_cfg[] __initdata = {
 
 static mfp_cfg_t pxa310_mfp_cfg[] __initdata = {
        /* FFUART */
-       GPIO99_UART1_RXD,
+       GPIO99_UART1_RXD | MFP_LPM_EDGE_FALL,
        GPIO100_UART1_TXD,
        GPIO101_UART1_CTS,
        GPIO106_UART1_RTS,
@@ -133,6 +133,14 @@ static mfp_cfg_t pxa310_mfp_cfg[] __initdata = {
        /* Ethernet */
        GPIO2_nCS3,
        GPIO102_GPIO,
+
+       /* MMC3 */
+       GPIO7_2_MMC3_DAT0,
+       GPIO8_2_MMC3_DAT1 | MFP_LPM_EDGE_BOTH,
+       GPIO9_2_MMC3_DAT2,
+       GPIO10_2_MMC3_DAT3,
+       GPIO103_MMC3_CLK,
+       GPIO105_MMC3_CMD,
 };
 
 #define NUM_LCD_DETECT_PINS    7
@@ -205,5 +213,9 @@ void __init zylonite_pxa300_init(void)
        if (cpu_is_pxa310()) {
                pxa3xx_mfp_config(ARRAY_AND_SIZE(pxa310_mfp_cfg));
                gpio_eth_irq = mfp_to_gpio(MFP_PIN_GPIO102);
+
+               /* MMC card detect & write protect for controller 2 */
+               zylonite_mmc_slot[2].gpio_cd = EXT_GPIO(30);
+               zylonite_mmc_slot[2].gpio_wp = EXT_GPIO(31);
        }
 }