]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ARM: shmobile: sh73a0: add CPUFreq support
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Fri, 5 Apr 2013 10:00:38 +0000 (12:00 +0200)
committerSimon Horman <horms+renesas@verge.net.au>
Wed, 22 May 2013 14:51:26 +0000 (23:51 +0900)
This patch enables the use of the generic cpufreq-cpu0 driver on sh73a0.
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. The first sh73a0 platform, implementing
such CPUFreq support is kzm9g-reference.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/Kconfig
arch/arm/mach-shmobile/setup-sh73a0.c

index 1a517e2fe44900d7ca8e70a79f185a5d49aba21d..7cfb9d142e71094142c15a0f2ddc8c15eb5ccb02 100644 (file)
@@ -169,6 +169,8 @@ config MACH_KZM9D
 config MACH_KZM9G
        bool "KZM-A9-GT board"
        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
index f8f4261edb9ff5d5d8d328798deb795f797f797e..88e6ea060014e2037df371bf398e5f46ac65c663 100644 (file)
@@ -1003,6 +1003,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();
 
@@ -1010,6 +1012,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 = {