Re: [PATCH v2 5/5] ARM: shmobile: lager: (DEVEL) add CPUFreq support

From: Laurent Pinchart
Date: Thu Sep 26 2013 - 19:59:04 EST


Hi Guennadi,

Thank you for the patch.

On Thursday 26 September 2013 19:21:00 Guennadi Liakhovetski wrote:
> The Lager board uses a DA9210 voltage regulator to supply DVFS power to the
> CA15 cores on the r8a7790 SoC. This patch adds CPUFreq support for that
> board using the cpufreq-cpu0 driver.
>
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@xxxxxxxxx>
> ---
>
> v2: added 'status = "okay";' to the i2c bus
>
> arch/arm/boot/dts/r8a7790-lager-reference.dts | 33 +++++++++++++++++++++
> arch/arm/mach-shmobile/board-lager-reference.c | 4 ++-
> 2 files changed, 36 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/boot/dts/r8a7790-lager-reference.dts
> b/arch/arm/boot/dts/r8a7790-lager-reference.dts index c462ef1..1ce0a97
> 100644
> --- a/arch/arm/boot/dts/r8a7790-lager-reference.dts
> +++ b/arch/arm/boot/dts/r8a7790-lager-reference.dts
> @@ -43,3 +43,36 @@
> };
> };
> };
> +
> +&i2c3 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c3_pins>;
> +
> + vdd_dvfs: da9210@68 {
> + compatible = "diasemi,da9210";
> + reg = <0x68>;
> +
> + regulator-min-microvolt = <900000>;
> + regulator-max-microvolt = <1000000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +};
> +
> +&cpu0 {
> + cpu0-supply = <&vdd_dvfs>;
> + operating-points = <
> + /* kHz uV - OPs unknown yet */
> + 1300000 1000000
> + 1000000 900000
> + >;
> + voltage-tolerance = <1>; /* 1% */
> +};
> +
> +&pfc {
> + i2c3_pins: i2c3 {
> + renesas,groups = "i2c3";
> + renesas,function = "i2c3";
> + };
> +};
> diff --git a/arch/arm/mach-shmobile/board-lager-reference.c
> b/arch/arm/mach-shmobile/board-lager-reference.c index 1a1a4a8..2bc8bae
> 100644
> --- a/arch/arm/mach-shmobile/board-lager-reference.c
> +++ b/arch/arm/mach-shmobile/board-lager-reference.c
> @@ -20,6 +20,7 @@
>
> #include <linux/init.h>
> #include <linux/of_platform.h>
> +#include <linux/platform_device.h>
> #include <mach/r8a7790.h>
> #include <asm/mach/arch.h>
>
> @@ -29,7 +30,8 @@ static void __init lager_add_standard_devices(void)
> r8a7790_clock_init();
>
> r8a7790_add_dt_devices();
> - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> + platform_device_register_simple("cpufreq-cpu0", -1, NULL, 0);

Out of curiosity, could you explain how this cpufreq-cpu0 platform device gets
associated with the cpu0 DT node ? The cpufreq-cpu0 driver requires a DT node
(its probe function returns -ENOENT if pdev->dev.of_node is NULL), and I don't
see how the of_node gets set as the platform device is registered through
board code. I might of course be missing something obvious :-)

> }
>
> static const char *lager_boards_compat_dt[] __initdata = {
--
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/