Skip to contentSkip to conversation

Renesas ARM-based SoC DT updates for v3.12

PATCH New Simon Horman 3 participants 14 messages Jul 22, 2013 – Aug 4, 2013

Subsystems (6)
lore
Share & tools
lore
#0 lore raw

cover Renesas ARM-based SoC DT updates for v3.12

Hi Olof, Hi Arnd,

please consider the following DT updates for v3.12.

This pull request is based on renesas-cleanup-for-v3.12 which I have already sent a pull request for.

The following changes since commit ebd9616f439a8a46b9dca9a272b342f34c5f3614:

ARM: shmobile: Remove unused mach/dma.h (2013-07-17 10:02:30 +0900)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git tags/renesas-dt-for-v3.12

for you to fetch changes up to 66a5cab04d339d02b93a4671eadf8e251dbfdc2c:

ARM: shmobile: Add SMSC ethernet chip to KZM9D DT reference (2013-07-17 10:06:47 +0900)

----------------------------------------------------------------
Renesas ARM-based SoC DT updates for v3.12

* Reference implementation for kzm9d board
* Add MMCIF and SDHI DT templates for r8a7790 and r8a73a4 SoCs
* Use DT for SMP and GIC initialisation on emev2 SoC and kzm9d board
* Add GIO to dtsi of emev2 SoC
* Update dts command line of kzm9d board
* Add CPUFreq support to ape6evm board
* Add I2C controller DT nodes to r8a73a4 SoC

----------------------------------------------------------------
Guennadi Liakhovetski (4):
ARM: shmobile: r8a73a4: add I2C controller DT nodes
ARM: shmobile: ape6evm: add CPUFreq support
ARM: shmobile: r8a73a4: add MMCIF and SDHI DT templates
ARM: shmobile: r8a7790: add MMCIF and SDHI DT templates

Magnus Damm (7):
ARM: shmobile: Update KZM9D dts command line
ARM: shmobile: Add GIO to EMEV2 dtsi
ARM: shmobile: Use DT for GIC on EMEV2 and KZM9D
ARM: shmobile: Use DT for SMP on EMEV2 and KZM9D
ARM: shmobile: EMEV2 map_io update
ARM: shmobile: KZM9D DT reference implementation
ARM: shmobile: Add SMSC ethernet chip to KZM9D DT reference

 arch/arm/boot/dts/Makefile                     |   1 +
 arch/arm/boot/dts/emev2-kzm9d-reference.dts    |  57 +++++++++++
 arch/arm/boot/dts/emev2-kzm9d.dts              |   2 +-
 arch/arm/boot/dts/emev2.dtsi                   |  59 ++++++++++++
 arch/arm/boot/dts/r8a73a4-ape6evm.dts          |  22 +++++
 arch/arm/boot/dts/r8a73a4.dtsi                 | 126 +++++++++++++++++++++++++
 arch/arm/boot/dts/r8a7790.dtsi                 |  54 +++++++++++
 arch/arm/mach-shmobile/Kconfig                 |  12 +++
 arch/arm/mach-shmobile/Makefile                |   1 +
 arch/arm/mach-shmobile/Makefile.boot           |   1 +
 arch/arm/mach-shmobile/board-kzm9d-reference.c |  46 +++++++++
 arch/arm/mach-shmobile/board-kzm9d.c           |   2 -
 arch/arm/mach-shmobile/include/mach/emev2.h    |   1 -
 arch/arm/mach-shmobile/setup-emev2.c           |  23 +----
 arch/arm/mach-shmobile/smp-emev2.c             |  17 +---
 15 files changed, 384 insertions(+), 40 deletions(-)
 create mode 100644 arch/arm/boot/dts/emev2-kzm9d-reference.dts
 create mode 100644 arch/arm/mach-shmobile/board-kzm9d-reference.c
#1 lore raw

PATCH 1/11 ARM: shmobile: r8a73a4: add I2C controller DT nodes

From: Guennadi Liakhovetski <[email protected]>

Add Device Tree nodes for the 9 I2C controllers on r8a73a4, compatible with the i2c-sh_mobile.c driver.

---
 arch/arm/boot/dts/r8a73a4.dtsi | 81 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)
arch/arm/boot/dts/r8a73a4.dtsi +81 -0
index 4ff2019..4e1ddf0 100644
@@ -85,4 +85,85 @@
 		interrupt-parent = <&gic>;
 		interrupts = <0 69 4>;
 	};
+
+	i2c0: i2c at e6500000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,rmobile-iic";
+		reg = <0 0xe6500000 0 0x428>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 174 0x4>;
+	};
+
+	i2c1: i2c at e6510000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,rmobile-iic";
+		reg = <0 0xe6510000 0 0x428>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 175 0x4>;
+	};
+
+	i2c2: i2c at e6520000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,rmobile-iic";
+		reg = <0 0xe6520000 0 0x428>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 176 0x4>;
+	};
+
+	i2c3: i2c at e6530000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,rmobile-iic";
+		reg = <0 0xe6530000 0 0x428>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 177 0x4>;
+	};
+
+	i2c4: i2c at e6540000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,rmobile-iic";
+		reg = <0 0xe6540000 0 0x428>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 178 0x4>;
+	};
+
+	i2c5: i2c at e60b0000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,rmobile-iic";
+		reg = <0 0xe60b0000 0 0x428>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 179 0x4>;
+	};
+
+	i2c6: i2c at e6550000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,rmobile-iic";
+		reg = <0 0xe6550000 0 0x428>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 184 0x4>;
+	};
+
+	i2c7: i2c at e6560000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,rmobile-iic";
+		reg = <0 0xe6560000 0 0x428>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 185 0x4>;
+	};
+
+	i2c8: i2c at e6570000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "renesas,rmobile-iic";
+		reg = <0 0xe6570000 0 0x428>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 173 0x4>;
+	};
 };
Signature · 1 line
1.8.2.1
#2 lore raw

PATCH 2/11 ARM: shmobile: ape6evm: add CPUFreq support

In reply to Simon Horman

From: Guennadi Liakhovetski <[email protected]>

This patch adds OPPs to the CA15 DT node and a max8973 DT node to support clock and voltage scaling, using the cpufreq-cpu0 CPUFreq driver.

---
 arch/arm/boot/dts/r8a73a4-ape6evm.dts | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
arch/arm/boot/dts/r8a73a4-ape6evm.dts +22 -0
index f603c69..e657a9d 100644
@@ -50,3 +50,25 @@
 		};
 	};
 };
+
+&i2c5 {
+	vdd_dvfs: max8973 at 1b {
+		compatible = "maxim,max8973";
+		reg = <0x1b>;
+
+		regulator-min-microvolt = <935000>;
+		regulator-max-microvolt = <1200000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+};
+
+&cpu0 {
+	cpu0-supply = <&vdd_dvfs>;
+	operating-points = <
+		/* kHz  uV */
+		1950000 1115000
+		1462500  995000
+	>;
+	voltage-tolerance = <1>; /* 1% */
+};
Signature · 1 line
1.8.2.1
#3 lore raw

PATCH 3/11 ARM: shmobile: Update KZM9D dts command line

In reply to Simon Horman

From: Magnus Damm <[email protected]>

Update the KZM9D DTS command line to remove following cruft:
- console=tty0 - no graphic support upstream anyway
- earlyprintk= - not supported by the 8250-em driver anyway
- mem= - this is provided via DT anyway

---
 arch/arm/boot/dts/emev2-kzm9d.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/emev2-kzm9d.dts +1 -1
index b9b3241..dda13bc 100644
@@ -21,6 +21,6 @@
 	};
 
 	chosen {
-		bootargs = "console=tty0 console=ttyS1,115200n81 earlyprintk=serial8250-em.1,115200n81 mem=128M at 0x40000000 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096";
+		bootargs = "console=ttyS1,115200n81 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096";
 	};
 };
Signature · 1 line
1.8.2.1
#4 lore raw

PATCH 4/11 ARM: shmobile: Add GIO to EMEV2 dtsi

In reply to Simon Horman

From: Magnus Damm <[email protected]>

Add GIO0->GIO4 device nodes to the EMEV2 dtsi file.

---
 arch/arm/boot/dts/emev2.dtsi | 59 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)
arch/arm/boot/dts/emev2.dtsi +59 -0
index c8a8c08..99ad2b2 100644
@@ -14,6 +14,14 @@
 	compatible = "renesas,emev2";
 	interrupt-parent = <&gic>;
 
+	aliases {
+		gpio0 = &gpio0;
+		gpio1 = &gpio1;
+		gpio2 = &gpio2;
+		gpio3 = &gpio3;
+		gpio4 = &gpio4;
+	};
+
 	cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
@@ -67,4 +75,55 @@
 		reg = <0xe1050000 0x38>;
 		interrupts = <0 11 0>;
 	};
+
+	gpio0: gpio at e0050000 {
+		compatible = "renesas,em-gio";
+		reg = <0xe0050000 0x2c>, <0xe0050040 0x20>;
+		interrupts = <0 67 0>, <0 68 0>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		ngpios = <32>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+	gpio1: gpio at e0050080 {
+		compatible = "renesas,em-gio";
+		reg = <0xe0050080 0x2c>, <0xe00500c0 0x20>;
+		interrupts = <0 69 0>, <0 70 0>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		ngpios = <32>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+	gpio2: gpio at e0050100 {
+		compatible = "renesas,em-gio";
+		reg = <0xe0050100 0x2c>, <0xe0050140 0x20>;
+		interrupts = <0 71 0>, <0 72 0>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		ngpios = <32>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+	gpio3: gpio at e0050180 {
+		compatible = "renesas,em-gio";
+		reg = <0xe0050180 0x2c>, <0xe00501c0 0x20>;
+		interrupts = <0 73 0>, <0 74 0>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		ngpios = <32>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+	gpio4: gpio at e0050200 {
+		compatible = "renesas,em-gio";
+		reg = <0xe0050200 0x2c>, <0xe0050240 0x20>;
+		interrupts = <0 75 0>, <0 76 0>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		ngpios = <31>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
 };
Signature · 1 line
1.8.2.1
#5 lore raw

PATCH 5/11 ARM: shmobile: Use DT for GIC on EMEV2 and KZM9D

In reply to Simon Horman

From: Magnus Damm <[email protected]>

Remove the C version of the EMEV2 GIC setup code, instead rely on GIC information provided by DT.

---
 arch/arm/mach-shmobile/board-kzm9d.c        |  2 --
 arch/arm/mach-shmobile/include/mach/emev2.h |  1 -
 arch/arm/mach-shmobile/setup-emev2.c        | 15 ---------------
 3 files changed, 18 deletions(-)
arch/arm/mach-shmobile/board-kzm9d.c +0 -2
index 15900f1..30c2cc6 100644
@@ -86,8 +86,6 @@ DT_MACHINE_START(KZM9D_DT, "kzm9d")
 	.smp		= smp_ops(emev2_smp_ops),
 	.map_io		= emev2_map_io,
 	.init_early	= emev2_init_delay,
-	.nr_irqs	= NR_IRQS_LEGACY,
-	.init_irq	= emev2_init_irq,
 	.init_machine	= kzm9d_add_standard_devices,
 	.init_late	= shmobile_init_late,
 	.dt_compat	= kzm9d_boards_compat_dt,
arch/arm/mach-shmobile/include/mach/emev2.h +0 -1
index 3e0c044..b0ab4b7 100644
@@ -2,7 +2,6 @@
 #define __ASM_EMEV2_H__
 
 extern void emev2_map_io(void);
-extern void emev2_init_irq(void);
 extern void emev2_init_delay(void);
 extern void emev2_add_standard_devices(void);
 extern void emev2_clock_init(void);
arch/arm/mach-shmobile/setup-emev2.c +0 -15
index e4b4693..6fa485d 100644
@@ -202,20 +202,6 @@ void __init emev2_init_delay(void)
 	shmobile_setup_delay(533, 1, 3); /* Cortex-A9 @ 533MHz */
 }
 
-void __init emev2_init_irq(void)
-{
-	void __iomem *gic_dist_base;
-	void __iomem *gic_cpu_base;
-
-	/* Static mappings, never released */
-	gic_dist_base = ioremap(0xe0028000, PAGE_SIZE);
-	gic_cpu_base = ioremap(0xe0020000, PAGE_SIZE);
-	BUG_ON(!gic_dist_base || !gic_cpu_base);
-
-	/* Use GIC to handle interrupts */
-	gic_init(0, 29, gic_dist_base, gic_cpu_base);
-}
-
 #ifdef CONFIG_USE_OF
 
 static const char *emev2_boards_compat_dt[] __initdata = {
@@ -226,7 +212,6 @@ static const char *emev2_boards_compat_dt[] __initdata = {
 DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)")
 	.smp		= smp_ops(emev2_smp_ops),
 	.init_early	= emev2_init_delay,
-	.nr_irqs	= NR_IRQS_LEGACY,
 	.dt_compat	= emev2_boards_compat_dt,
 MACHINE_END
 
Signature · 1 line
1.8.2.1
#6 lore raw

PATCH 6/11 ARM: shmobile: Use DT for SMP on EMEV2 and KZM9D

In reply to Simon Horman

From: Magnus Damm <[email protected]>

Rework the EMEV2 SMP code to rely on DT for CPU information instead of reading out number of CPU cores from the SCU.

---
 arch/arm/mach-shmobile/smp-emev2.c | 17 +++--------------
 1 file changed, 3 insertions(+), 14 deletions(-)
arch/arm/mach-shmobile/smp-emev2.c +3 -14
index 80991b3..9787165 100644
@@ -38,9 +38,12 @@ static int __cpuinit emev2_boot_secondary(unsigned int cpu, struct task_struct *
 
 static void __init emev2_smp_prepare_cpus(unsigned int max_cpus)
 {
+	/* setup EMEV2 specific SCU base, enable */
+	shmobile_scu_base = ioremap(EMEV2_SCU_BASE, PAGE_SIZE);
 	scu_enable(shmobile_scu_base);
 
 	/* Tell ROM loader about our vector (in headsmp-scu.S, headsmp.S) */
+	emev2_clock_init(); /* need ioremapped SMU */
 	emev2_set_boot_vector(__pa(shmobile_boot_vector));
 	shmobile_boot_fn = virt_to_phys(shmobile_boot_scu);
 	shmobile_boot_arg = (unsigned long)shmobile_scu_base;
@@ -49,21 +52,7 @@ static void __init emev2_smp_prepare_cpus(unsigned int max_cpus)
 	scu_power_mode(shmobile_scu_base, SCU_PM_NORMAL);
 }
 
-static void __init emev2_smp_init_cpus(void)
-{
-	unsigned int ncores;
-
-	/* setup EMEV2 specific SCU base */
-	shmobile_scu_base = ioremap(EMEV2_SCU_BASE, PAGE_SIZE);
-	emev2_clock_init(); /* need ioremapped SMU */
-
-	ncores = shmobile_scu_base ? scu_get_core_count(shmobile_scu_base) : 1;
-
-	shmobile_smp_init_cpus(ncores);
-}
-
 struct smp_operations emev2_smp_ops __initdata = {
-	.smp_init_cpus		= emev2_smp_init_cpus,
 	.smp_prepare_cpus	= emev2_smp_prepare_cpus,
 	.smp_boot_secondary	= emev2_boot_secondary,
 };
Signature · 1 line
1.8.2.1
#7 lore raw

PATCH 7/11 ARM: shmobile: EMEV2 map_io update

In reply to Simon Horman

From: Magnus Damm <[email protected]>

Update the EMEV2 struct map_desc to exclude the SMU and also include the ->map_io() callback in the DT version of EMEV2 board support.

The EMEV2 SMP code can these days perform ioremap() early on without the SMU information in the io_desc[].

To correctly support SMP in case of DT-only board support then the ->map_io() callback is needed.

---
 arch/arm/mach-shmobile/setup-emev2.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)
arch/arm/mach-shmobile/setup-emev2.c +1 -7
index 6fa485d..19980be 100644
@@ -38,13 +38,6 @@
 
 static struct map_desc emev2_io_desc[] __initdata = {
 #ifdef CONFIG_SMP
-	/* 128K entity map for 0xe0100000 (SMU) */
-	{
-		.virtual	= 0xe0100000,
-		.pfn		= __phys_to_pfn(0xe0100000),
-		.length		= SZ_128K,
-		.type		= MT_DEVICE
-	},
 	/* 2M mapping for SCU + L2 controller */
 	{
 		.virtual	= 0xf0000000,
@@ -211,6 +204,7 @@ static const char *emev2_boards_compat_dt[] __initdata = {
 
 DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)")
 	.smp		= smp_ops(emev2_smp_ops),
+	.map_io		= emev2_map_io,
 	.init_early	= emev2_init_delay,
 	.dt_compat	= emev2_boards_compat_dt,
 MACHINE_END
Signature · 1 line
1.8.2.1
#8 lore raw

PATCH 7/11 ARM: shmobile: EMEV2 map_io update

Quoted 9 lines · Simon Horman

From: Magnus Damm<[email protected]>

Update the EMEV2 struct map_desc to exclude the SMU and also include the ->map_io() callback in the DT version of EMEV2 board support.

The EMEV2 SMP code can these days perform ioremap() early on without the SMU information in the io_desc[].

Quoted 6 lines

To correctly support SMP in case of DT-only board support then the ->map_io() callback is needed.

This looks roughly what we did to get the the EMEV2 working here, although ours is a little more hacky.

Signature · 2 lines
Ben Dooks				http://www.codethink.co.uk/
Senior Engineer				Codethink - Providing Genius
#9 lore raw

PATCH 8/11 ARM: shmobile: r8a73a4: add MMCIF and SDHI DT templates

In reply to Simon Horman

From: Guennadi Liakhovetski <[email protected]>

This adds DT templates for all MMCIF and SDHI controllers on r8a73a4. They are added with status="disabled". To use them platform-specific DTs have to enable the required ones.

---
 arch/arm/boot/dts/r8a73a4.dtsi | 45 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
arch/arm/boot/dts/r8a73a4.dtsi +45 -0
index 4e1ddf0..6ce699b 100644
@@ -166,4 +166,49 @@
 		interrupt-parent = <&gic>;
 		interrupts = <0 173 0x4>;
 	};
+
+	mmcif0: mmcif at ee200000 {
+		compatible = "renesas,sh-mmcif";
+		reg = <0 0xee200000 0 0x80>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 169 0x4>;
+		reg-io-width = <4>;
+		status = "disabled";
+	};
+
+	mmcif1: mmcif at ee220000 {
+		compatible = "renesas,sh-mmcif";
+		reg = <0 0xee220000 0 0x80>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 170 0x4>;
+		reg-io-width = <4>;
+		status = "disabled";
+	};
+
+	sdhi0: sdhi at ee100000 {
+		compatible = "renesas,r8a73a4-sdhi";
+		reg = <0 0xee100000 0 0x100>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 165 4>;
+		cap-sd-highspeed;
+		status = "disabled";
+	};
+
+	sdhi1: sdhi at ee120000 {
+		compatible = "renesas,r8a73a4-sdhi";
+		reg = <0 0xee120000 0 0x100>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 166 4>;
+		cap-sd-highspeed;
+		status = "disabled";
+	};
+
+	sdhi2: sdhi at ee140000 {
+		compatible = "renesas,r8a73a4-sdhi";
+		reg = <0 0xee140000 0 0x100>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 167 4>;
+		cap-sd-highspeed;
+		status = "disabled";
+	};
 };
Signature · 1 line
1.8.2.1
#10 lore raw

PATCH 9/11 ARM: shmobile: r8a7790: add MMCIF and SDHI DT templates

In reply to Simon Horman

From: Guennadi Liakhovetski <[email protected]>

This adds DT templates for all MMCIF and SDHI controllers on r8a7790. They are added with status="disabled". To use them platform-specific DTs have to enable the required ones.

---
 arch/arm/boot/dts/r8a7790.dtsi | 54 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
arch/arm/boot/dts/r8a7790.dtsi +54 -0
index 339d9b1..9cd8820 100644
@@ -54,4 +54,58 @@
 		interrupt-parent = <&gic>;
 		interrupts = <0 0 4>, <0 1 4>, <0 2 4>,	<0 3 4>;
 	};
+
+	mmcif0: mmcif at ee200000 {
+		compatible = "renesas,sh-mmcif";
+		reg = <0 0xee200000 0 0x80>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 169 0x4>;
+		reg-io-width = <4>;
+		status = "disabled";
+	};
+
+	mmcif1: mmcif at ee220000 {
+		compatible = "renesas,sh-mmcif";
+		reg = <0 0xee220000 0 0x80>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 170 0x4>;
+		reg-io-width = <4>;
+		status = "disabled";
+	};
+
+	sdhi0: sdhi at ee100000 {
+		compatible = "renesas,r8a7790-sdhi";
+		reg = <0 0xee100000 0 0x100>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 165 4>;
+		cap-sd-highspeed;
+		status = "disabled";
+	};
+
+	sdhi1: sdhi at ee120000 {
+		compatible = "renesas,r8a7790-sdhi";
+		reg = <0 0xee120000 0 0x100>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 166 4>;
+		cap-sd-highspeed;
+		status = "disabled";
+	};
+
+	sdhi2: sdhi at ee140000 {
+		compatible = "renesas,r8a7790-sdhi";
+		reg = <0 0xee140000 0 0x100>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 167 4>;
+		cap-sd-highspeed;
+		status = "disabled";
+	};
+
+	sdhi3: sdhi at ee160000 {
+		compatible = "renesas,r8a7790-sdhi";
+		reg = <0 0xee160000 0 0x100>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 168 4>;
+		cap-sd-highspeed;
+		status = "disabled";
+	};
 };
Signature · 1 line
1.8.2.1
#11 lore raw

PATCH 10/11 ARM: shmobile: KZM9D DT reference implementation

In reply to Simon Horman

From: Magnus Damm <[email protected]>

Add a DT reference implementation for the KZM9D board.

Only DT devices are used in this case. UART, STI, GPIO and SMP / GIC are all provided by emev2.dtsi.

There is still a board specific C file used for enabling legacy SH clocks. This file will be removed after we have moved over to common clocks.

[horms+renesas at verge.net.au: Do not include trailing blank line in
board-kzm9d-reference.c ]

---
 arch/arm/boot/dts/Makefile                     |  1 +
 arch/arm/boot/dts/emev2-kzm9d-reference.dts    | 26 +++++++++++++++
 arch/arm/mach-shmobile/Kconfig                 | 12 +++++++
 arch/arm/mach-shmobile/Makefile                |  1 +
 arch/arm/mach-shmobile/Makefile.boot           |  1 +
 arch/arm/mach-shmobile/board-kzm9d-reference.c | 46 ++++++++++++++++++++++++++
 6 files changed, 87 insertions(+)
 create mode 100644 arch/arm/boot/dts/emev2-kzm9d-reference.dts
 create mode 100644 arch/arm/mach-shmobile/board-kzm9d-reference.c
arch/arm/boot/dts/Makefile +1 -0
index 641b3c9..af19e38 100644
@@ -183,6 +183,7 @@ dtb-$(CONFIG_ARCH_U8500) += snowball.dtb \
 	ccu9540.dtb
 dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb
 dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
+	emev2-kzm9d-reference.dtb \
 	r8a7740-armadillo800eva.dtb \
 	r8a7778-bockw.dtb \
 	r8a7740-armadillo800eva-reference.dtb \
arch/arm/boot/dts/emev2-kzm9d-reference.dts new file +26 -0
new file mode 100644
index 0000000..5ec065e
@@ -0,0 +1,26 @@
+/*
+ * Device Tree Source for the KZM9D board
+ *
+ * Copyright (C) 2013 Renesas Solutions Corp.
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+/dts-v1/;
+
+/include/ "emev2.dtsi"
+
+/ {
+	model = "EMEV2 KZM9D Board";
+	compatible = "renesas,kzm9d-reference", "renesas,emev2";
+
+	memory {
+		device_type = "memory";
+		reg = <0x40000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS1,115200n81 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096";
+	};
+};
arch/arm/mach-shmobile/Kconfig +12 -0
index 3912ce9..7c5034a 100644
@@ -156,6 +156,18 @@ config MACH_KZM9D
 	select REGULATOR_FIXED_VOLTAGE if REGULATOR
 	select USE_OF
 
+config MACH_KZM9D_REFERENCE
+	bool "KZM9D board - Reference Device Tree Implementation"
+	depends on ARCH_EMEV2
+	select REGULATOR_FIXED_VOLTAGE if REGULATOR
+	select USE_OF
+	---help---
+	   Use reference implementation of KZM9D board support
+	   which makes a greater use of device tree at the expense
+	   of not supporting a number of devices.
+
+	   This is intended to aid developers
+
 config MACH_KZM9G
 	bool "KZM-A9-GT board"
 	depends on ARCH_SH73A0
arch/arm/mach-shmobile/Makefile +1 -0
index 6165a51..e8d0a2c 100644
@@ -46,6 +46,7 @@ obj-$(CONFIG_MACH_LAGER)	+= board-lager.o
 obj-$(CONFIG_MACH_ARMADILLO800EVA)	+= board-armadillo800eva.o
 obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE)	+= board-armadillo800eva-reference.o
 obj-$(CONFIG_MACH_KZM9D)	+= board-kzm9d.o
+obj-$(CONFIG_MACH_KZM9D_REFERENCE)	+= board-kzm9d-reference.o
 obj-$(CONFIG_MACH_KZM9G)	+= board-kzm9g.o
 obj-$(CONFIG_MACH_KZM9G_REFERENCE)	+= board-kzm9g-reference.o
 
arch/arm/mach-shmobile/Makefile.boot +1 -0
index 84c6868..7785c52 100644
@@ -7,6 +7,7 @@ loadaddr-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += 0x40008000
 loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000
 loadaddr-$(CONFIG_MACH_KOTA2) += 0x41008000
 loadaddr-$(CONFIG_MACH_KZM9D) += 0x40008000
+loadaddr-$(CONFIG_MACH_KZM9D_REFERENCE) += 0x40008000
 loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000
 loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000
 loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000
arch/arm/mach-shmobile/board-kzm9d-reference.c new file +46 -0

46 lines not on this page · raw message

Signature · 1 line
1.8.2.1
#12 lore raw

PATCH 11/11 ARM: shmobile: Add SMSC ethernet chip to KZM9D DT reference

In reply to Simon Horman

From: Magnus Damm <[email protected]>

Add support for the SMSC ethernet controller found on the KZM9D board to the KZM9D DT Reference code.

---
 arch/arm/boot/dts/emev2-kzm9d-reference.dts | 31 +++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
arch/arm/boot/dts/emev2-kzm9d-reference.dts +31 -0
index 5ec065e..bed676b 100644
@@ -23,4 +23,35 @@
 	chosen {
 		bootargs = "console=ttyS1,115200n81 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096";
 	};
+
+	reg_1p8v: regulator at 0 {
+		compatible = "regulator-fixed";
+		regulator-name = "fixed-1.8V";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	reg_3p3v: regulator at 1 {
+		compatible = "regulator-fixed";
+		regulator-name = "fixed-3.3V";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	lan9220 at 20000000 {
+		compatible = "smsc,lan9220", "smsc,lan9115";
+		reg = <0x20000000 0x10000>;
+		phy-mode = "mii";
+		interrupt-parent = <&gpio0>;
+		interrupts = <1 1>;	/* active high */
+		reg-io-width = <4>;
+		smsc,irq-active-high;
+		smsc,irq-push-pull;
+		vddvario-supply = <&reg_1p8v>;
+		vdd33a-supply = <&reg_3p3v>;
+	};
 };
Signature · 1 line
1.8.2.1
#13 lore raw

cover Renesas ARM-based SoC DT updates for v3.12

In reply to Simon Horman
Quoted 7 lines · Simon Horman

Hi Olof, Hi Arnd,

please consider the following DT updates for v3.12.

This pull request is based on renesas-cleanup-for-v3.12 which I have already sent a pull request for.

Quoted 7 lines

The following changes since commit ebd9616f439a8a46b9dca9a272b342f34c5f3614:

ARM: shmobile: Remove unused mach/dma.h (2013-07-17 10:02:30 +0900)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git tags/renesas-dt-for-v3.12

Pulled, thanks.

-Olof