Hi

On 20/05/13 12:05, Igor Grinberg wrote:
> Hi Michael,
> 
> Sorry for missing the subject last time...
> For the subject:
> In the square brackets, it should be stated just [PATCH vX]
> Afterwards, should come the subsystem/platform
> and then short yet meaningful patch description. For example:
> [PATCH v2] usb: omap: ulpi: fix ulpi transceiver access
> 
> Also, the patch submission rules are available at:
> http://www.denx.de/wiki/view/U-Boot/Patches#General_Patch_Submission_Rules
> I think it is worth reading.
> 

Sorry, I know but I'm so busy that I have almost edit the last one. 
I will re-submit :(

Michael

> 
> On 05/20/13 11:53, Michael Trimarchi wrote:
>> This patch fix the omap access to the transceiver configuration registers
>> using the ulpi bus. As reported by the documentation the bit31 is used
>> only to check if the transaction is done or still running and the reading
>> and writing operation have different offset and have different values.
>> What we need to do at the end of a transaction is leave the bus in done 
>> state.
>> Anyway an error using the ulpi omap register is not recoverable so any error
>> give out the usage of this interface.
>>
>> Signed-off-by: Michael Trimarchi <mich...@amarulasolutions.com>
> 
> You can add the below tag to your future submissions of this patch
> (if you decide to fix the subject).
> 
> Reviewed-by: Igor Grinberg <grinb...@compulab.co.il>
> 
>> ---
>>
>> Changes for V2:
>>      - Fix commit message
>>
>> ---
>>  drivers/usb/ulpi/omap-ulpi-viewport.c |   40 
>> +++++++--------------------------
>>  1 file changed, 8 insertions(+), 32 deletions(-)
>>
>> diff --git a/drivers/usb/ulpi/omap-ulpi-viewport.c 
>> b/drivers/usb/ulpi/omap-ulpi-viewport.c
>> index 3c1ea1a..2a42033 100644
>> --- a/drivers/usb/ulpi/omap-ulpi-viewport.c
>> +++ b/drivers/usb/ulpi/omap-ulpi-viewport.c
>> @@ -22,18 +22,19 @@
>>  #include <asm/io.h>
>>  #include <usb/ulpi.h>
>>  
>> -#define OMAP_ULPI_WR_OPSEL  (3 << 21)
>> -#define OMAP_ULPI_ACCESS    (1 << 31)
>> +#define OMAP_ULPI_WR_OPSEL  (2 << 22)
>> +#define OMAP_ULPI_RD_OPSEL  (3 << 22)
>> +#define OMAP_ULPI_START             (1 << 31)
>>  
>>  /*
>> - * Wait for the ULPI Access to complete
>> + * Wait for having ulpi in done state
>>   */
>>  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);
>> @@ -43,40 +44,15 @@ static int ulpi_wait(struct ulpi_viewport *ulpi_vp, u32 
>> mask)
>>  }
>>  
>>  /*
>> - * Wake the ULPI PHY up for communication
>> - *
>> - * returns 0 on success.
>> - */
>> -static int ulpi_wakeup(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");
>> -
>> -    return err;
>> -}
>> -
>> -/*
>>   * Issue a ULPI read/write request
>>   */
>>  static int ulpi_request(struct ulpi_viewport *ulpi_vp, u32 value)
>>  {
>>      int err;
>>  
>> -    err = ulpi_wakeup(ulpi_vp);
>> -    if (err)
>> -            return err;
>> -
>>      writel(value, ulpi_vp->viewport_addr);
>>  
>> -    err = ulpi_wait(ulpi_vp, OMAP_ULPI_ACCESS);
>> +    err = ulpi_wait(ulpi_vp, OMAP_ULPI_START);
>>      if (err)
>>              debug("ULPI request timed out\n");
>>  
>> @@ -85,7 +61,7 @@ static int ulpi_request(struct ulpi_viewport *ulpi_vp, u32 
>> value)
>>  
>>  int ulpi_write(struct ulpi_viewport *ulpi_vp, u8 *reg, u32 value)
>>  {
>> -    u32 val = ((ulpi_vp->port_num & 0xf) << 24) |
>> +    u32 val = (OMAP_ULPI_START | (ulpi_vp->port_num & 0xf) << 24) |
>>                      OMAP_ULPI_WR_OPSEL | ((u32)reg << 16) | (value & 0xff);
>>  
>>      return ulpi_request(ulpi_vp, val);
>> @@ -95,7 +71,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)
>>
> 


-- 
| Michael Nazzareno Trimarchi                     Amarula Solutions BV |
| COO  -  Founder                                      Cruquiuskade 47 |
| +31(0)851119172                                 Amsterdam 1018 AM NL |


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to