Cc'ed Marek and Govindraj. On 05/16/13 16:19, Michael Trimarchi wrote: > Hi
[...] Thanks for the patch, it looks like a correct fix. I'd like to hear that it works on an actual hardware. > >>From 7e99dcbe83e26fff3a0168105eec99003650b744 Mon Sep 17 00:00:00 2001 > From: Michael Trimarchi <mich...@amarulasolutions.com> > Date: Thu, 16 May 2013 15:16:17 +0200 > Subject: [PATCH] omap-ulpi: Fix the omap3/4 access function to the bus > Please, add explanation what that patch does (not just the subject). > Signed-off-by: Michael Trimarchi <mich...@amarulasolutions.com> Apart from the commit message: Reviewed-by: Igor Grinberg <grinb...@compulab.co.il> > --- > drivers/usb/ulpi/omap-ulpi-viewport.c | 16 +++++++--------- > 1 file changed, 7 insertions(+), 9 deletions(-) > > diff --git a/drivers/usb/ulpi/omap-ulpi-viewport.c > b/drivers/usb/ulpi/omap-ulpi-viewport.c > index 3c1ea1a..f849733 100644 > --- a/drivers/usb/ulpi/omap-ulpi-viewport.c > +++ b/drivers/usb/ulpi/omap-ulpi-viewport.c > @@ -22,7 +22,8 @@ > #include <asm/io.h> > #include <usb/ulpi.h> > > -#define OMAP_ULPI_WR_OPSEL (3 << 21) > +#define OMAP_ULPI_WR_OPSEL (2 << 22) > +#define OMAP_ULPI_RD_OPSEL (3 << 22) > #define OMAP_ULPI_ACCESS (1 << 31) > > /* > @@ -33,7 +34,7 @@ static int ulpi_wait(struct ulpi_viewport *ulpi_vp, u32 > mask) > int timeout = CONFIG_USB_ULPI_TIMEOUT; > > while (--timeout) { > - if ((readl(ulpi_vp->viewport_addr) & mask)) > + if (!(readl(ulpi_vp->viewport_addr) & mask)) > return 0; > > udelay(1); > @@ -47,18 +48,15 @@ static int ulpi_wait(struct ulpi_viewport *ulpi_vp, u32 > mask) > * > * returns 0 on success. > */ > -static int ulpi_wakeup(struct ulpi_viewport *ulpi_vp) > +static int ulpi_start(struct ulpi_viewport *ulpi_vp) > { > int err; > > - if (readl(ulpi_vp->viewport_addr) & OMAP_ULPI_ACCESS) > - return 0; /* already awake */ > - > writel(OMAP_ULPI_ACCESS, ulpi_vp->viewport_addr); > > err = ulpi_wait(ulpi_vp, OMAP_ULPI_ACCESS); > if (err) > - debug("ULPI wakeup timed out\n"); > + debug("ULPI start timed out\n"); > > return err; > } > @@ -70,7 +68,7 @@ static int ulpi_request(struct ulpi_viewport *ulpi_vp, u32 > value) > { > int err; > > - err = ulpi_wakeup(ulpi_vp); > + err = ulpi_start(ulpi_vp); > if (err) > return err; > > @@ -95,7 +93,7 @@ u32 ulpi_read(struct ulpi_viewport *ulpi_vp, u8 *reg) > { > int err; > u32 val = ((ulpi_vp->port_num & 0xf) << 24) | > - OMAP_ULPI_WR_OPSEL | ((u32)reg << 16); > + OMAP_ULPI_RD_OPSEL | ((u32)reg << 16); > > err = ulpi_request(ulpi_vp, val); > if (err) > -- Regards, Igor. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot