pcmcia: soc_common: add support for voltage sense GPIOs
authorRussell King <rmk+kernel@armlinux.org.uk>
Wed, 31 Aug 2016 10:28:19 +0000 (11:28 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Thu, 22 Sep 2016 08:39:04 +0000 (09:39 +0100)
Add support for the voltage sense GPIOs which are wired up on some
platforms.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
drivers/pcmcia/soc_common.c
drivers/pcmcia/soc_common.h

index 3eb30916be26d2c9bba3a93471786867904882e7..153f3122283deb9fa4260c0e1da0c443a5fde2c0 100644 (file)
@@ -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);
 
index 7833eae86960c15a8b1dc81bc8f3b5b89eda2f16..f2078aecb9149ca05259473994bdcffe8e83bbc8 100644 (file)
@@ -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;