diff options
Diffstat (limited to 'arch/arm/mach-pxa/corgi.c')
-rw-r--r-- | arch/arm/mach-pxa/corgi.c | 56 |
1 files changed, 36 insertions, 20 deletions
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index da3156d8690b..3d1dcb9ac08f 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
@@ -106,18 +106,18 @@ static unsigned long corgi_pin_config[] __initdata = { | |||
106 | GPIO8_MMC_CS0, | 106 | GPIO8_MMC_CS0, |
107 | 107 | ||
108 | /* GPIO Matrix Keypad */ | 108 | /* GPIO Matrix Keypad */ |
109 | GPIO66_GPIO, /* column 0 */ | 109 | GPIO66_GPIO | MFP_LPM_DRIVE_HIGH, /* column 0 */ |
110 | GPIO67_GPIO, /* column 1 */ | 110 | GPIO67_GPIO | MFP_LPM_DRIVE_HIGH, /* column 1 */ |
111 | GPIO68_GPIO, /* column 2 */ | 111 | GPIO68_GPIO | MFP_LPM_DRIVE_HIGH, /* column 2 */ |
112 | GPIO69_GPIO, /* column 3 */ | 112 | GPIO69_GPIO | MFP_LPM_DRIVE_HIGH, /* column 3 */ |
113 | GPIO70_GPIO, /* column 4 */ | 113 | GPIO70_GPIO | MFP_LPM_DRIVE_HIGH, /* column 4 */ |
114 | GPIO71_GPIO, /* column 5 */ | 114 | GPIO71_GPIO | MFP_LPM_DRIVE_HIGH, /* column 5 */ |
115 | GPIO72_GPIO, /* column 6 */ | 115 | GPIO72_GPIO | MFP_LPM_DRIVE_HIGH, /* column 6 */ |
116 | GPIO73_GPIO, /* column 7 */ | 116 | GPIO73_GPIO | MFP_LPM_DRIVE_HIGH, /* column 7 */ |
117 | GPIO74_GPIO, /* column 8 */ | 117 | GPIO74_GPIO | MFP_LPM_DRIVE_HIGH, /* column 8 */ |
118 | GPIO75_GPIO, /* column 9 */ | 118 | GPIO75_GPIO | MFP_LPM_DRIVE_HIGH, /* column 9 */ |
119 | GPIO76_GPIO, /* column 10 */ | 119 | GPIO76_GPIO | MFP_LPM_DRIVE_HIGH, /* column 10 */ |
120 | GPIO77_GPIO, /* column 11 */ | 120 | GPIO77_GPIO | MFP_LPM_DRIVE_HIGH, /* column 11 */ |
121 | GPIO58_GPIO, /* row 0 */ | 121 | GPIO58_GPIO, /* row 0 */ |
122 | GPIO59_GPIO, /* row 1 */ | 122 | GPIO59_GPIO, /* row 1 */ |
123 | GPIO60_GPIO, /* row 2 */ | 123 | GPIO60_GPIO, /* row 2 */ |
@@ -128,13 +128,20 @@ static unsigned long corgi_pin_config[] __initdata = { | |||
128 | GPIO65_GPIO, /* row 7 */ | 128 | GPIO65_GPIO, /* row 7 */ |
129 | 129 | ||
130 | /* GPIO */ | 130 | /* GPIO */ |
131 | GPIO9_GPIO, /* CORGI_GPIO_nSD_DETECT */ | 131 | GPIO9_GPIO, /* CORGI_GPIO_nSD_DETECT */ |
132 | GPIO7_GPIO, /* CORGI_GPIO_nSD_WP */ | 132 | GPIO7_GPIO, /* CORGI_GPIO_nSD_WP */ |
133 | GPIO33_GPIO, /* CORGI_GPIO_SD_PWR */ | 133 | GPIO11_GPIO | WAKEUP_ON_EDGE_BOTH, /* CORGI_GPIO_MAIN_BAT_{LOW,COVER} */ |
134 | GPIO22_GPIO, /* CORGI_GPIO_IR_ON */ | 134 | GPIO13_GPIO | MFP_LPM_KEEP_OUTPUT, /* CORGI_GPIO_LED_ORANGE */ |
135 | GPIO44_GPIO, /* CORGI_GPIO_HSYNC */ | 135 | GPIO21_GPIO, /* CORGI_GPIO_ADC_TEMP */ |
136 | 136 | GPIO22_GPIO, /* CORGI_GPIO_IR_ON */ | |
137 | GPIO1_GPIO | WAKEUP_ON_EDGE_RISE, | 137 | GPIO33_GPIO, /* CORGI_GPIO_SD_PWR */ |
138 | GPIO38_GPIO | MFP_LPM_KEEP_OUTPUT, /* CORGI_GPIO_CHRG_ON */ | ||
139 | GPIO43_GPIO | MFP_LPM_KEEP_OUTPUT, /* CORGI_GPIO_CHRG_UKN */ | ||
140 | GPIO44_GPIO, /* CORGI_GPIO_HSYNC */ | ||
141 | |||
142 | GPIO0_GPIO | WAKEUP_ON_EDGE_BOTH, /* CORGI_GPIO_KEY_INT */ | ||
143 | GPIO1_GPIO | WAKEUP_ON_EDGE_RISE, /* CORGI_GPIO_AC_IN */ | ||
144 | GPIO3_GPIO | WAKEUP_ON_EDGE_BOTH, /* CORGI_GPIO_WAKEUP */ | ||
138 | }; | 145 | }; |
139 | 146 | ||
140 | /* | 147 | /* |
@@ -437,6 +444,7 @@ static struct platform_device corgiled_device = { | |||
437 | * to give the card a chance to fully insert/eject. | 444 | * to give the card a chance to fully insert/eject. |
438 | */ | 445 | */ |
439 | static struct pxamci_platform_data corgi_mci_platform_data = { | 446 | static struct pxamci_platform_data corgi_mci_platform_data = { |
447 | .detect_delay_ms = 250, | ||
440 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, | 448 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, |
441 | .gpio_card_detect = -1, | 449 | .gpio_card_detect = -1, |
442 | .gpio_card_ro = CORGI_GPIO_nSD_WP, | 450 | .gpio_card_ro = CORGI_GPIO_nSD_WP, |
@@ -672,6 +680,15 @@ static void __init corgi_init(void) | |||
672 | 680 | ||
673 | pxa2xx_mfp_config(ARRAY_AND_SIZE(corgi_pin_config)); | 681 | pxa2xx_mfp_config(ARRAY_AND_SIZE(corgi_pin_config)); |
674 | 682 | ||
683 | /* allow wakeup from various GPIOs */ | ||
684 | gpio_set_wake(CORGI_GPIO_KEY_INT, 1); | ||
685 | gpio_set_wake(CORGI_GPIO_WAKEUP, 1); | ||
686 | gpio_set_wake(CORGI_GPIO_AC_IN, 1); | ||
687 | gpio_set_wake(CORGI_GPIO_CHRG_FULL, 1); | ||
688 | |||
689 | if (!machine_is_corgi()) | ||
690 | gpio_set_wake(CORGI_GPIO_MAIN_BAT_LOW, 1); | ||
691 | |||
675 | pxa_set_ffuart_info(NULL); | 692 | pxa_set_ffuart_info(NULL); |
676 | pxa_set_btuart_info(NULL); | 693 | pxa_set_btuart_info(NULL); |
677 | pxa_set_stuart_info(NULL); | 694 | pxa_set_stuart_info(NULL); |
@@ -679,7 +696,6 @@ static void __init corgi_init(void) | |||
679 | corgi_init_spi(); | 696 | corgi_init_spi(); |
680 | 697 | ||
681 | pxa_set_udc_info(&udc_info); | 698 | pxa_set_udc_info(&udc_info); |
682 | corgi_mci_platform_data.detect_delay = msecs_to_jiffies(250); | ||
683 | pxa_set_mci_info(&corgi_mci_platform_data); | 699 | pxa_set_mci_info(&corgi_mci_platform_data); |
684 | pxa_set_ficp_info(&corgi_ficp_platform_data); | 700 | pxa_set_ficp_info(&corgi_ficp_platform_data); |
685 | pxa_set_i2c_info(NULL); | 701 | pxa_set_i2c_info(NULL); |