This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Is USB3320 initialized in OS?

Hello,

I'm just wondering if USB3320 transceiver initialized in WinCE OS?

I have searched code, but couldn't find where it's initialized. How can I retrieve info from USB3320 since I want to check some register values in it.

Thanks,

james

  • James,

    You don't mention which BSP you're using, but the unified A8 BSP (2.30) has some support for accessing the USB PHY in this file.

    C:\WINCE700\PLATFORM\COMMON\SRC\SOC\COMMON_TI_V1\COMMON_TI\USB\EHCIPDD\system.c

    Look for the UlpiReadReg function.

    Hope this helps,
    Carsten

  • Hi Carsten,

    Thanks for pointing out the location of UlpiReadReg function. I'm using unified A8 BSP (2.30) source code.

    Now I'm able to dump register values from USB3320 transceiver.

    In our customized design, we added another USB3320 for port1 and enabled port1 in registry like this:

        "Port1Mode"=dword:1 ; Port 1 is supported now
        "Port1PwrGpio"=dword:60 ; GPIO_96
        "Port1PwrLevel"=dword:1
        "Port1RstGpio"=dword:39    ; GPIO_57

    The hardware configuration is the same as Port2.

    However, when I dump the register values from two USB3320 chips in InitializeEHCI function after ExternalDeviceDeassertReset(pPddObject);

    There are some differences in register settings:

    InitializeEHCI -------------------------------------------------------
    DumpUSBTransceiver - port = 2
    Port2 - Ulpi PHY Vendor ID Lo = 0x24
    Port2 - Ulpi PHY Vendor ID High = 0x4
    Port2 - Ulpi PHY Product ID Low = 0x7
    Port2 - Ulpi PHY Product ID High = 0x0
    Port2 - Ulpi PHY Function Control = 0x41
    Port2 - Ulpi PHY Interface Control = 0x0
    Port2 - Ulpi PHY OTG Control = 0x6
    Port2 - Ulpi PHY Interrupt EnableRising = 0x1f
    Port2 - Ulpi PHY Interrupt EnableFalling = 0x1f
    Port2 - Ulpi PHY Interrupt Status = 0x4
    DumpUSBTransceiver - port = 1
    Port1 - Ulpi PHY Vendor ID Lo = 0x24
    Port1 - Ulpi PHY Vendor ID High = 0x4
    Port1 - Ulpi PHY Product ID Low = 0x7
    Port1 - Ulpi PHY Product ID High = 0x0
    Port1 - Ulpi PHY Function Control = 0x45
    Port1 - Ulpi PHY Interface Control = 0x18
    Port1 - Ulpi PHY OTG Control = 0x66
    Port1 - Ulpi PHY Interrupt EnableRising = 0x1f
    Port1 - Ulpi PHY Interrupt EnableFalling = 0x1f
    Port1 - Ulpi PHY Interrupt Status = 0x4

    The differences are in Function Control, Interface Control,  and OTG Control.

                                 Function Control         Interface Control             OTG Control.

    Port2                       0x41                           0x0                                 0x6

    Port1                       0x45                           0x18                               0x66

    I would expect to see exactly the same register settings in these two transceivers since the hardware configurations are the same.

    Do you know where the code is to initialize USB3320 transceiver?

    Thanks,

    James

  • Why would you expect these registers to be the same?

    The ULPI protocol is a low level protocol between the OMAP silicon USB controller and the PHY and not really accessible from the BSP code. I would not expect these register content to be the same as they are on different ports. 

  • As far as I understand, the EHCI driver doesn't configure USB host transceiver. Therefore the register values inside transceiver should be the reset values.

    Since two USB33200 chips are connected to HSUSB1 and HSUSB2 respectively. Apart from ULPI interface, all other hardware configures are the same. That's why I expect to see the same values from these two transceivers.

    Thanks,

    James