aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2016-04-21 19:47:02 +0000
committerJohn Crispin <blogic@openwrt.org>2016-04-21 19:47:02 +0000
commit317280c283129a65d0e8d08907e9d9cf83a96b22 (patch)
tree9bc1c7bb6ea805c78b224df00f38fc5ac036eabf
parent3462032337eb98e8bd6d84bacd85a90669255d9e (diff)
downloadmaster-187ad058-317280c283129a65d0e8d08907e9d9cf83a96b22.tar.gz
master-187ad058-317280c283129a65d0e8d08907e9d9cf83a96b22.tar.bz2
master-187ad058-317280c283129a65d0e8d08907e9d9cf83a96b22.zip
ramips: awake rt305x USB controller
Because of Ralink uboot set USB controller into sleep mode [1] we check it and awake controller before any registers access. Fix ticket #21396 [2] [1] http://marc.info/?l=linux-usb&m=137398626102108&w=2 [2] https://dev.openwrt.org/ticket/21396 Signed-Off-By: Serge Vasilugin <vasilugin@yandex.ru> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49212 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/ramips/patches-4.4/0069-awake-rt305x-dwc2-controller.patch15
1 files changed, 15 insertions, 0 deletions
diff --git a/target/linux/ramips/patches-4.4/0069-awake-rt305x-dwc2-controller.patch b/target/linux/ramips/patches-4.4/0069-awake-rt305x-dwc2-controller.patch
new file mode 100644
index 0000000000..9608f6f331
--- /dev/null
+++ b/target/linux/ramips/patches-4.4/0069-awake-rt305x-dwc2-controller.patch
@@ -0,0 +1,15 @@
+--- a/drivers/usb/dwc2/platform.c
++++ b/drivers/usb/dwc2/platform.c
+@@ -375,6 +375,12 @@ static int dwc2_driver_probe(struct plat
+ dev_dbg(&dev->dev, "mapped PA %08lx to VA %p\n",
+ (unsigned long)res->start, hsotg->regs);
+
++ /* Enable USB port before any regs access */
++ if(dwc2_readl(hsotg->regs + PCGCTL) & 0x0f) {
++ dwc2_writel(0x00, hsotg->regs + PCGCTL);
++ /* TODO: mdelay(25) here? vendor driver don't use it */
++ }
++
+ hsotg->dr_mode = usb_get_dr_mode(&dev->dev);
+ if (IS_ENABLED(CONFIG_USB_DWC2_HOST) &&
+ hsotg->dr_mode != USB_DR_MODE_HOST) {