Skip to contentSkip to conversation

ARM: mach-shmobile: r8a7779 and Marzen base support

PATCH New Magnus Damm 1 participant 1 message Dec 6, 2011

Subsystems (4)
lore
Share & tools
lore

Magnus Damm

author maintainer
#0 lore raw

PATCH 3/7 ARM: mach-shmobile: r8a7779 and Marzen base support

From: Magnus Damm <[email protected]>

Initial prototype support for the r8a7779 SoC and the Marzen board.

Only SCIF ports and the TMU are supported at this point.

To keep things simple only entity-mapped virt-to-phys mappings are supported. This forces drivers and other SoC glue code to make use of ioremap(). We cannot support early serial console due to virtual address space collisions with the ARM kernel.

Not-yet-signed-off-by Magnus Damm <[email protected]>

---

 arch/arm/mach-shmobile/Kconfig                |   10 +
 arch/arm/mach-shmobile/Makefile               |    3 
 arch/arm/mach-shmobile/board-marzen.c         |  110 +++++++++++
 arch/arm/mach-shmobile/clock-r8a7779.c        |  105 +++++++++++
 arch/arm/mach-shmobile/include/mach/common.h  |    5 
 arch/arm/mach-shmobile/include/mach/r8a7779.h |    6 
 arch/arm/mach-shmobile/intc-r8a7779.c         |   58 ++++++
 arch/arm/mach-shmobile/setup-r8a7779.c        |  231 +++++++++++++++++++++++++
 8 files changed, 528 insertions(+)
arch/arm/mach-shmobile/Kconfig +10 -0
@@ -28,6 +28,12 @@ config ARCH_SH73A0
 	select ARM_GIC
 	select I2C
 
+config ARCH_R8A7779
+	bool "R-Car H1 (R8A77790)"
+	select CPU_V7
+	select SH_CLK_CPG
+	select ARM_GIC
+
 comment "SH-Mobile Board Type"
 
 config MACH_G3EVM
@@ -75,6 +81,10 @@ config MACH_KOTA2
 	select ARCH_REQUIRE_GPIOLIB
 	depends on ARCH_SH73A0
 
+config MACH_MARZEN
+	bool "MARZEN board"
+	depends on ARCH_R8A7779
+
 comment "SH-Mobile System Configuration"
 
 menu "Memory configuration"
arch/arm/mach-shmobile/Makefile +3 -0
@@ -10,6 +10,7 @@ obj-$(CONFIG_ARCH_SH7367)	+= setup-sh736
 obj-$(CONFIG_ARCH_SH7377)	+= setup-sh7377.o clock-sh7377.o intc-sh7377.o
 obj-$(CONFIG_ARCH_SH7372)	+= setup-sh7372.o clock-sh7372.o intc-sh7372.o
 obj-$(CONFIG_ARCH_SH73A0)	+= setup-sh73a0.o clock-sh73a0.o intc-sh73a0.o
+obj-$(CONFIG_ARCH_R8A7779)	+= setup-r8a7779.o clock-r8a7779.o
 
 # SMP objects
 smp-y				:= platsmp.o headsmp.o
@@ -29,6 +30,7 @@ obj-$(CONFIG_ARCH_SH7367)	+= entry-intc.
 obj-$(CONFIG_ARCH_SH7377)	+= entry-intc.o
 obj-$(CONFIG_ARCH_SH7372)	+= entry-intc.o
 obj-$(CONFIG_ARCH_SH73A0)	+= entry-gic.o
+obj-$(CONFIG_ARCH_R8A7779)	+= entry-gic.o intc-r8a7779.o
 
 # PM objects
 obj-$(CONFIG_SUSPEND)		+= suspend.o
@@ -42,6 +44,7 @@ obj-$(CONFIG_MACH_AP4EVB)	+= board-ap4ev
 obj-$(CONFIG_MACH_AG5EVM)	+= board-ag5evm.o
 obj-$(CONFIG_MACH_MACKEREL)	+= board-mackerel.o
 obj-$(CONFIG_MACH_KOTA2)	+= board-kota2.o
+obj-$(CONFIG_MACH_MARZEN)	+= board-marzen.o
 
 # Framework support
 obj-$(CONFIG_SMP)		+= $(smp-y)
arch/arm/mach-shmobile/board-marzen.c new file +110 -0

110 lines not on this page · raw message

arch/arm/mach-shmobile/clock-r8a7779.c new file +105 -0

105 lines not on this page · raw message

arch/arm/mach-shmobile/include/mach/common.h +5 -0
@@ -53,4 +53,9 @@ extern void sh73a0_secondary_init(unsign
 extern int sh73a0_boot_secondary(unsigned int cpu);
 extern void sh73a0_smp_prepare_cpus(void);
 
+extern void r8a7779_init_irq(void);
+extern void r8a7779_add_early_devices(void);
+extern void r8a7779_add_standard_devices(void);
+extern void r8a7779_clock_init(void);
+
 #endif /* __ARCH_MACH_COMMON_H */
arch/arm/mach-shmobile/include/mach/r8a7779.h new file +6 -0
@@ -0,0 +1,6 @@
+#ifndef __ASM_R8A7779_H__
+#define __ASM_R8A7779_H__
+
+/* Nothing at this point */
+
+#endif /* __ASM_R8A7779_H__ */
arch/arm/mach-shmobile/intc-r8a7779.c new file +58 -0

58 lines not on this page · raw message

arch/arm/mach-shmobile/setup-r8a7779.c new file +231 -0

231 lines not on this page · raw message