[U-Boot] [PATCH v3] usb: omap: ulpi: fix ulpi transceiver access

Michael Trimarchi michael at amarulasolutions.com
Sun Jun 9 23:17:21 CEST 2013


Hi Marek

On 06/09/2013 11:09 PM, Marek Vasut wrote:
> Dear Michael Trimarchi,
> 
>> Dear Marek
>>
>> On 06/09/2013 10:05 PM, Marek Vasut wrote:
>>> Dear Michael Trimarchi,
>>>
>>>> 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 <michael at amarulasolutions.com>
>>>> Reviewed-by: Igor Grinberg <grinberg at compulab.co.il>
>>>
>>> Tom, can you ACK/NAK this ? I have no omap board.
>>
>> I don't understand the point, the old code was wrong and you can
>> check omap3/omap4 documentation. If you revert it you still have a wrong
>> code so it's better to drop omap3/4 viewport.
>>
>> You can take a look at this patch
>>
>> http://git.omapzoom.org/?p=kernel/omap.git;a=commitdiff;h=2a18e1248588c326f
>> 0a63c5bce4a611d709130a8
>>
>> that is used to fix this errata
>>
>> http://git.omapzoom.org/?p=kernel/omap.git;a=commitdiff;h=a0dd0ee69578e32f1
>> 469596b8fd3a6c8ef172d42
>>
>> I'm using this ulpi code in one of our device. I have fixed the u-boot
>> viewport code because I have seen it wrong. Sorry for the late response
>> but I was busy for a Wedding ;)
> 
> Fear not! I'm busy having no life, it's really hard task! I will actually be 
> busy with that until sometimes mid-next-week.
> 
>> I can try to test it tomorrow on an omap3
>> device but I think that is more easy for Stefano because he has already a
>> platform with a recent uboot
> 
> I don't care who tests it, I'd just like to make sure it's tested on more 
> devices than one ;-)

I think that I have already understand the problem. 
The port_num is used starting from 0 in omap-ehci, so if this is correct my patch need a fix

from

u32 val = (OMAP_ULPI_START | (ulpi_vp->port_num & 0xf) << 24) |
 			OMAP_ULPI_WR_OPSEL | ((u32)reg << 16) | (value & 0xff);

to

u32 val = (OMAP_ULPI_START | ((ulpi_vp->port_num + 1) & 0xf) << 24) |
 			OMAP_ULPI_WR_OPSEL | ((u32)reg << 16) | (value & 0xff);

Michael

> 
> Best regards,
> Marek Vasut
> 



More information about the U-Boot mailing list