i.MX 6ULL USB_LDO Regulator Settings

Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX 6ULL USB_LDO Regulator Settings

Jump to solution
Contributor I

I am looking for information regarding MCIMX6Y1CVM05AB USB_LDO regulator configuration and whether output voltage vs supported data rates limitations exist.

We are configuring the i.MX 6ULL as the host for both USB2.0 ports (1 full / 1 HS). USB_LDO defaults to 2.625V when using 5.10.109 Linux kernel. Boot log pertaining to usb:

imx_usb 2184000.usb: No over current polarity defined
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
imx_usb 2184200.usb: No over current polarity defined

Section 39.4 of the uP reference manual states "the output of the regulator can be programmed in 25mV steps, from 2.625 to 3.4V." Please provide additional documentation that states functional limitations, if any, based on output voltage setting.

Schematic snippet is attached.



Labels (1)
0 Kudos
1 Solution
Contributor I


Thanks for the detailed and prompt response.  Issue resolved.


View solution in original post

0 Kudos
2 Replies
Contributor I


Thanks for the detailed and prompt response.  Issue resolved.


0 Kudos
NXP Employee
NXP Employee

Hi Kevin, 

Thanks for the question and providing a good description of what you are seeking more information on.

As you mentioned the reference manual does not go into additional details on the USB_LDO regulator configuration.  I sent your question into the NXP private community and have this response to share:

There is no documentation that states functional limitations based on output voltage setting of the USB_LDO regulator. The output voltage has nothing to do with supported data rates limitations.

Is there some issue with that? If yes, could you try to change the output voltage to 3.0V from 2.625V.


Researching your question, I did find an article that was in the NXP internal only private community: "i.MX6 USB LDO Configuration", covering all i.MX6 families. Here was the post:

i.MX6 USB LDO Configuration

The purpose for the USB_LDO (Regulator 3P0 - PMU_REG_3P0) is to provide the 3.0V power necessary for USB PHY. The current draw on this regulator is very low, even during operation.

Since the expected behavior of the processor is to be able to wake-up out of deep-sleep mode in the event of communications on the USB bus, it was determined to source the power for this regulator from the USB 5V bus (either H1 or OTG), since this bus had to be powered to support USB operations.
This allows the PMIC to provide a minimum power mode to the processor, particularly if the 5V power is being provided by an external host. The tradeoff is that there are many restrictions on this bus.

In sourcing the USB_LDO regulator from the USB 5V bus, provisions had to be made to limit inrush current when the USB 5V bus is first powered on, to meet the requirements of the USB 2.0 specifications. This is the purpose of the current limiting feature of the LDO. This is also why the
default setting of this register is for current limiting and LDO not enabled: To comply with the current inrush requirements of the USB 2.0 specifications. Once the processor has been fully powered on and the USB drivers can take proper control to ensure that the current limitations of the specifications can
be met, the driver will take over the LDO power up functions.


The LDO brownout feature is simply a notification feature that allows the processor to know that an out of specification condition is occurring and that action may be required. The most common case would be due to a USB host disconnect, which will then allow the USB driver (if it desires to use it) to terminate USB operations and place the module in a condition to be ready for a future USB Host connect.





Why is the USB regulator “disabled” by default?

Ans > 

  • To limit inrush current from the USB 5V bus, particularly if supplied by an external host device, in order to comply with the USB 2.0 specifications.
    Will this regulator be under USB driver control? Yes, the regulator is solely to support USB operations. It is only necessary when the processor is in a
    condition to communicate using USB.


Q> What’s the intended regulator output in “disabled” state?


Ans >

  • The expected regulator output when PMU_REG_3P0.ENABLE_LINREG = 0 is for the LDO output side to see roughly 60% of the input side to prevent damage to the LDO control circuity. Damage will occur if 5V is connected to the input, but voltage control circuits on the output side are left at ground for extended periods of time. The current limiting circuitry is designed to provide a “pass through” current at a minimum amount when the LDO is not in use to keep the control circuits on the output side at roughly 3.0V. When engaged, the current limiting circuit is essentially a voltage divider. If the voltage on the USB 5V rail is changed, you should see a corresponding change in the LDO output.
  •  When PMU_REG_3P0.ENABLE_LINREG = 1, the LDO voltage control circuitry is turned on and the regulator is supposed to regulate the voltage to meet the OUTPUT_TRG setting of the register. [But the current limiting circuitry is supposed to be turned off at this point]. Therefore, to summarize: When the LDO is disabled, there will be voltage on the output, but it is not controlled by the OUTPUT_TRG setting of the register. When the LDO is enabled, the USB_LDO is supposed to output the OUTPUT_TRG level.


Q. What’s the intended function/utilization of the Brownout Detection?


Ans >

  • From the processor design side: To provide for an IRQ signal to the processor in the event that the USB_LDO falls below a specified level. Whether this feature is used by the USB drivers is up to the SW designers.
  • The actual register setting of going from 0 => 1 is also used to “un-latch” the brown out flag (BO_VDD3PO).
    • Note that the brown out flag will not clear by itself. It will only clear when brown out is enabled.
  • In the current BSP brown out is not used as it is: 

 ENABLE_BO        ENABLE_LINREG               OK_VDD3P0       BO_VDD3P0

   0                              0                                              0                              1

   0                              1                                              0                              1

   1                              0                                              0                              1

   1                              1                                              1                              0


Q. Is this the intended behavior of the Regulator Status flag OK_VDD3P0 and the Brownout Status flag BO_VDD3P0?


Ans > 

  • Yes, because of the “latch” feature of the BO_VDD3P0 flag.


Q. Why is the brownout detection disabled by default? This is different for the other regulators…


 Ans >

  • Strictly for a power savings feature. Brown out circuitry also adds to the inrush current on the USB 5V bus.
  • Also, the SW drivers are not using brown out feature


Q.  Why does the Linux BSP keep brownout detection disabled during USB operation?


Ans >

  • The software team determined that it was not necessary to use the brownout detection signal.
  • The driver handles loss of USB communications in all cases as a simple disconnect and when the power is restored, will work to re-establish the link.


Let me know if you have follow-up and I'll work to get a response or accept as solution.



Attn: @kevinbuss