diff options
author | Olof Johansson <olof@lixom.net> | 2015-04-01 19:37:30 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2015-04-01 19:37:30 -0400 |
commit | c0b0bb6e1490f48f2675c3557653fb554a9c8817 (patch) | |
tree | 057a642505b5b60341096fe1bdcb597620cfcd16 /arch/arm/mach-shmobile | |
parent | d36d520ae669ab95e6113f3a5e52493dfaa59f8d (diff) | |
parent | 3c7585b9901c335d10a04c8495164cb113c0b8f2 (diff) |
Merge tag 'renesas-sh73a0-multiplatform-for-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/multiplatform
Merge "Renesas ARM Based SoC sh73a0 Multiplatform Updates for v4.1" from Simon
Horman:
* Add multiplatform support to sh73a0 and its kzm9g board
* Use Bus State Controller to enable ethernet for multiplatform sh73a0/kzm9g
* Add PM domain support to multiplatform sh73a0
* tag 'renesas-sh73a0-multiplatform-for-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (43 commits)
ARM: shmobile: sh73a0: Remove restart callback
ARM: shmobile: sh73a0 dtsi: Add PM domain support
ARM: shmobile: sh73a0: Remove unused sh73a0_add_standard_devices_dt()
ARM: shmobile: sh73a0 dtsi: Add Cortex-A9 TWD node
ARM: shmobile: kzm9g-reference: Remove board C code and DT file
ARM: shmobile: kzm9g dts: Move Ethernet node to BSC
ARM: shmobile: sh73a0 dtsi: Add Bus State Controller node
ARM: shmobile: kzm9g: Build DTS for Multiplatform
ARM: shmobile: kzm9g dts: Sync with kzm9g-reference dts
ARM: shmobile: sh73a0: Add Multiplatform support
ARM: shmobile: sh73a0: Introduce generic setup callback
ARM: shmobile: r8a7794: add SDHI DT support
ARM: shmobile: r8a7790: add ADSP clocks
ARM: shmobile: r8a7791: add ADSP clocks
ARM: shmobile: henninger: add CAN0 DT support
ARM: shmobile: r8a7791: add CAN DT support
ARM: shmobile: r8a7791: add CAN clocks
ARM: shmobile: r8a7790: add CAN DT support
ARM: shmobile: r8a7790: add CAN clocks
ARM: shmobile: emev2-kzm9d dts: Add PFC information for uart1
...
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/mach-shmobile')
-rw-r--r-- | arch/arm/mach-shmobile/Kconfig | 19 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/Makefile | 5 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/Makefile.boot | 1 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-kzm9g-reference.c | 62 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/zboot.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-sh73a0.c | 19 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/sh73a0.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/smp-r8a7790.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/smp-r8a7791.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/smp-sh73a0.c | 2 |
10 files changed, 18 insertions, 99 deletions
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 485961a4de1d..c2952f58e768 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
@@ -82,6 +82,11 @@ config ARCH_R8A7794 | |||
82 | bool "R-Car E2 (R8A77940)" | 82 | bool "R-Car E2 (R8A77940)" |
83 | select ARCH_RCAR_GEN2 | 83 | select ARCH_RCAR_GEN2 |
84 | 84 | ||
85 | config ARCH_SH73A0 | ||
86 | bool "SH-Mobile AG5 (R8A73A00)" | ||
87 | select ARCH_RMOBILE | ||
88 | select RENESAS_INTC_IRQPIN | ||
89 | |||
85 | comment "Renesas ARM SoCs Board Type" | 90 | comment "Renesas ARM SoCs Board Type" |
86 | 91 | ||
87 | config MACH_MARZEN | 92 | config MACH_MARZEN |
@@ -172,20 +177,6 @@ config MACH_KZM9G | |||
172 | select SND_SOC_AK4642 if SND_SIMPLE_CARD | 177 | select SND_SOC_AK4642 if SND_SIMPLE_CARD |
173 | select USE_OF | 178 | select USE_OF |
174 | 179 | ||
175 | config MACH_KZM9G_REFERENCE | ||
176 | bool "KZM-A9-GT board - Reference Device Tree Implementation" | ||
177 | depends on ARCH_SH73A0 | ||
178 | select ARCH_REQUIRE_GPIOLIB | ||
179 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | ||
180 | select SND_SOC_AK4642 if SND_SIMPLE_CARD | ||
181 | select USE_OF | ||
182 | ---help--- | ||
183 | Use reference implementation of KZM-A9-GT board support | ||
184 | which makes as greater use of device tree at the expense | ||
185 | of not supporting a number of devices. | ||
186 | |||
187 | This is intended to aid developers | ||
188 | |||
189 | comment "Renesas ARM SoCs System Configuration" | 180 | comment "Renesas ARM SoCs System Configuration" |
190 | 181 | ||
191 | config CPU_HAS_INTEVT | 182 | config CPU_HAS_INTEVT |
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index ba7bb7847ae3..d3aca07b51a8 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile | |||
@@ -6,7 +6,7 @@ | |||
6 | obj-y := timer.o console.o | 6 | obj-y := timer.o console.o |
7 | 7 | ||
8 | # CPU objects | 8 | # CPU objects |
9 | obj-$(CONFIG_ARCH_SH73A0) += setup-sh73a0.o intc-sh73a0.o pm-sh73a0.o | 9 | obj-$(CONFIG_ARCH_SH73A0) += setup-sh73a0.o pm-sh73a0.o |
10 | obj-$(CONFIG_ARCH_R8A73A4) += setup-r8a73a4.o | 10 | obj-$(CONFIG_ARCH_R8A73A4) += setup-r8a73a4.o |
11 | obj-$(CONFIG_ARCH_R8A7740) += setup-r8a7740.o pm-r8a7740.o | 11 | obj-$(CONFIG_ARCH_R8A7740) += setup-r8a7740.o pm-r8a7740.o |
12 | obj-$(CONFIG_ARCH_R8A7778) += setup-r8a7778.o | 12 | obj-$(CONFIG_ARCH_R8A7778) += setup-r8a7778.o |
@@ -56,8 +56,7 @@ obj-$(CONFIG_MACH_BOCKW) += board-bockw.o | |||
56 | obj-$(CONFIG_MACH_BOCKW_REFERENCE) += board-bockw-reference.o | 56 | obj-$(CONFIG_MACH_BOCKW_REFERENCE) += board-bockw-reference.o |
57 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o | 57 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o |
58 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o | 58 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o |
59 | obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o | 59 | obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o intc-sh73a0.o |
60 | obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o | ||
61 | endif | 60 | endif |
62 | 61 | ||
63 | # Framework support | 62 | # Framework support |
diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot index da9fc6d4a1da..e1ef19cef89c 100644 --- a/arch/arm/mach-shmobile/Makefile.boot +++ b/arch/arm/mach-shmobile/Makefile.boot | |||
@@ -4,7 +4,6 @@ loadaddr-$(CONFIG_MACH_ARMADILLO800EVA) += 0x40008000 | |||
4 | loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000 | 4 | loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000 |
5 | loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000 | 5 | loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000 |
6 | loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 | 6 | loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 |
7 | loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 | ||
8 | loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000 | 7 | loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000 |
9 | 8 | ||
10 | __ZRELADDR := $(sort $(loadaddr-y)) | 9 | __ZRELADDR := $(sort $(loadaddr-y)) |
diff --git a/arch/arm/mach-shmobile/board-kzm9g-reference.c b/arch/arm/mach-shmobile/board-kzm9g-reference.c deleted file mode 100644 index 2e82e44ab852..000000000000 --- a/arch/arm/mach-shmobile/board-kzm9g-reference.c +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /* | ||
2 | * KZM-A9-GT board support - Reference Device Tree Implementation | ||
3 | * | ||
4 | * Copyright (C) 2012 Horms Solutions Ltd. | ||
5 | * | ||
6 | * Based on board-kzm9g.c | ||
7 | * Copyright (C) 2012 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License as published by | ||
11 | * the Free Software Foundation; version 2 of the License. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | */ | ||
18 | |||
19 | #include <linux/delay.h> | ||
20 | #include <linux/io.h> | ||
21 | #include <linux/irq.h> | ||
22 | #include <linux/input.h> | ||
23 | #include <linux/of_platform.h> | ||
24 | |||
25 | #include <asm/hardware/cache-l2x0.h> | ||
26 | #include <asm/mach-types.h> | ||
27 | #include <asm/mach/arch.h> | ||
28 | |||
29 | #include "common.h" | ||
30 | #include "sh73a0.h" | ||
31 | |||
32 | static void __init kzm_init(void) | ||
33 | { | ||
34 | sh73a0_add_standard_devices_dt(); | ||
35 | |||
36 | #ifdef CONFIG_CACHE_L2X0 | ||
37 | /* Shared attribute override enable, 64K*8way */ | ||
38 | l2x0_init(IOMEM(0xf0100000), 0x00400000, 0xc20f0fff); | ||
39 | #endif | ||
40 | } | ||
41 | |||
42 | #define RESCNT2 IOMEM(0xe6188020) | ||
43 | static void kzm9g_restart(enum reboot_mode mode, const char *cmd) | ||
44 | { | ||
45 | /* Do soft power on reset */ | ||
46 | writel((1 << 31), RESCNT2); | ||
47 | } | ||
48 | |||
49 | static const char *kzm9g_boards_compat_dt[] __initdata = { | ||
50 | "renesas,kzm9g-reference", | ||
51 | NULL, | ||
52 | }; | ||
53 | |||
54 | DT_MACHINE_START(KZM9G_DT, "kzm9g-reference") | ||
55 | .smp = smp_ops(sh73a0_smp_ops), | ||
56 | .map_io = sh73a0_map_io, | ||
57 | .init_early = shmobile_init_delay, | ||
58 | .init_machine = kzm_init, | ||
59 | .init_late = shmobile_init_late, | ||
60 | .restart = kzm9g_restart, | ||
61 | .dt_compat = kzm9g_boards_compat_dt, | ||
62 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/include/mach/zboot.h b/arch/arm/mach-shmobile/include/mach/zboot.h index 9d9cb09c9336..175ee05465da 100644 --- a/arch/arm/mach-shmobile/include/mach/zboot.h +++ b/arch/arm/mach-shmobile/include/mach/zboot.h | |||
@@ -9,7 +9,7 @@ | |||
9 | * | 9 | * |
10 | **************************************************/ | 10 | **************************************************/ |
11 | 11 | ||
12 | #if defined(CONFIG_MACH_KZM9G) || defined(CONFIG_MACH_KZM9G_REFERENCE) | 12 | #ifdef CONFIG_MACH_KZM9G |
13 | #define MEMORY_START 0x43000000 | 13 | #define MEMORY_START 0x43000000 |
14 | #include "mach/head-kzm9g.txt" | 14 | #include "mach/head-kzm9g.txt" |
15 | #else | 15 | #else |
diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c index faea74a2151b..fb2ab7590af8 100644 --- a/arch/arm/mach-shmobile/setup-sh73a0.c +++ b/arch/arm/mach-shmobile/setup-sh73a0.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <linux/platform_data/sh_ipmmu.h> | 30 | #include <linux/platform_data/sh_ipmmu.h> |
31 | #include <linux/platform_data/irq-renesas-intc-irqpin.h> | 31 | #include <linux/platform_data/irq-renesas-intc-irqpin.h> |
32 | 32 | ||
33 | #include <asm/hardware/cache-l2x0.h> | ||
33 | #include <asm/mach-types.h> | 34 | #include <asm/mach-types.h> |
34 | #include <asm/mach/map.h> | 35 | #include <asm/mach/map.h> |
35 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
@@ -784,22 +785,15 @@ void __init sh73a0_add_early_devices(void) | |||
784 | 785 | ||
785 | #ifdef CONFIG_USE_OF | 786 | #ifdef CONFIG_USE_OF |
786 | 787 | ||
787 | void __init sh73a0_add_standard_devices_dt(void) | 788 | static void __init sh73a0_generic_init(void) |
788 | { | 789 | { |
789 | /* clocks are setup late during boot in the case of DT */ | 790 | #ifdef CONFIG_CACHE_L2X0 |
790 | #ifndef CONFIG_COMMON_CLK | 791 | /* Shared attribute override enable, 64K*8way */ |
791 | sh73a0_clock_init(); | 792 | l2x0_init(IOMEM(0xf0100000), 0x00400000, 0xc20f0fff); |
792 | #endif | 793 | #endif |
793 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | 794 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); |
794 | } | 795 | } |
795 | 796 | ||
796 | #define RESCNT2 IOMEM(0xe6188020) | ||
797 | static void sh73a0_restart(enum reboot_mode mode, const char *cmd) | ||
798 | { | ||
799 | /* Do soft power on reset */ | ||
800 | writel((1 << 31), RESCNT2); | ||
801 | } | ||
802 | |||
803 | static const char *sh73a0_boards_compat_dt[] __initdata = { | 797 | static const char *sh73a0_boards_compat_dt[] __initdata = { |
804 | "renesas,sh73a0", | 798 | "renesas,sh73a0", |
805 | NULL, | 799 | NULL, |
@@ -809,9 +803,8 @@ DT_MACHINE_START(SH73A0_DT, "Generic SH73A0 (Flattened Device Tree)") | |||
809 | .smp = smp_ops(sh73a0_smp_ops), | 803 | .smp = smp_ops(sh73a0_smp_ops), |
810 | .map_io = sh73a0_map_io, | 804 | .map_io = sh73a0_map_io, |
811 | .init_early = shmobile_init_delay, | 805 | .init_early = shmobile_init_delay, |
812 | .init_machine = sh73a0_add_standard_devices_dt, | 806 | .init_machine = sh73a0_generic_init, |
813 | .init_late = shmobile_init_late, | 807 | .init_late = shmobile_init_late, |
814 | .restart = sh73a0_restart, | ||
815 | .dt_compat = sh73a0_boards_compat_dt, | 808 | .dt_compat = sh73a0_boards_compat_dt, |
816 | MACHINE_END | 809 | MACHINE_END |
817 | #endif /* CONFIG_USE_OF */ | 810 | #endif /* CONFIG_USE_OF */ |
diff --git a/arch/arm/mach-shmobile/sh73a0.h b/arch/arm/mach-shmobile/sh73a0.h index f037c64b14fc..5a80f18b4fa0 100644 --- a/arch/arm/mach-shmobile/sh73a0.h +++ b/arch/arm/mach-shmobile/sh73a0.h | |||
@@ -77,7 +77,6 @@ extern void sh73a0_map_io(void); | |||
77 | extern void sh73a0_earlytimer_init(void); | 77 | extern void sh73a0_earlytimer_init(void); |
78 | extern void sh73a0_add_early_devices(void); | 78 | extern void sh73a0_add_early_devices(void); |
79 | extern void sh73a0_add_standard_devices(void); | 79 | extern void sh73a0_add_standard_devices(void); |
80 | extern void sh73a0_add_standard_devices_dt(void); | ||
81 | extern void sh73a0_clock_init(void); | 80 | extern void sh73a0_clock_init(void); |
82 | extern void sh73a0_pinmux_init(void); | 81 | extern void sh73a0_pinmux_init(void); |
83 | extern void sh73a0_pm_init(void); | 82 | extern void sh73a0_pm_init(void); |
diff --git a/arch/arm/mach-shmobile/smp-r8a7790.c b/arch/arm/mach-shmobile/smp-r8a7790.c index 9c3da1345b8b..a5bef873d37e 100644 --- a/arch/arm/mach-shmobile/smp-r8a7790.c +++ b/arch/arm/mach-shmobile/smp-r8a7790.c | |||
@@ -37,11 +37,11 @@ static struct rcar_sysc_ch r8a7790_ca7_scu = { | |||
37 | 37 | ||
38 | static struct rcar_apmu_config r8a7790_apmu_config[] = { | 38 | static struct rcar_apmu_config r8a7790_apmu_config[] = { |
39 | { | 39 | { |
40 | .iomem = DEFINE_RES_MEM(0xe6152000, 0x88), | 40 | .iomem = DEFINE_RES_MEM(0xe6152000, 0x188), |
41 | .cpus = { 0, 1, 2, 3 }, | 41 | .cpus = { 0, 1, 2, 3 }, |
42 | }, | 42 | }, |
43 | { | 43 | { |
44 | .iomem = DEFINE_RES_MEM(0xe6151000, 0x88), | 44 | .iomem = DEFINE_RES_MEM(0xe6151000, 0x188), |
45 | .cpus = { 0x100, 0x0101, 0x102, 0x103 }, | 45 | .cpus = { 0x100, 0x0101, 0x102, 0x103 }, |
46 | } | 46 | } |
47 | }; | 47 | }; |
diff --git a/arch/arm/mach-shmobile/smp-r8a7791.c b/arch/arm/mach-shmobile/smp-r8a7791.c index 7e49e0a52e32..de1d92dc1323 100644 --- a/arch/arm/mach-shmobile/smp-r8a7791.c +++ b/arch/arm/mach-shmobile/smp-r8a7791.c | |||
@@ -27,7 +27,7 @@ | |||
27 | 27 | ||
28 | static struct rcar_apmu_config r8a7791_apmu_config[] = { | 28 | static struct rcar_apmu_config r8a7791_apmu_config[] = { |
29 | { | 29 | { |
30 | .iomem = DEFINE_RES_MEM(0xe6152000, 0x88), | 30 | .iomem = DEFINE_RES_MEM(0xe6152000, 0x188), |
31 | .cpus = { 0, 1 }, | 31 | .cpus = { 0, 1 }, |
32 | } | 32 | } |
33 | }; | 33 | }; |
diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c index c16dbfe9836c..2106d6b76a06 100644 --- a/arch/arm/mach-shmobile/smp-sh73a0.c +++ b/arch/arm/mach-shmobile/smp-sh73a0.c | |||
@@ -33,7 +33,7 @@ | |||
33 | 33 | ||
34 | #define SH73A0_SCU_BASE 0xf0000000 | 34 | #define SH73A0_SCU_BASE 0xf0000000 |
35 | 35 | ||
36 | #ifdef CONFIG_HAVE_ARM_TWD | 36 | #if defined(CONFIG_HAVE_ARM_TWD) && !defined(CONFIG_ARCH_MULTIPLATFORM) |
37 | static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, SH73A0_SCU_BASE + 0x600, 29); | 37 | static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, SH73A0_SCU_BASE + 0x600, 29); |
38 | void __init sh73a0_register_twd(void) | 38 | void __init sh73a0_register_twd(void) |
39 | { | 39 | { |