aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2015-04-01 19:37:30 -0400
committerOlof Johansson <olof@lixom.net>2015-04-01 19:37:30 -0400
commitc0b0bb6e1490f48f2675c3557653fb554a9c8817 (patch)
tree057a642505b5b60341096fe1bdcb597620cfcd16 /arch/arm/mach-shmobile
parentd36d520ae669ab95e6113f3a5e52493dfaa59f8d (diff)
parent3c7585b9901c335d10a04c8495164cb113c0b8f2 (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/Kconfig19
-rw-r--r--arch/arm/mach-shmobile/Makefile5
-rw-r--r--arch/arm/mach-shmobile/Makefile.boot1
-rw-r--r--arch/arm/mach-shmobile/board-kzm9g-reference.c62
-rw-r--r--arch/arm/mach-shmobile/include/mach/zboot.h2
-rw-r--r--arch/arm/mach-shmobile/setup-sh73a0.c19
-rw-r--r--arch/arm/mach-shmobile/sh73a0.h1
-rw-r--r--arch/arm/mach-shmobile/smp-r8a7790.c4
-rw-r--r--arch/arm/mach-shmobile/smp-r8a7791.c2
-rw-r--r--arch/arm/mach-shmobile/smp-sh73a0.c2
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
85config ARCH_SH73A0
86 bool "SH-Mobile AG5 (R8A73A00)"
87 select ARCH_RMOBILE
88 select RENESAS_INTC_IRQPIN
89
85comment "Renesas ARM SoCs Board Type" 90comment "Renesas ARM SoCs Board Type"
86 91
87config MACH_MARZEN 92config 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
175config 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
189comment "Renesas ARM SoCs System Configuration" 180comment "Renesas ARM SoCs System Configuration"
190 181
191config CPU_HAS_INTEVT 182config 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 @@
6obj-y := timer.o console.o 6obj-y := timer.o console.o
7 7
8# CPU objects 8# CPU objects
9obj-$(CONFIG_ARCH_SH73A0) += setup-sh73a0.o intc-sh73a0.o pm-sh73a0.o 9obj-$(CONFIG_ARCH_SH73A0) += setup-sh73a0.o pm-sh73a0.o
10obj-$(CONFIG_ARCH_R8A73A4) += setup-r8a73a4.o 10obj-$(CONFIG_ARCH_R8A73A4) += setup-r8a73a4.o
11obj-$(CONFIG_ARCH_R8A7740) += setup-r8a7740.o pm-r8a7740.o 11obj-$(CONFIG_ARCH_R8A7740) += setup-r8a7740.o pm-r8a7740.o
12obj-$(CONFIG_ARCH_R8A7778) += setup-r8a7778.o 12obj-$(CONFIG_ARCH_R8A7778) += setup-r8a7778.o
@@ -56,8 +56,7 @@ obj-$(CONFIG_MACH_BOCKW) += board-bockw.o
56obj-$(CONFIG_MACH_BOCKW_REFERENCE) += board-bockw-reference.o 56obj-$(CONFIG_MACH_BOCKW_REFERENCE) += board-bockw-reference.o
57obj-$(CONFIG_MACH_MARZEN) += board-marzen.o 57obj-$(CONFIG_MACH_MARZEN) += board-marzen.o
58obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o 58obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o
59obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o 59obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o intc-sh73a0.o
60obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o
61endif 60endif
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
4loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000 4loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000
5loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000 5loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000
6loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 6loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000
7loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000
8loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000 7loadaddr-$(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
32static 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)
43static void kzm9g_restart(enum reboot_mode mode, const char *cmd)
44{
45 /* Do soft power on reset */
46 writel((1 << 31), RESCNT2);
47}
48
49static const char *kzm9g_boards_compat_dt[] __initdata = {
50 "renesas,kzm9g-reference",
51 NULL,
52};
53
54DT_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,
62MACHINE_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
787void __init sh73a0_add_standard_devices_dt(void) 788static 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)
797static void sh73a0_restart(enum reboot_mode mode, const char *cmd)
798{
799 /* Do soft power on reset */
800 writel((1 << 31), RESCNT2);
801}
802
803static const char *sh73a0_boards_compat_dt[] __initdata = { 797static 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,
816MACHINE_END 809MACHINE_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);
77extern void sh73a0_earlytimer_init(void); 77extern void sh73a0_earlytimer_init(void);
78extern void sh73a0_add_early_devices(void); 78extern void sh73a0_add_early_devices(void);
79extern void sh73a0_add_standard_devices(void); 79extern void sh73a0_add_standard_devices(void);
80extern void sh73a0_add_standard_devices_dt(void);
81extern void sh73a0_clock_init(void); 80extern void sh73a0_clock_init(void);
82extern void sh73a0_pinmux_init(void); 81extern void sh73a0_pinmux_init(void);
83extern void sh73a0_pm_init(void); 82extern 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
38static struct rcar_apmu_config r8a7790_apmu_config[] = { 38static 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
28static struct rcar_apmu_config r8a7791_apmu_config[] = { 28static 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)
37static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, SH73A0_SCU_BASE + 0x600, 29); 37static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, SH73A0_SCU_BASE + 0x600, 29);
38void __init sh73a0_register_twd(void) 38void __init sh73a0_register_twd(void)
39{ 39{