lantiq: Configure gpio power output pin when initializing dwc2 usb
authorJohn Crispin <john@openwrt.org>
Wed, 11 Mar 2015 17:08:08 +0000 (17:08 +0000)
committerJohn Crispin <john@openwrt.org>
Wed, 11 Mar 2015 17:08:08 +0000 (17:08 +0000)
Port gpio code from original ltq-hcd driver to dwc2.

Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
Signed-off-by: Vincent Pelletier <plr.vincent@gmail.com>
SVN-Revision: 44673

target/linux/lantiq/patches-3.18/0040-USB-DWC2-enable-usb-power-gpio.patch [new file with mode: 0644]

diff --git a/target/linux/lantiq/patches-3.18/0040-USB-DWC2-enable-usb-power-gpio.patch b/target/linux/lantiq/patches-3.18/0040-USB-DWC2-enable-usb-power-gpio.patch
new file mode 100644 (file)
index 0000000..4e51d3e
--- /dev/null
@@ -0,0 +1,35 @@
+--- a/drivers/usb/dwc2/platform.c      2015-02-06 16:53:48.000000000 +0200
++++ b/drivers/usb/dwc2/platform.c      2015-02-09 19:22:41.974089626 +0200
+@@ -40,6 +40,7 @@
+ #include <linux/device.h>
+ #include <linux/dma-mapping.h>
+ #include <linux/of_device.h>
++#include <linux/of_gpio.h>
+ #include <linux/platform_device.h>
+ #include <linux/usb/of.h>
+@@ -154,6 +155,7 @@
+       struct resource *res;
+       int retval;
+       int irq;
++      int gpio_count;
+       if (usb_disabled())
+               return -ENODEV;
+@@ -173,6 +175,16 @@
+               defparams.dma_desc_enable = 0;
+       }
++      gpio_count = of_gpio_count(dev->dev.of_node);
++      while (gpio_count > 0) {
++              enum of_gpio_flags flags;
++              int gpio = of_get_gpio_flags(dev->dev.of_node, --gpio_count, &flags);
++              if (gpio_request(gpio, "usb"))
++                      continue;
++              dev_info(&dev->dev, "requested GPIO %d\n", gpio);
++              gpio_direction_output(gpio, (flags & OF_GPIO_ACTIVE_LOW) ? (0) : (1));
++      }
++
+       hsotg = devm_kzalloc(&dev->dev, sizeof(*hsotg), GFP_KERNEL);
+       if (!hsotg)
+               return -ENOMEM;