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
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.
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