aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2015-01-26 23:23:45 -0500
committerOlof Johansson <olof@lixom.net>2015-01-26 23:23:45 -0500
commit688a4994cc23c5fdab22183d804f8d93a142bca9 (patch)
treed551552518a34fd09a1b4123ff0b1326fcde74fe
parent02685cd20a6f2b0b92fef749d9b9a6c03631c9c2 (diff)
parentf91b7c62e0cdb8a1a72b61b16fcd48858a7d9193 (diff)
Merge tag 'sunxi-core-for-3.20' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/soc
Merge "Allwinner core changes for 3.20" from Maxime Ripard: - Support for the A31s - Adding support for cpufreq using cpufreq-dt * tag 'sunxi-core-for-3.20' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: sunxi: Register cpufreq-dt for sun[45678]i ARM: sunxi: Add "allwinner,sun6i-a31s" to mach-sunxi Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r--Documentation/arm/sunxi/README1
-rw-r--r--arch/arm/mach-sunxi/platsmp.c2
-rw-r--r--arch/arm/mach-sunxi/sunxi.c11
-rw-r--r--drivers/clk/sunxi/clk-sunxi.c1
4 files changed, 13 insertions, 2 deletions
diff --git a/Documentation/arm/sunxi/README b/Documentation/arm/sunxi/README
index e68d163df33d..1fe2d7fd4108 100644
--- a/Documentation/arm/sunxi/README
+++ b/Documentation/arm/sunxi/README
@@ -50,7 +50,6 @@ SunXi family
50 http://dl.linux-sunxi.org/A31/A3x_release_document/A31/IC/A31%20user%20manual%20V1.1%2020130630.pdf 50 http://dl.linux-sunxi.org/A31/A3x_release_document/A31/IC/A31%20user%20manual%20V1.1%2020130630.pdf
51 51
52 - Allwinner A31s (sun6i) 52 - Allwinner A31s (sun6i)
53 + Not Supported
54 + Datasheet 53 + Datasheet
55 http://dl.linux-sunxi.org/A31/A3x_release_document/A31s/IC/A31s%20datasheet%20V1.3%2020131106.pdf 54 http://dl.linux-sunxi.org/A31/A3x_release_document/A31s/IC/A31s%20datasheet%20V1.3%2020131106.pdf
56 + User Manual 55 + User Manual
diff --git a/arch/arm/mach-sunxi/platsmp.c b/arch/arm/mach-sunxi/platsmp.c
index e44d028555a4..587b0468efcc 100644
--- a/arch/arm/mach-sunxi/platsmp.c
+++ b/arch/arm/mach-sunxi/platsmp.c
@@ -120,4 +120,4 @@ static struct smp_operations sun6i_smp_ops __initdata = {
120 .smp_prepare_cpus = sun6i_smp_prepare_cpus, 120 .smp_prepare_cpus = sun6i_smp_prepare_cpus,
121 .smp_boot_secondary = sun6i_smp_boot_secondary, 121 .smp_boot_secondary = sun6i_smp_boot_secondary,
122}; 122};
123CPU_METHOD_OF_DECLARE(sun6i_smp, "allwinner,sun6i-a31", &sun6i_smp_ops); 123CPU_METHOD_OF_DECLARE(sun6i_a31_smp, "allwinner,sun6i-a31", &sun6i_smp_ops);
diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c
index 1f986758784a..1bc811a74a9f 100644
--- a/arch/arm/mach-sunxi/sunxi.c
+++ b/arch/arm/mach-sunxi/sunxi.c
@@ -13,9 +13,15 @@
13#include <linux/clk-provider.h> 13#include <linux/clk-provider.h>
14#include <linux/clocksource.h> 14#include <linux/clocksource.h>
15#include <linux/init.h> 15#include <linux/init.h>
16#include <linux/platform_device.h>
16 17
17#include <asm/mach/arch.h> 18#include <asm/mach/arch.h>
18 19
20static void __init sunxi_dt_cpufreq_init(void)
21{
22 platform_device_register_simple("cpufreq-dt", -1, NULL, 0);
23}
24
19static const char * const sunxi_board_dt_compat[] = { 25static const char * const sunxi_board_dt_compat[] = {
20 "allwinner,sun4i-a10", 26 "allwinner,sun4i-a10",
21 "allwinner,sun5i-a10s", 27 "allwinner,sun5i-a10s",
@@ -25,10 +31,12 @@ static const char * const sunxi_board_dt_compat[] = {
25 31
26DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)") 32DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)")
27 .dt_compat = sunxi_board_dt_compat, 33 .dt_compat = sunxi_board_dt_compat,
34 .init_late = sunxi_dt_cpufreq_init,
28MACHINE_END 35MACHINE_END
29 36
30static const char * const sun6i_board_dt_compat[] = { 37static const char * const sun6i_board_dt_compat[] = {
31 "allwinner,sun6i-a31", 38 "allwinner,sun6i-a31",
39 "allwinner,sun6i-a31s",
32 NULL, 40 NULL,
33}; 41};
34 42
@@ -44,6 +52,7 @@ static void __init sun6i_timer_init(void)
44DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family") 52DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family")
45 .init_time = sun6i_timer_init, 53 .init_time = sun6i_timer_init,
46 .dt_compat = sun6i_board_dt_compat, 54 .dt_compat = sun6i_board_dt_compat,
55 .init_late = sunxi_dt_cpufreq_init,
47MACHINE_END 56MACHINE_END
48 57
49static const char * const sun7i_board_dt_compat[] = { 58static const char * const sun7i_board_dt_compat[] = {
@@ -53,6 +62,7 @@ static const char * const sun7i_board_dt_compat[] = {
53 62
54DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family") 63DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family")
55 .dt_compat = sun7i_board_dt_compat, 64 .dt_compat = sun7i_board_dt_compat,
65 .init_late = sunxi_dt_cpufreq_init,
56MACHINE_END 66MACHINE_END
57 67
58static const char * const sun8i_board_dt_compat[] = { 68static const char * const sun8i_board_dt_compat[] = {
@@ -62,6 +72,7 @@ static const char * const sun8i_board_dt_compat[] = {
62 72
63DT_MACHINE_START(SUN8I_DT, "Allwinner sun8i (A23) Family") 73DT_MACHINE_START(SUN8I_DT, "Allwinner sun8i (A23) Family")
64 .dt_compat = sun8i_board_dt_compat, 74 .dt_compat = sun8i_board_dt_compat,
75 .init_late = sunxi_dt_cpufreq_init,
65MACHINE_END 76MACHINE_END
66 77
67static const char * const sun9i_board_dt_compat[] = { 78static const char * const sun9i_board_dt_compat[] = {
diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
index 570202582dcf..1818f404538d 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
@@ -1226,6 +1226,7 @@ static void __init sun6i_init_clocks(struct device_node *node)
1226 ARRAY_SIZE(sun6i_critical_clocks)); 1226 ARRAY_SIZE(sun6i_critical_clocks));
1227} 1227}
1228CLK_OF_DECLARE(sun6i_a31_clk_init, "allwinner,sun6i-a31", sun6i_init_clocks); 1228CLK_OF_DECLARE(sun6i_a31_clk_init, "allwinner,sun6i-a31", sun6i_init_clocks);
1229CLK_OF_DECLARE(sun6i_a31s_clk_init, "allwinner,sun6i-a31s", sun6i_init_clocks);
1229CLK_OF_DECLARE(sun8i_a23_clk_init, "allwinner,sun8i-a23", sun6i_init_clocks); 1230CLK_OF_DECLARE(sun8i_a23_clk_init, "allwinner,sun8i-a23", sun6i_init_clocks);
1230 1231
1231static void __init sun9i_init_clocks(struct device_node *node) 1232static void __init sun9i_init_clocks(struct device_node *node)