summaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia/max1600.h
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@armlinux.org.uk>2018-11-28 14:57:23 +0100
committerRussell King <rmk+kernel@armlinux.org.uk>2018-12-04 23:37:38 +0100
commitbebdf98a786292501e4f7d596ffe61faaf3a3aca (patch)
treef65dbd50a6707f012a2f5e5652451273dc2ac421 /drivers/pcmcia/max1600.h
parentARM: sa1100: explicitly register sa11x0-pcmcia devices (diff)
downloadlinux-bebdf98a786292501e4f7d596ffe61faaf3a3aca.tar.xz
linux-bebdf98a786292501e4f7d596ffe61faaf3a3aca.zip
pcmcia: add MAX1600 library
Add a library for the MAX1600 PCMCIA power switch device. This is a dual-channel device, controlled via four GPIO signals per channel. Two signals control the Vcc output, and two control the Vpp output. Acked-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'drivers/pcmcia/max1600.h')
-rw-r--r--drivers/pcmcia/max1600.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/drivers/pcmcia/max1600.h b/drivers/pcmcia/max1600.h
new file mode 100644
index 000000000000..00bf1a09464f
--- /dev/null
+++ b/drivers/pcmcia/max1600.h
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef MAX1600_H
+#define MAX1600_H
+
+struct gpio_desc;
+
+enum {
+ MAX1600_GPIO_0VCC = 0,
+ MAX1600_GPIO_1VCC,
+ MAX1600_GPIO_0VPP,
+ MAX1600_GPIO_1VPP,
+ MAX1600_GPIO_MAX,
+
+ MAX1600_CHAN_A,
+ MAX1600_CHAN_B,
+
+ MAX1600_CODE_LOW,
+ MAX1600_CODE_HIGH,
+};
+
+struct max1600 {
+ struct gpio_desc *gpio[MAX1600_GPIO_MAX];
+ struct device *dev;
+ unsigned int code;
+};
+
+int max1600_init(struct device *dev, struct max1600 **ptr,
+ unsigned int channel, unsigned int code);
+
+int max1600_configure(struct max1600 *, unsigned int vcc, unsigned int vpp);
+
+#endif