Renesas ARM-based SoC DT updates for v3.11
Subsystems (6)
cover Renesas ARM-based SoC DT updates for v3.11
Hi Olof, Hi Arnd,
The following changes since commit c7788792a5e7b0d5d7f96d0766b4cb6112d47d75:
Linux 3.10-rc2 (2013-05-20 14:37:38 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git tags/renesas-dt-for-v3.11
for you to fetch changes up to 24603f3caf07f5f65aa17ed7851ad4741595cf6a:
ARM: shmobile: marzen-reference: add irqpin support in DT (2013-06-04 18:05:59 +0900)
----------------------------------------------------------------
Renesas ARM-based SoC DT updates for v3.11
* Armadillo800eva reference DT - bring up armadillo800eva baord using DT as much as possible
* Remove unused GIC dtsi entries for r8a7790 and r8a73a4
* Add AS3711 and CPUFreq DT bindings for kzm9g-reference
* Add irqpin DT support for marzen-reference
----------------------------------------------------------------
Bastian Hecht (3):
ARM: shmobile: r8a7740: Add OF support to initialze the GIC
ARM: shmobile: r8a7740: Prepare for reference DT setup
ARM: shmobile: armadillo800eva: Reference DT implementation
Guennadi Liakhovetski (2):
ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings
ARM: shmobile: marzen-reference: add irqpin support in DT
Magnus Damm (2):
ARM: shmobile: Remove unused r8a73a4 GIC CPU interface DT bits
ARM: shmobile: Remove unused r8a7790 GIC CPU interface DT bits
arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/r8a73a4.dtsi | 6 - .../boot/dts/r8a7740-armadillo800eva-reference.dts | 45 +++++ arch/arm/boot/dts/r8a7740.dtsi | 117 +++++++++++ arch/arm/boot/dts/r8a7779.dtsi | 17 ++ arch/arm/boot/dts/r8a7790.dtsi | 6 - arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 +++++++++ arch/arm/mach-shmobile/Kconfig | 14 ++ arch/arm/mach-shmobile/Makefile | 1 + .../board-armadillo800eva-reference.c | 213 +++++++++++++++++++++ arch/arm/mach-shmobile/include/mach/r8a7740.h | 3 + arch/arm/mach-shmobile/intc-r8a7740.c | 24 ++- arch/arm/mach-shmobile/setup-r8a7740.c | 54 +++--- 13 files changed, 544 insertions(+), 43 deletions(-) create mode 100644 arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts create mode 100644 arch/arm/mach-shmobile/board-armadillo800eva-reference.c
Signature · 1 line
1.8.2.1
PATCH 1/7 ARM: shmobile: r8a7740: Add OF support to initialze the GIC
From: Bastian Hecht <[email protected]>
We add a variant to initalize the interrupt controller in case we describe the GIC using the Device Tree and not platform data.
--- arch/arm/mach-shmobile/include/mach/r8a7740.h | 1 + arch/arm/mach-shmobile/intc-r8a7740.c | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-)
arch/arm/mach-shmobile/include/mach/r8a7740.h +1 -0
@@ -534,6 +534,7 @@ enum {extern void r8a7740_meram_workaround (void );extern void r8a7740_init_irq (void ); +extern void r8a7740_init_irq_of (void );extern void r8a7740_map_io (void );extern void r8a7740_add_early_devices (void );extern void r8a7740_add_standard_devices (void );
arch/arm/mach-shmobile/intc-r8a7740.c +18 -6
@@ -20,19 +20,15 @@#include <linux/init.h> #include <linux/io.h> +#include <linux/irqchip.h> #include <linux/irqchip/arm-gic.h> -void __init r8a7740_init_irq (void ) +static void __init r8a7740_init_irq_common (void ) { -void __iomem *gic_dist_base =ioremap_nocache (0xc2800000 ,0x1000 ); -void __iomem *gic_cpu_base =ioremap_nocache (0xc2000000 ,0x1000 );void __iomem *intc_prio_base =ioremap_nocache (0xe6900010 ,0x10 );void __iomem *intc_msk_base =ioremap_nocache (0xe6900040 ,0x10 );void __iomem *pfc_inta_ctrl =ioremap_nocache (0xe605807c ,0x4 ); -/* initialize the Generic Interrupt Controller PL390 r0p0 */ -gic_init (0 ,29 , gic_dist_base, gic_cpu_base); -/* route signals to GIC */ iowrite32 (0x0 , pfc_inta_ctrl);
@@ -54,3 +50,19 @@ void __init r8a7740_init_irq(void)iounmap (intc_msk_base);iounmap (pfc_inta_ctrl); } + +void __init r8a7740_init_irq_of (void ) +{ +irqchip_init (); +r8a7740_init_irq_common (); +} + +void __init r8a7740_init_irq (void ) +{ +void __iomem *gic_dist_base =ioremap_nocache (0xc2800000 ,0x1000 ); +void __iomem *gic_cpu_base =ioremap_nocache (0xc2000000 ,0x1000 ); + +/* initialize the Generic Interrupt Controller PL390 r0p0 */ +gic_init (0 ,29 , gic_dist_base, gic_cpu_base); +r8a7740_init_irq_common (); +}
Signature · 1 line
1.8.2.1
PATCH 2/7 ARM: shmobile: r8a7740: Prepare for reference DT setup
In reply to Simon HormanFrom: Bastian Hecht <[email protected]>
We need three steps to prepare for the new Armadillo reference DT board code:
- Split the device list into r8a7740_early_devices used by the old platform data setup (board-armadillo.c) and r8a7740_devices_dt used by both setup variants.
- Introduce new r8a7740_init_delay() to be more flexible about calling shmobile_setup_delay().
- For the generic r8a7740 support, we switch to device tree setup for the GIC, the irqpin devices and the I2C controllers.
This is slightly similar to commit 3b00f9342623a5ebc "ARM: shmobile: sh73a0: Do not use early devices with DT reference"
--- arch/arm/boot/dts/r8a7740.dtsi | 117 ++++++++++++++++++++++++++ arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 + arch/arm/mach-shmobile/setup-r8a7740.c | 54 ++++++------ 3 files changed, 148 insertions(+), 25 deletions(-)
arch/arm/boot/dts/r8a7740.dtsi +117 -0
@@ -18,4 +18,121 @@ compatible = "arm,cortex-a9"; }; }; + + gic: interrupt-controller at c2800000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <3>; + #address-cells = <1>; + interrupt-controller; + reg = <0xc2800000 0x1000>, + <0xc2000000 0x1000>; + }; + + /* irqpin0: IRQ0 - IRQ7 */ + irqpin0: irqpin at e6900000 { + compatible = "renesas,intc-irqpin"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0xe6900000 4>, + <0xe6900010 4>, + <0xe6900020 1>, + <0xe6900040 1>, + <0xe6900060 1>; + interrupt-parent = <&gic>; + interrupts = <0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4>; + }; + + /* irqpin1: IRQ8 - IRQ15 */ + irqpin1: irqpin at e6900004 { + compatible = "renesas,intc-irqpin"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0xe6900004 4>, + <0xe6900014 4>, + <0xe6900024 1>, + <0xe6900044 1>, + <0xe6900064 1>; + interrupt-parent = <&gic>; + interrupts = <0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4>; + }; + + /* irqpin2: IRQ16 - IRQ23 */ + irqpin2: irqpin at e6900008 { + compatible = "renesas,intc-irqpin"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0xe6900008 4>, + <0xe6900018 4>, + <0xe6900028 1>, + <0xe6900048 1>, + <0xe6900068 1>; + interrupt-parent = <&gic>; + interrupts = <0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4>; + }; + + /* irqpin3: IRQ24 - IRQ31 */ + irqpin3: irqpin at e690000c { + compatible = "renesas,intc-irqpin"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0xe690000c 4>, + <0xe690001c 4>, + <0xe690002c 1>, + <0xe690004c 1>, + <0xe690006c 1>; + interrupt-parent = <&gic>; + interrupts = <0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4 + 0 149 0x4>; + }; + + i2c0: i2c at fff20000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,rmobile-iic"; + reg = <0xfff20000 0x425>; + interrupt-parent = <&gic>; + interrupts = <0 201 0x4 + 0 202 0x4 + 0 203 0x4 + 0 204 0x4>; + }; + + i2c1: i2c at e6c20000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,rmobile-iic"; + reg = <0xe6c20000 0x425>; + interrupt-parent = <&gic>; + interrupts = <0 70 0x4 + 0 71 0x4 + 0 72 0x4 + 0 73 0x4>; + }; };
arch/arm/mach-shmobile/include/mach/r8a7740.h +2 -0
@@ -533,11 +533,13 @@ enum { };extern void r8a7740_meram_workaround (void ); +extern void r8a7740_init_delay (void );extern void r8a7740_init_irq (void );extern void r8a7740_init_irq_of (void );extern void r8a7740_map_io (void );extern void r8a7740_add_early_devices (void );extern void r8a7740_add_standard_devices (void ); +extern void r8a7740_add_standard_devices_dt (void );extern void r8a7740_clock_init (u8 md_ck);extern void r8a7740_pinmux_init (void );extern void r8a7740_pm_init (void );
arch/arm/mach-shmobile/setup-r8a7740.c +29 -25
100 lines not on this page · raw message
Signature · 1 line
1.8.2.1
PATCH 3/7 ARM: shmobile: Remove unused r8a73a4 GIC CPU interface DT bits
In reply to Simon HormanFrom: Magnus Damm <[email protected]>
Remove unused GIC CPU interface DT bits for r8a73a4.
--- arch/arm/boot/dts/r8a73a4.dtsi | 6 ------ 1 file changed, 6 deletions(-)
arch/arm/boot/dts/r8a73a4.dtsi +0 -6
@@ -37,12 +37,6 @@ <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; interrupts = <1 9 0xf04>; - - gic-cpuif at 4 { - compatible = "arm,gic-cpuif"; - cpuif-id = <4>; - cpu = <&cpu0>; - }; }; timer {
Signature · 1 line
1.8.2.1
PATCH 4/7 ARM: shmobile: Remove unused r8a7790 GIC CPU interface DT bits
In reply to Simon HormanFrom: Magnus Damm <[email protected]>
Remove unused GIC CPU interface DT bits for r8a7790.
--- arch/arm/boot/dts/r8a7790.dtsi | 6 ------ 1 file changed, 6 deletions(-)
arch/arm/boot/dts/r8a7790.dtsi +0 -6
@@ -36,12 +36,6 @@ <0 0xf1004000 0 0x2000>, <0 0xf1006000 0 0x2000>; interrupts = <1 9 0xf04>; - - gic-cpuif at 4 { - compatible = "arm,gic-cpuif"; - cpuif-id = <4>; - cpu = <&cpu0>; - }; }; timer {
Signature · 1 line
1.8.2.1
PATCH 5/7 ARM: shmobile: armadillo800eva: Reference DT implementation
In reply to Simon HormanFrom: Bastian Hecht <[email protected]>
Provide alternate board code for the Armadillo800EVA to demonstrate how DT may be used given the current state of driver device tree support. This is intended to act as a reference for mach-shmobile developers.
This a rather bare bone version with the following devices supported:
- GIC
- irqpins
- i2c0/1
- touchscreen
--- arch/arm/boot/dts/Makefile | 1 + .../boot/dts/r8a7740-armadillo800eva-reference.dts | 45 +++++ arch/arm/mach-shmobile/Kconfig | 14 ++ arch/arm/mach-shmobile/Makefile | 1 + .../board-armadillo800eva-reference.c | 213 +++++++++++++++++++++ 5 files changed, 274 insertions(+) create mode 100644 arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts create mode 100644 arch/arm/mach-shmobile/board-armadillo800eva-reference.c
arch/arm/boot/dts/Makefile +1 -0
@@ -162,6 +162,7 @@ dtb-$(CONFIG_ARCH_U8500) += snowball.dtb \ dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ r8a7740-armadillo800eva.dtb \ r8a7778-bockw.dtb \ + r8a7740-armadillo800eva-reference.dtb \ r8a7779-marzen-reference.dtb \ r8a7790-lager.dtb \ sh73a0-kzm9g.dtb \
arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts new file +45 -0
45 lines not on this page · raw message
arch/arm/mach-shmobile/Kconfig +14 -0
@@ -129,6 +129,20 @@ config MACH_ARMADILLO800EVA select SND_SOC_WM8978 if SND_SIMPLE_CARD select USE_OF +config MACH_ARMADILLO800EVA_REFERENCE + bool "Armadillo-800 EVA board - Reference Device Tree Implementation" + depends on ARCH_R8A7740 + select ARCH_REQUIRE_GPIOLIB + select REGULATOR_FIXED_VOLTAGE if REGULATOR + select SND_SOC_WM8978 if SND_SIMPLE_CARD + select USE_OF + ---help--- + Use reference implementation of Aramdillo800 EVA 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_BOCKW bool "BOCK-W platform" depends on ARCH_R8A7778
arch/arm/mach-shmobile/Makefile +1 -0
@@ -46,6 +46,7 @@ obj-$(CONFIG_MACH_MARZEN) += board-marzen.o obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o 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_KZM9G) += board-kzm9g.o obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o
arch/arm/mach-shmobile/board-armadillo800eva-reference.c new file +213 -0
213 lines not on this page · raw message
Signature · 1 line
1.8.2.1
PATCH 6/7 ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings
In reply to Simon HormanFrom: Guennadi Liakhovetski <[email protected]>
This adds DT bindings for an AS3711 PMIC, used for supplying power to the CPU, some peripherals and the backlight, as well as extends the cpu0 DT node with OPPs and a reference to the PMIC to support the CPUFreq and CPU DVFS functions.
--- arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 ++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+)
arch/arm/boot/dts/sh73a0-kzm9g-reference.dts +86 -0
@@ -18,6 +18,19 @@ model = "KZM-A9-GT"; compatible = "renesas,kzm9g-reference", "renesas,sh73a0"; + cpus { + cpu at 0 { + cpu0-supply = <&vdd_dvfs>; + operating-points = < + /* kHz uV */ + 1196000 1315000 + 598000 1175000 + 398667 1065000 + >; + voltage-tolerance = <1>; /* 1% */ + }; + }; + chosen { bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200"; };
@@ -59,6 +72,79 @@ }; }; +&i2c0 { + as3711 at 40 { + compatible = "ams,as3711"; + reg = <0x40>; + + regulators { + vdd_dvfs: sd1 { + regulator-name = "1.315V CPU"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-boot-on; + }; + sd2 { + regulator-name = "1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + sd4 { + regulator-name = "1.215V"; + regulator-min-microvolt = <1215000>; + regulator-max-microvolt = <1235000>; + regulator-always-on; + regulator-boot-on; + }; + ldo2 { + regulator-name = "2.8V CPU"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo3 { + regulator-name = "3.0V CPU"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-always-on; + regulator-boot-on; + }; + ldo4 { + regulator-name = "2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo5 { + regulator-name = "2.8V #2"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; + }; + ldo7 { + regulator-name = "1.15V CPU"; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-boot-on; + }; + ldo8 { + regulator-name = "1.15V CPU #2"; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-boot-on; + }; + }; + }; +}; + &mmcif { bus-width = <8>; vmmc-supply = <®_1p8v>;
Signature · 1 line
1.8.2.1
PATCH 7/7 ARM: shmobile: marzen-reference: add irqpin support in DT
In reply to Simon HormanFrom: Guennadi Liakhovetski <[email protected]>
Add an irqpin interrupt controller DT node on marzen-reference.
--- arch/arm/boot/dts/r8a7779.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
arch/arm/boot/dts/r8a7779.dtsi +17 -0
@@ -48,6 +48,23 @@ <0xf0000100 0x100>; }; + irqpin0: irqpin at fe780010 { + compatible = "renesas,intc-irqpin"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0xfe78001c 4>, + <0xfe780010 4>, + <0xfe780024 4>, + <0xfe780044 4>, + <0xfe780064 4>; + interrupt-parent = <&gic>; + interrupts = <0 27 0x4 + 0 28 0x4 + 0 29 0x4 + 0 30 0x4>; + sense-bitfield-width = <2>; + }; + i2c0: i2c at 0xffc70000 { #address-cells = <1>; #size-cells = <0>;
Signature · 1 line
1.8.2.1
[ fix up subject to say GIT PULL ]
Quoted 57 lines · Simon Horman
Hi Olof, Hi Arnd,
The following changes since commit
c7788792a5e7b0d5d7f96d0766b4cb6112d47d75:Linux 3.10-rc2 (2013-05-20 14:37:38 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.gittags/renesas-dt-for-v3.11for you to fetch changes up to
24603f3caf07f5f65aa17ed7851ad4741595cf6a:ARM: shmobile: marzen-reference: add irqpin support in DT (2013-06-04 18:05:59 +0900)
----------------------------------------------------------------
Renesas ARM-based SoC DT updates for v3.11* Armadillo800eva reference DT - bring up armadillo800eva baord using DT as much as possible
* Remove unused GIC dtsi entries for r8a7790 and r8a73a4
* Add AS3711 and CPUFreq DT bindings for kzm9g-reference
* Add irqpin DT support for marzen-reference----------------------------------------------------------------
Bastian Hecht (3):
ARM: shmobile: r8a7740: Add OF support to initialze the GIC
ARM: shmobile: r8a7740: Prepare for reference DT setup
ARM: shmobile: armadillo800eva: Reference DT implementationGuennadi Liakhovetski (2):
ARM: shmobile: kzm9g-reference: add AS3711 and CPUFreq DT bindings
ARM: shmobile: marzen-reference: add irqpin support in DTMagnus Damm (2):
ARM: shmobile: Remove unused r8a73a4 GIC CPU interface DT bits
ARM: shmobile: Remove unused r8a7790 GIC CPU interface DT bitsarch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/r8a73a4.dtsi | 6 - .../boot/dts/r8a7740-armadillo800eva-reference.dts | 45 +++++ arch/arm/boot/dts/r8a7740.dtsi | 117 +++++++++++ arch/arm/boot/dts/r8a7779.dtsi | 17 ++ arch/arm/boot/dts/r8a7790.dtsi | 6 - arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | 86 +++++++++ arch/arm/mach-shmobile/Kconfig | 14 ++ arch/arm/mach-shmobile/Makefile | 1 + .../board-armadillo800eva-reference.c | 213 +++++++++++++++++++++ arch/arm/mach-shmobile/include/mach/r8a7740.h | 3 + arch/arm/mach-shmobile/intc-r8a7740.c | 24 ++- arch/arm/mach-shmobile/setup-r8a7740.c | 54 +++--- 13 files changed, 544 insertions(+), 43 deletions(-) create mode 100644 arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts create mode 100644 arch/arm/mach-shmobile/board-armadillo800eva-reference.cSignature · 1 line
1.8.2.1
cover Renesas ARM-based SoC DT updates for v3.11
In reply to Simon HormanQuoted 6 lines · Simon Horman
Hi Olof, Hi Arnd,
The following changes since commit
c7788792a5e7b0d5d7f96d0766b4cb6112d47d75:Linux 3.10-rc2 (2013-05-20 14:37:38 -0700)
Quoted 7 lines
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.gittags/renesas-dt-for-v3.11for you to fetch changes up to
24603f3caf07f5f65aa17ed7851ad4741595cf6a:ARM: shmobile: marzen-reference: add irqpin support in DT (2013-06-04 18:05:59 +0900)
Pulled, thanks.
-Olof