i.MX6ULL VDD_ARM_CAP voltage changes

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

i.MX6ULL VDD_ARM_CAP voltage changes

1,428 Views
chadwolter
Contributor III

Please see attached oscilloscope capture of the VDD_ARM_CAP (LDO_ARM) pin in a custom i.MX6ULL design.  As can be seen, the voltage of this rail, which is nominally supposed to be 1.15VDC, is changing its voltage regularly.  This is occurring when our Linux kernel boots and after it has been running.  Per the i.MX6ULL reference guide (version 11/2017), section 39.2, would the output in the attached scope capture be consistent with behavior if the device was in "Power Gate" mode? 

Per the Reference manual, section 39.2, there are 3 modes for the Digital LDOs

1. Power Gate

2. Analog regulation

3. Bypass

Looking now at section 39.6.4 (PMU_REG_COREn definition), in the REG0_TARG field, would the following settings map to the modes above?

1.  REG0_TARG = 0b00000 -> Analog Regulation

2.  0b00001 <= REG0_TARG <= 0b11110 -> Power Gate, with voltage setting per the register value

3. REG0_TARG = 0b11111 -> Bypass

Further, how do I set these modes in Linux?  I am looking to do this WITHOUT using the API function calls referenced in Chapter 26 of the Linux Reference manual.  I have looked in the device tree included with the version 4.9.11 Linux release from NXP (imx6ull.dtsi), but I do not see any setting in the anatop regulator definition that would correspond to the REG0_TARG bits of the PMU_REG_COREn register:

reg_arm: regulator-vddcore@140 {
compatible = "fsl,anatop-regulator";
regulator-name = "cpu";
regulator-min-microvolt = <725000>;
regulator-max-microvolt = <1450000>;
regulator-always-on;
anatop-reg-offset = <0x140>;
anatop-vol-bit-shift = <0>;
anatop-vol-bit-width = <5>;
anatop-delay-reg-offset = <0x170>;
anatop-delay-bit-shift = <24>;
anatop-delay-bit-width = <2>;
anatop-min-bit-val = <1>;
anatop-min-voltage = <725000>;
anatop-max-voltage = <1450000>;
};

Further, I have looked in the /sys/devices/soc0/soc/2000000.aips-bus/20c8000.anatop directory on a running version of the kernel, and I cannot find any settings there either to touch this register.

Please help me solve this issue, or at least explain why I am seeing the core voltage change

kind regards

Chad Wolter

Labels (2)
4 Replies

895 Views
Yuri
NXP Employee
NXP Employee

Hello,

  From Linux documentation:

 

  Some internal regulator can be bypassed, so that external pmic can supply

these power directly to decrease power consumption, such as VDD_SOC, VDD_ARM

 

  In standard DTB file, the LDO bypass is enabled. Therefore, it is needed to use special DTB files,

if LDO should be enabled.

 


Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

895 Views
chadwolter
Contributor III

Yuri –

Respectfully, you are incorrect. If you look in the imx6ull.dtsi file (the device tree include file that gets built when creating the dtb), the CORE LDO is NOT getting bypassed (see regulator-always-on statement). Please re-read my post an answer accordingly.

Thanks

Chad

0 Kudos

895 Views
Yuri
NXP Employee
NXP Employee

Hello,

   You may try to disable CPUFREQ to check if it influences here.

 
# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 

Regards,

Yuri.

0 Kudos

895 Views
chadwolter
Contributor III

Yuri –

Looks as if that worked, it changed the behavior VDD_ARM from CC to CV. Thanks

Chad