diff options
| author | Olof Johansson <olof@lixom.net> | 2015-01-26 23:23:45 -0500 |
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2015-01-26 23:23:45 -0500 |
| commit | 688a4994cc23c5fdab22183d804f8d93a142bca9 (patch) | |
| tree | d551552518a34fd09a1b4123ff0b1326fcde74fe | |
| parent | 02685cd20a6f2b0b92fef749d9b9a6c03631c9c2 (diff) | |
| parent | f91b7c62e0cdb8a1a72b61b16fcd48858a7d9193 (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/README | 1 | ||||
| -rw-r--r-- | arch/arm/mach-sunxi/platsmp.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-sunxi/sunxi.c | 11 | ||||
| -rw-r--r-- | drivers/clk/sunxi/clk-sunxi.c | 1 |
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 | }; |
| 123 | CPU_METHOD_OF_DECLARE(sun6i_smp, "allwinner,sun6i-a31", &sun6i_smp_ops); | 123 | CPU_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 | ||
| 20 | static void __init sunxi_dt_cpufreq_init(void) | ||
| 21 | { | ||
| 22 | platform_device_register_simple("cpufreq-dt", -1, NULL, 0); | ||
| 23 | } | ||
| 24 | |||
| 19 | static const char * const sunxi_board_dt_compat[] = { | 25 | static 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 | ||
| 26 | DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)") | 32 | DT_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, | ||
| 28 | MACHINE_END | 35 | MACHINE_END |
| 29 | 36 | ||
| 30 | static const char * const sun6i_board_dt_compat[] = { | 37 | static 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) | |||
| 44 | DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family") | 52 | DT_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, | ||
| 47 | MACHINE_END | 56 | MACHINE_END |
| 48 | 57 | ||
| 49 | static const char * const sun7i_board_dt_compat[] = { | 58 | static const char * const sun7i_board_dt_compat[] = { |
| @@ -53,6 +62,7 @@ static const char * const sun7i_board_dt_compat[] = { | |||
| 53 | 62 | ||
| 54 | DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family") | 63 | DT_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, | ||
| 56 | MACHINE_END | 66 | MACHINE_END |
| 57 | 67 | ||
| 58 | static const char * const sun8i_board_dt_compat[] = { | 68 | static const char * const sun8i_board_dt_compat[] = { |
| @@ -62,6 +72,7 @@ static const char * const sun8i_board_dt_compat[] = { | |||
| 62 | 72 | ||
| 63 | DT_MACHINE_START(SUN8I_DT, "Allwinner sun8i (A23) Family") | 73 | DT_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, | ||
| 65 | MACHINE_END | 76 | MACHINE_END |
| 66 | 77 | ||
| 67 | static const char * const sun9i_board_dt_compat[] = { | 78 | static 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 | } |
| 1228 | CLK_OF_DECLARE(sun6i_a31_clk_init, "allwinner,sun6i-a31", sun6i_init_clocks); | 1228 | CLK_OF_DECLARE(sun6i_a31_clk_init, "allwinner,sun6i-a31", sun6i_init_clocks); |
| 1229 | CLK_OF_DECLARE(sun6i_a31s_clk_init, "allwinner,sun6i-a31s", sun6i_init_clocks); | ||
| 1229 | CLK_OF_DECLARE(sun8i_a23_clk_init, "allwinner,sun8i-a23", sun6i_init_clocks); | 1230 | CLK_OF_DECLARE(sun8i_a23_clk_init, "allwinner,sun8i-a23", sun6i_init_clocks); |
| 1230 | 1231 | ||
| 1231 | static void __init sun9i_init_clocks(struct device_node *node) | 1232 | static void __init sun9i_init_clocks(struct device_node *node) |
