diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2016-08-31 06:28:19 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2016-09-22 04:39:04 -0400 |
commit | 5805271d908aa34912265dba41bcb902588e0ff7 (patch) | |
tree | cced6f63d6a0230178ab8d9a849c32c3205f8aac | |
parent | c8f9ce556ba2fca6b9abdfac508afb9905aac6b8 (diff) |
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 <rmk+kernel@armlinux.org.uk>
-rw-r--r-- | drivers/pcmcia/soc_common.c | 6 | ||||
-rw-r--r-- | drivers/pcmcia/soc_common.h | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/drivers/pcmcia/soc_common.c b/drivers/pcmcia/soc_common.c index 3eb30916be26..153f3122283d 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) | |||
218 | skt->stat[i].desc = gpio_to_desc(skt->stat[i].gpio); | 218 | skt->stat[i].desc = gpio_to_desc(skt->stat[i].gpio); |
219 | } | 219 | } |
220 | 220 | ||
221 | if (skt->stat[i].desc) { | 221 | if (i < SOC_STAT_VS1 && skt->stat[i].desc) { |
222 | int irq = gpiod_to_irq(skt->stat[i].desc); | 222 | int irq = gpiod_to_irq(skt->stat[i].desc); |
223 | 223 | ||
224 | if (irq > 0) { | 224 | if (irq > 0) { |
@@ -295,6 +295,10 @@ static unsigned int soc_common_pcmcia_skt_state(struct soc_pcmcia_socket *skt) | |||
295 | state.bvd1 = !!gpiod_get_value(skt->stat[SOC_STAT_BVD1].desc); | 295 | state.bvd1 = !!gpiod_get_value(skt->stat[SOC_STAT_BVD1].desc); |
296 | if (skt->stat[SOC_STAT_BVD2].desc) | 296 | if (skt->stat[SOC_STAT_BVD2].desc) |
297 | state.bvd2 = !!gpiod_get_value(skt->stat[SOC_STAT_BVD2].desc); | 297 | state.bvd2 = !!gpiod_get_value(skt->stat[SOC_STAT_BVD2].desc); |
298 | if (skt->stat[SOC_STAT_VS1].desc) | ||
299 | state.vs_3v = !!gpiod_get_value(skt->stat[SOC_STAT_VS1].desc); | ||
300 | if (skt->stat[SOC_STAT_VS2].desc) | ||
301 | state.vs_Xv = !!gpiod_get_value(skt->stat[SOC_STAT_VS2].desc); | ||
298 | 302 | ||
299 | skt->ops->socket_state(skt, &state); | 303 | skt->ops->socket_state(skt, &state); |
300 | 304 | ||
diff --git a/drivers/pcmcia/soc_common.h b/drivers/pcmcia/soc_common.h index 7833eae86960..f2078aecb914 100644 --- a/drivers/pcmcia/soc_common.h +++ b/drivers/pcmcia/soc_common.h | |||
@@ -62,11 +62,13 @@ struct soc_pcmcia_socket { | |||
62 | struct gpio_desc *desc; | 62 | struct gpio_desc *desc; |
63 | unsigned int irq; | 63 | unsigned int irq; |
64 | const char *name; | 64 | const char *name; |
65 | } stat[4]; | 65 | } stat[6]; |
66 | #define SOC_STAT_CD 0 /* Card detect */ | 66 | #define SOC_STAT_CD 0 /* Card detect */ |
67 | #define SOC_STAT_BVD1 1 /* BATDEAD / IOSTSCHG */ | 67 | #define SOC_STAT_BVD1 1 /* BATDEAD / IOSTSCHG */ |
68 | #define SOC_STAT_BVD2 2 /* BATWARN / IOSPKR */ | 68 | #define SOC_STAT_BVD2 2 /* BATWARN / IOSPKR */ |
69 | #define SOC_STAT_RDY 3 /* Ready / Interrupt */ | 69 | #define SOC_STAT_RDY 3 /* Ready / Interrupt */ |
70 | #define SOC_STAT_VS1 4 /* Voltage sense 1 */ | ||
71 | #define SOC_STAT_VS2 5 /* Voltage sense 2 */ | ||
70 | 72 | ||
71 | struct gpio_desc *gpio_reset; | 73 | struct gpio_desc *gpio_reset; |
72 | struct gpio_desc *gpio_bus_enable; | 74 | struct gpio_desc *gpio_bus_enable; |