Hi,
We are implementing a device driver with AM3352 USB controller as the USB host, using VxWorks.
We initialize the USB controller in the following order.
1.Set Core PLL
2.Enable L3 Slow
3.Set Per PLL
4.Enable CLKDCOLDO
5.Enable USB module
6.Initialize USB SubSystem
7.Initialize USB1 Ctrl
8.Initialize USB1 PHY
9.Initialize USB1 Core
At the 8th step 'USB1 PHY' Initialization, after setting each register, the read value is different from the set value .
Therefore, after initialization, if connect a USB device, connection interrupt does not occur.
However, if we insert 1msec delay after setting each PHY register, the read value is correct.
Example of a problematic case:
1. set PHY_TERM_CTRL
2. set RX_CALIB
3. read PHY_TERM_CTRL
The read value of PHY_THRM_CTRL is different from the set value .
Example of an OK case
1. set PHY_TERM_CTRL
2. wait 1 msec
3. set RX_CALIB
3. read PHY_TERM_CTRL
The read value of PHY_THRM_CTRL is same as the set value .
Is this symptom correct?
Is 1 msec wait necessary?