[PATCH v4 3/3] ARM: shmobile: kzm9g-reference: add CPUFreq support

Simon Horman horms at verge.net.au
Thu Apr 4 00:37:46 EDT 2013


On Sun, Mar 24, 2013 at 08:27:35PM +0100, Guennadi Liakhovetski wrote:
> This patch enables the use of the generic cpufreq-cpu0 driver on kzm9g.
> Providing a regulator, a list of OPPs in DT, combined with a virtual
> cpufreq-cpu0 platform device and a clock, attached to it is everything,
> the cpufreq-cpu0 driver needs.

I wonder if it would be possible to re-arange this patch a little.

1) vdd_dvfs is added in this patch but it appears to be used in the
   previous patch in the series. I wonder if this can be resolved
   by re-ordering the patches.

2) It includes both kzm9g board and sh73a0 SoC changes.
   I would prefer if the sh73a0 SoC portion (setup-sh73a0.c)
   was moved into a separate patch. The arm-soc people
   like to have separate board and SoC branches.

> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas at gmail.com>
> ---
> 
> v4: add a cpufreq-cpu0 platform device for the new cpufreq-cpu0 
> initialisation procedure
> 
>  arch/arm/boot/dts/sh73a0-kzm9g-reference.dts |    6 +++---
>  arch/arm/mach-shmobile/Kconfig               |    2 ++
>  arch/arm/mach-shmobile/setup-sh73a0.c        |    5 +++++
>  3 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
> index dd1cd80..b6f759e 100644
> --- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
> +++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
> @@ -78,10 +78,10 @@
>  		reg = <0x40>;
>  
>  		regulators {
> -			sd1 {
> +			vdd_dvfs: sd1 {
>  				regulator-name = "1.315V CPU";
> -				regulator-min-microvolt = <1315000>;
> -				regulator-max-microvolt = <1335000>;
> +				regulator-min-microvolt = <1050000>;
> +				regulator-max-microvolt = <1350000>;
>  				regulator-always-on;
>  				regulator-boot-on;
>  			};
> diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
> index eb3a7ff..8a0420b 100644
> --- a/arch/arm/mach-shmobile/Kconfig
> +++ b/arch/arm/mach-shmobile/Kconfig
> @@ -134,6 +134,8 @@ config MACH_KZM9G
>  config MACH_KZM9G_REFERENCE
>  	bool "KZM-A9-GT board - Reference Device Tree Implementation"
>  	depends on ARCH_SH73A0
> +	select ARCH_HAS_CPUFREQ
> +	select ARCH_HAS_OPP
>  	select ARCH_REQUIRE_GPIOLIB
>  	select REGULATOR_FIXED_VOLTAGE if REGULATOR
>  	select SND_SOC_AK4642 if SND_SIMPLE_CARD
> diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
> index e8cd93a..0469e84 100644
> --- a/arch/arm/mach-shmobile/setup-sh73a0.c
> +++ b/arch/arm/mach-shmobile/setup-sh73a0.c
> @@ -1016,6 +1016,8 @@ static const struct of_dev_auxdata sh73a0_auxdata_lookup[] __initconst = {
>  
>  void __init sh73a0_add_standard_devices_dt(void)
>  {
> +	struct platform_device_info devinfo = { .name = "cpufreq-cpu0", .id = -1, };
> +
>  	/* clocks are setup late during boot in the case of DT */
>  	sh73a0_clock_init();
>  
> @@ -1023,6 +1025,9 @@ void __init sh73a0_add_standard_devices_dt(void)
>  			     ARRAY_SIZE(sh73a0_devices_dt));
>  	of_platform_populate(NULL, of_default_bus_match_table,
>  			     sh73a0_auxdata_lookup, NULL);
> +
> +	/* Instantiate cpufreq-cpu0 */
> +	platform_device_register_full(&devinfo);
>  }
>  
>  static const char *sh73a0_boards_compat_dt[] __initdata = {
> -- 
> 1.7.2.5
> 



More information about the linux-arm-kernel mailing list