Commit 9d5b72de authored by Lars Poeschel's avatar Lars Poeschel Committed by Samuel Ortiz

gpio: Add viperboard gpio driver

This adds the mfd cell to use the gpio a and gpio b part
of the Nano River Technologies viperboard.
Signed-off-by: default avatarLars Poeschel <poeschel@lemonage.de>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent f01312d8
...@@ -649,4 +649,17 @@ config GPIO_MSIC ...@@ -649,4 +649,17 @@ config GPIO_MSIC
Enable support for GPIO on intel MSIC controllers found in Enable support for GPIO on intel MSIC controllers found in
intel MID devices intel MID devices
comment "USB GPIO expanders:"
config GPIO_VIPERBOARD
tristate "Viperboard GPIO a & b support"
depends on MFD_VIPERBOARD && USB
help
Say yes here to access the GPIO signals of Nano River
Technologies Viperboard. There are two GPIO chips on the
board: gpioa and gpiob.
See viperboard API specification and Nano
River Tech's viperboard.h for detailed meaning
of the module parameters.
endif endif
...@@ -71,6 +71,7 @@ obj-$(CONFIG_GPIO_TPS65912) += gpio-tps65912.o ...@@ -71,6 +71,7 @@ obj-$(CONFIG_GPIO_TPS65912) += gpio-tps65912.o
obj-$(CONFIG_GPIO_TWL4030) += gpio-twl4030.o obj-$(CONFIG_GPIO_TWL4030) += gpio-twl4030.o
obj-$(CONFIG_GPIO_TWL6040) += gpio-twl6040.o obj-$(CONFIG_GPIO_TWL6040) += gpio-twl6040.o
obj-$(CONFIG_GPIO_UCB1400) += gpio-ucb1400.o obj-$(CONFIG_GPIO_UCB1400) += gpio-ucb1400.o
obj-$(CONFIG_GPIO_VIPERBOARD) += gpio-viperboard.o
obj-$(CONFIG_GPIO_VR41XX) += gpio-vr41xx.o obj-$(CONFIG_GPIO_VR41XX) += gpio-vr41xx.o
obj-$(CONFIG_GPIO_VT8500) += gpio-vt8500.o obj-$(CONFIG_GPIO_VT8500) += gpio-vt8500.o
obj-$(CONFIG_GPIO_VX855) += gpio-vx855.o obj-$(CONFIG_GPIO_VX855) += gpio-vx855.o
......
This diff is collapsed.
...@@ -38,6 +38,9 @@ static const struct usb_device_id vprbrd_table[] = { ...@@ -38,6 +38,9 @@ static const struct usb_device_id vprbrd_table[] = {
MODULE_DEVICE_TABLE(usb, vprbrd_table); MODULE_DEVICE_TABLE(usb, vprbrd_table);
static struct mfd_cell vprbrd_devs[] = { static struct mfd_cell vprbrd_devs[] = {
{
.name = "viperboard-gpio",
},
}; };
static int vprbrd_probe(struct usb_interface *interface, static int vprbrd_probe(struct usb_interface *interface,
......
...@@ -44,6 +44,8 @@ ...@@ -44,6 +44,8 @@
#define VPRBRD_USB_TIMEOUT_MS 100 #define VPRBRD_USB_TIMEOUT_MS 100
#define VPRBRD_USB_REQUEST_MAJOR 0xea #define VPRBRD_USB_REQUEST_MAJOR 0xea
#define VPRBRD_USB_REQUEST_MINOR 0xeb #define VPRBRD_USB_REQUEST_MINOR 0xeb
#define VPRBRD_USB_REQUEST_GPIOA 0xed
#define VPRBRD_USB_REQUEST_GPIOB 0xdd
struct vprbrd_i2c_write_hdr { struct vprbrd_i2c_write_hdr {
u8 cmd; u8 cmd;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment