On Wed, 13 Mar 2013, Alexander Graf wrote: > On my Exynos 5 based Arndale system, I need to pull the reset line down > and then let it go up again to actually perform a reset. Without that > reset, I can't find any USB hubs on my bus, rendering the USB controller > useless. > > So this patch implements the above logic, making EHCI and OHCI work on > Arndale systems for me. > > Signed-off-by: Alexander Graf <agraf@xxxxxxx> > CC: Vivek Gautam <gautam.vivek@xxxxxxxxxxx> > CC: Jingoo Han <jg1.han@xxxxxxxxxxx> > CC: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > CC: Kukjin Kim <kgene.kim@xxxxxxxxxxx> > CC: Felipe Balbi <balbi@xxxxxx> > CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > --- > > As this affects 3.9, this patch should definitely be considered for inclusion > there. > --- > drivers/usb/host/ehci-s5p.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/host/ehci-s5p.c b/drivers/usb/host/ehci-s5p.c > index 20ebf6a..c6d67e4 100644 > --- a/drivers/usb/host/ehci-s5p.c > +++ b/drivers/usb/host/ehci-s5p.c > @@ -103,9 +103,15 @@ static void s5p_setup_vbus_gpio(struct platform_device *pdev) > if (!gpio_is_valid(gpio)) > return; > > - err = gpio_request_one(gpio, GPIOF_OUT_INIT_HIGH, "ehci_vbus_gpio"); > - if (err) > + /* reset pulls the line down, then up again */ > + err = gpio_request_one(gpio, GPIOF_OUT_INIT_LOW, "ehci_vbus_gpio"); > + if (err) { > dev_err(&pdev->dev, "can't request ehci vbus gpio %d", gpio); > + return; > + } > + mdelay(1); > + __gpio_set_value(gpio, 1); > + gpio_free(gpio); > } > > static u64 ehci_s5p_dma_mask = DMA_BIT_MASK(32); Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html