summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-pxa/colibri-pxa270.c24
-rw-r--r--arch/arm/mach-pxa/colibri-pxa320.c23
2 files changed, 46 insertions, 1 deletions
diff --git a/arch/arm/mach-pxa/colibri-pxa270.c b/arch/arm/mach-pxa/colibri-pxa270.c
index 2f2cd2ae4187..3dcc122c1021 100644
--- a/arch/arm/mach-pxa/colibri-pxa270.c
+++ b/arch/arm/mach-pxa/colibri-pxa270.c
@@ -6,7 +6,7 @@
* Daniel Mack <daniel@caiaq.de>
* Marek Vasut <marek.vasut@gmail.com>
*/
-
+#include <linux/gpio/machine.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/moduleparam.h>
@@ -76,8 +76,29 @@ static mfp_cfg_t colibri_pxa270_evalboard_pin_config[] __initdata = {
GPIO117_I2C_SCL,
GPIO118_I2C_SDA,
};
+
+static struct gpiod_lookup_table colibri_pxa270_pcmcia_gpio_table = {
+ .dev_id = "pxa2xx-pcmcia",
+ .table = {
+ GPIO_LOOKUP("GPIO", 1, "ready", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("GPIO", 53, "reset", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("GPIO", 82, "bvd2", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("GPIO", 83, "bvd1", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("GPIO", 84, "detect", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("GPIO", 107, "ppen", GPIO_ACTIVE_HIGH),
+ { },
+ },
+};
+
+static void colibri_pxa270_init_pcmcia(void)
+{
+ gpiod_add_lookup_table(&colibri_pxa270_pcmcia_gpio_table);
+}
#else
static mfp_cfg_t colibri_pxa270_evalboard_pin_config[] __initdata = {};
+static void colibri_pxa270_init_pcmcia(void)
+{
+}
#endif
#ifdef CONFIG_MACH_COLIBRI_PXA270_INCOME
@@ -282,6 +303,7 @@ static void __init colibri_pxa270_init(void)
case COLIBRI_EVALBOARD:
pxa2xx_mfp_config(ARRAY_AND_SIZE(
colibri_pxa270_evalboard_pin_config));
+ colibri_pxa270_init_pcmcia();
colibri_evalboard_init();
break;
case COLIBRI_PXA270_INCOME:
diff --git a/arch/arm/mach-pxa/colibri-pxa320.c b/arch/arm/mach-pxa/colibri-pxa320.c
index 35dd3adb7712..1109e10f7022 100644
--- a/arch/arm/mach-pxa/colibri-pxa320.c
+++ b/arch/arm/mach-pxa/colibri-pxa320.c
@@ -13,6 +13,7 @@
#include <linux/platform_device.h>
#include <linux/gpio/machine.h>
#include <linux/gpio.h>
+#include <linux/gpio/machine.h>
#include <linux/interrupt.h>
#include <asm/mach-types.h>
@@ -91,8 +92,29 @@ static mfp_cfg_t colibri_pxa320_evalboard_pin_config[] __initdata = {
GPIO79_GPIO, /* PBVD2 */
GPIO54_GPIO, /* POE */
};
+
+static struct gpiod_lookup_table colibri_pxa320_pcmcia_gpio_table = {
+ .dev_id = "pxa2xx-pcmcia",
+ .table = {
+ GPIO_LOOKUP("GPIO", 29, "ready", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("GPIO", 53, "bvd1", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("GPIO", 57, "ppen", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("GPIO", 77, "reset", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("GPIO", 79, "bvd2", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("GPIO", 81, "detect", GPIO_ACTIVE_HIGH),
+ { },
+ },
+};
+
+static void colibri_pxa320_init_pcmcia(void)
+{
+ gpiod_add_lookup_table(&colibri_pxa320_pcmcia_gpio_table);
+}
#else
static mfp_cfg_t colibri_pxa320_evalboard_pin_config[] __initdata = {};
+static void colibri_pxa320_init_pcmcia(void)
+{
+}
#endif
#if defined(CONFIG_AX88796)
@@ -245,6 +267,7 @@ void __init colibri_pxa320_init(void)
colibri_pxa3xx_init_lcd(mfp_to_gpio(GPIO49_GPIO));
colibri_pxa320_init_ac97();
colibri_pxa320_init_udc();
+ colibri_pxa320_init_pcmcia();
/* Evalboard init */
pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_evalboard_pin_config));