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.

Relationship between OMAP3530 USB OTG controller and USB PHY in TPS65930

Other Parts Discussed in Thread: TPS65930

hi all, USB OTG controller and the USB PHY are conneced by ULPI,  is setting some register in 3530's OTG controller will have some registers set in 65930?

for example setting SOFTCONN bit of the POWER register will modify the DMPULLDOWN/DPPULLDOWN bits in OTG_CTRL register in65930?

  • Yes, some settings of OTG controller registers will generate a command byte transmit which may change registers in the ULPI Phy.

    For more details, please refer to the ULPI specification which can be found at the following URL.

    http://www.ulpi.org/documents.html

    Section 3.8.3 describes register operations.

     

    Regards,

    Paul

     

  • hi Paul,

    I have gone through that chapter. It just tells us how read/write the ULPI register set. what I concern about is which registers of the ULPI we shouldn't touch, and the 3530 OTG controller will take care of them.

    As you said: some settings of OTG controller registers will generate a command byte transmit which may change registers in the ULPI Phy.
    For each register of this kind, would you detail about which registers in the ULPI PHY will be changed?

    I found there're some vendor-specific reigisters. Do we just have to config these ones? We're using WinCE BSP 6.15.0 and I found the HSUSBOTGTransceiverTps659xx::Configure() function also set the USB_INT_EN_RISE_SET and FUNC_CTRL_CLR register directly through I2C. This makes me so confused.

    The reason I ask these questions is we want to verify the operation of the driver and we do have OTG problems in our custom board, such as when the OTG acts as peripheral, it frequently fails to connect to PC, and I check the setting of the OTG_CTRL, sometimes it have DP/DM pull-down enabled and if I clear the DP pull-down(through I2C), it will start connecting to PC successfully SOMETIMES.

  • The ULPI registers in the PHY are only accessed by the USB controller in most systems.  After reading the TPS65930 Technical Reference Manual, I now understand why you are asking this question.  My first reply did not comprehend the TPS65930’s capability of allowing access to these registers via I2C.

     

    I can ask the USB controller team which ULPI registers should only be modified by the USB controller, but that is only part of the potential problem.

     

    Register contents may be corrupted by accessing other ULPI registers if you do not follow the arbitration scheme described in Section 14.4.3 (Register Access and Arbitration Scheme) of the TPS65930 Technical Reference Manual. This section discusses an arbitration scheme that you must follow if you plan to access these registers via I2C.  Note: Register addresses do not have to be the same to create a register address conflict.

     

    I will ask the USB controller team if they can provide a list of ULPI registers which should not be modified via I2C.  This may take a few days to get an answer.

     

    I will also ask the software driver team if they implement the arbitration scheme defined in the TPS65930 Technical Reference Manual.

     

    Regards,

    Paul