AnsweredAssumed Answered

How to change ARM and SoC voltage by writing on HW registers?

Question asked by maurice on Jun 6, 2014
Latest reply on Oct 9, 2014 by maurice

Hello community,

I want to change ARM and SoC voltages by writing on HW registers : PMU, CCM and CCM_ANALOG.

It is applied when the frequency is changing, 996 MHz to 792 MHz:

  1. Init PMU registers: values “1F” are written in reg_core.reg0_trig and reg_core.reg2_trig registers for ARM ans SoC.
  2. Init GPC register: value 0x80000000 is written in IMR4 register
  3. Setting frequency and voltage:
    1. Setting CCM_CCSR registers for the target frequency. Saving the PLL into PLL_SW
    2. Setting new PLL-ARM
    3. Change voltage thanks to PMU registers and operating points of the data sheet. I write into PMU_REG_CORE register.
    4. Wait update voltage.
    5. Clear the PLL_SW.


Despite I followed the data sheet, only the frequency has changed. ARM and SoC voltages are the same. Did I miss something?

I compared to CPUFREQ driver where the voltage changed.


I use:

  • Linux-3.0.35
  • CPUFREQ driver is disabled
  • iMX6 quad


Thank you