At different cpu frequencies,the soc_voltage and cpu_voltage will change,freecale board linux kernel will provide the following frequency and voltage control table.
In android 4.3 linux kernel cpu_op-mx6.c,there are the following code:
static struct cpu_op mx6dl_cpu_op_1_2G[] = {
{
.pll_rate = 1200000000,
.cpu_rate = 1200000000,
.cpu_podf = 0,
.pu_voltage = 1175000,
.soc_voltage = 1175000,
.cpu_voltage = 1275000,},
{
.pll_rate = 792000000,
.cpu_rate = 792000000,
.cpu_podf = 0,
.pu_voltage = 1175000,
.soc_voltage = 1175000,
.cpu_voltage = 1175000,},
{
.pll_rate = 396000000,
.cpu_rate = 396000000,
.cpu_podf = 0,
.pu_voltage = 1175000,
.soc_voltage = 1175000,
.cpu_voltage = 1075000,},
};
I understand android 4.3 code,for example,at cpu frequencie 396000000,soc_voltage will be set to 1175000,cpu_voltage will be set to 1075000.
But,
In android 5.1_2.1.0 linux kernel imx6qdl.dtsi,there are the following code:
operating-points = < | |||||
/* kHz uV */ | |||||
996000 1275000 | |||||
792000 1175000 | |||||
396000 1150000 | |||||
>; | |||||
fsl,soc-operating-points = < | |||||
/* ARM kHz SOC-PU uV */ | |||||
996000 | 1175000 | ||||
792000 | 1175000 | ||||
396000 | 1175000 | ||||
>; |
And the above android 4.3 comparison,I can't understand,where is soc_voltage,where is cpu_voltage ,how the table explain
the relationship between the three( cpu frequencie,soc_voltage and cpu_voltage)?
Thanks
Hi guang
"operating-points" is for arm core VDD_ARM, fsl,soc-operating-points - for
SOC : VDD_SOC from Table 6. Operating Ranges i.MX6DQ Datasheet
http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6DQCEC.pdf
It may be useful to look at attached Linux Manual Chapter 23
CPU Frequency Scaling (CPUFREQ) Driver, Chapter 24 Dynamic Bus Frequency Driver
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thanks forigorpadykov reply.
As shown below:
operating-points = < | |||||
/* kHz uV */ | |||||
996000 1275000 | |||||
792000 1175000 | |||||
396000 1150000 | |||||
>; | |||||
fsl,soc-operating-points = < | |||||
/* ARM kHz SOC-PU uV */ | |||||
996000 | 1175000 | ||||
792000 | 1175000 | ||||
396000 | 1175000 | ||||
>; |
This table is in andoird 5.1 kernel imx6dl.dts.
My understanding is the "operating-points" is cpu frequencies and arm core voltage's table.
The "fsl,soc-operating-points" is cpu frequencies and soc voltage's table.Will this idea right?
I think you are right
Best regards
igor