From 5805271d908aa34912265dba41bcb902588e0ff7 Mon Sep 17 00:00:00 2001 From: Russell King Date: Wed, 31 Aug 2016 11:28:19 +0100 Subject: pcmcia: soc_common: add support for voltage sense GPIOs Add support for the voltage sense GPIOs which are wired up on some platforms. Signed-off-by: Russell King diff --git a/drivers/pcmcia/soc_common.c b/drivers/pcmcia/soc_common.c index 3eb3091..153f312 100644 --- a/drivers/pcmcia/soc_common.c +++ b/drivers/pcmcia/soc_common.c @@ -218,7 +218,7 @@ static int soc_pcmcia_hw_init(struct soc_pcmcia_socket *skt) skt->stat[i].desc = gpio_to_desc(skt->stat[i].gpio); } - if (skt->stat[i].desc) { + if (i < SOC_STAT_VS1 && skt->stat[i].desc) { int irq = gpiod_to_irq(skt->stat[i].desc); if (irq > 0) { @@ -295,6 +295,10 @@ static unsigned int soc_common_pcmcia_skt_state(struct soc_pcmcia_socket *skt) state.bvd1 = !!gpiod_get_value(skt->stat[SOC_STAT_BVD1].desc); if (skt->stat[SOC_STAT_BVD2].desc) state.bvd2 = !!gpiod_get_value(skt->stat[SOC_STAT_BVD2].desc); + if (skt->stat[SOC_STAT_VS1].desc) + state.vs_3v = !!gpiod_get_value(skt->stat[SOC_STAT_VS1].desc); + if (skt->stat[SOC_STAT_VS2].desc) + state.vs_Xv = !!gpiod_get_value(skt->stat[SOC_STAT_VS2].desc); skt->ops->socket_state(skt, &state); diff --git a/drivers/pcmcia/soc_common.h b/drivers/pcmcia/soc_common.h index 7833eae..f2078aec 100644 --- a/drivers/pcmcia/soc_common.h +++ b/drivers/pcmcia/soc_common.h @@ -62,11 +62,13 @@ struct soc_pcmcia_socket { struct gpio_desc *desc; unsigned int irq; const char *name; - } stat[4]; + } stat[6]; #define SOC_STAT_CD 0 /* Card detect */ #define SOC_STAT_BVD1 1 /* BATDEAD / IOSTSCHG */ #define SOC_STAT_BVD2 2 /* BATWARN / IOSPKR */ #define SOC_STAT_RDY 3 /* Ready / Interrupt */ +#define SOC_STAT_VS1 4 /* Voltage sense 1 */ +#define SOC_STAT_VS2 5 /* Voltage sense 2 */ struct gpio_desc *gpio_reset; struct gpio_desc *gpio_bus_enable; -- cgit v0.10.2