ARM: mx28: cpufreq-cpu0 support?
Stefan Wahren
info at lategoodbye.de
Mon Sep 22 14:25:20 PDT 2014
Hi,
Am 01.09.2014 15:33, schrieb Fabio Estevam:
> Hi Stefan,
>
> On Mon, Sep 1, 2014 at 3:31 AM, Stefan Wahren <info at lategoodbye.de> wrote:
>
>> thanks. Okay, that leads to more questions:
>>
>> How can i test a ported mxs-regulator driver, that it's really working? Is
>> there any userspace interface?
>
> After you ported the mxs regulator you can check whether it probed
> correctly and if the reported voltages in the kernel log match the
> register settings. You can also check if the voltages are really in
> the correct reported value with a scope.
>
> On mx6q we have the following:
>
> [ 0.070554] vdd1p1: 800 <--> 1375 mV at 1100 mV
> [ 0.071521] vdd3p0: 2800 <--> 3150 mV at 3000 mV
> [ 0.072397] vdd2p5: 2000 <--> 2750 mV at 2400 mV
> [ 0.073369] vddarm: 725 <--> 1450 mV at 1150 mV
> [ 0.074282] vddpu: 725 <--> 1450 mV at 1150 mV
> [ 0.075247] vddsoc: 725 <--> 1450 mV at 1200 mV
>
> and you should get something like that in your kernel log after you
> ported the mxs regulator driver.
>
>
i've ported the mxs-regulator driver and now i'm getting an probing
output like above with Linux 3.17-rc4.
Now i want to test the mxs-regulator driver with the cpufreq-cpu0 as
consumer. So i defined cpu at 0 according to cpufreq-cpu0 binding in
imx28.dtsi and enabled cpufreq-cpu0 driver and userspace gov in Kernel
config.
But if i modprobe cpufreq-cpu0 i don't get any output and the entry
/sys/devices/system/cpu/cpu0/cpufreq is also missing.
Any ideas, what's wrong or missing?
Best regards
Stefan
PS: Here the relevant config:
# .config
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
CONFIG_CPU_FREQ_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
CONFIG_GENERIC_CPUFREQ_CPU0=m
# imx28.dtsi
[...]
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu: cpu at 0 {
compatible = "arm,arm926ej-s";
device_type = "cpu";
operating-points = <
/* kHz uV */
454736 1550000
392727 1475000
360000 1375000
261818 1275000
64000 1050000
>;
clock-latency = <61036>; /* two CLK32 periods */
cpu0-supply = <®_vddd>;
};
};
[...]
power: power at 80044000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x80044000 0x2000>;
ranges;
reg_vddd: regulator at 80044040 {
reg = <0x80044040 0x10>;
compatible = "fsl,mxs-regulator";
regulator-name = "vddd";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1575000>;
regulator-boot-on;
vddd-supply = <®_vdda>;
};
reg_vdda: regulator at 80044050 {
reg = <0x80044050 0x10>;
compatible = "fsl,mxs-regulator";
regulator-name = "vdda";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <2275000>;
regulator-boot-on;
vdda-supply = <®_vddio>;
};
reg_vddio: regulator at 80044060 {
reg = <0x80044060 0x10>;
compatible = "fsl,mxs-regulator";
regulator-name = "vddio";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3600000>;
regulator-microvolt-offset = <80000>;
regulator-boot-on;
};
power_sts: power_sts at 800440c0 {
reg = <0x800440c0 0x10>;
status = "disabled";
};
};
More information about the linux-arm-kernel
mailing list