ulpi_check_integrity returning error

Arnaud Patard (Rtp) arnaud.patard at rtp-net.org
Tue Dec 14 10:03:46 EST 2010


Fabio Estevam <festevam at gmail.com> writes:

Hi,

> Hi Igor,
>
> [Adding linux-arm-kernel]
>
> On Tue, Dec 14, 2010 at 11:16 AM, Igor Grinberg <grinberg at compulab.co.il> wrote:
>> Hi Fabio,
>>
>> On 12/14/10 00:14, Fabio Estevam wrote:
>>> Hi,
>>>
>>> I am working on adding USB OTG host support for the mx31_3ds board
>>> (OTG PHY is a ISP1504).
>>
>> ISP1504 seems like ULPI compliant transceiver.
>>
>>> USB OTG in device mode works fine and I can only get OTG host mode to
>>> work if I force a 'return 0' into the ulpi_check_integrity function. I
>>> was wondering if anyone has any suggestions as to where to
>>> inspect/debug the fact that the read/write to the OTG PHY scratch
>>> register does not match.
>>
>> Both ULPI specifications (1.0 and 1.1) define the Scratch register as:
>> "an empty register byte for testing purposes. Software can read, write,
>> set and clear this register; and the functionality of the PHY will not be affected."
>> Therefore it should be implemented in the ISP1504 as such and according to
>> NXP's ISP1504 datasheet it should be there...
>>
>> What about the ID? Do you get the vendor/product ID value as expected?
>
> No, I am getting only zeros when reading vendor/product ID:
>
> ULPI transceiver vendor/product ID 0x0000/0x0000
>
> Even though the ULPI integrity check fails, if I force a 'return 0' in
> this function, then I am able to mount a USB stick and it is
> functional.
>
> There are other i.MX boards that support OTG in host mode via ULPI,
> such as pcm037, pca100, imx27_visstrim .
>
> I am curious to know if any of this boards can work in host mode OTG
> with current mainline kernel.

I guess you need to configure portsc register into ulpi mode in the
.init function of the mxc_usbh_platform_data otherwise, you won't be
able to reach the ulpi.

Thanks,
Arnaud



More information about the linux-arm-kernel mailing list