[PATCH 7/7] ARM: mach-shmobile: kzm9g: Reference DT implementation

Simon Horman horms at verge.net.au
Mon Nov 26 19:33:48 EST 2012


On Mon, Nov 26, 2012 at 05:34:59PM +0900, Tetsuyuki Kobayashi wrote:
> Hello Simon-san,
> 
> (2012/11/26 9:16), Simon Horman wrote:
> > Provide alternate board code for the kzm9g 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.
> > 
> > Some notes:
> > 
> > * Brings up the GIC interrupt handler using device tree
> > * Brings up the following devices using device tree
> >    - ST1232 (Touchscreen)
> >    - MMCIF (MMC)
> >    - SDHI (MMC)
> > * Does not bring up the INTC interrupt controller at all,
> >    thus external devices may not be used
> > * Uses existing C code and not device tree to initialise the following,
> >    which are needed for a working board:
> >    - SCIF (Serial)
> >    - CMT (Clock)
> >    - PFC (GPIO)
> > 
> > To use this alternate board code instead of the normal board code,
> > CONFIG_MACH_KZM9G_REFERENCE should be selected in the kernel config.
> > And the sh73a0-kzm9g-reference.dtb flattened device tree blob should be used.
> > 
> > Signed-off-by: Simon Horman <horms at verge.net.au>
> > ---
> >   arch/arm/boot/dts/Makefile                     |    3 +-
> >   arch/arm/boot/dts/sh73a0-kzm9g-reference.dts   |  153 ++++++++++++++++++++++++
> >   arch/arm/mach-shmobile/Kconfig                 |   10 ++
> >   arch/arm/mach-shmobile/Makefile                |    8 +-
> >   arch/arm/mach-shmobile/board-kzm9g-reference.c |  142 ++++++++++++++++++++++
> >   5 files changed, 314 insertions(+), 2 deletions(-)
> >   create mode 100644 arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
> >   create mode 100644 arch/arm/mach-shmobile/board-kzm9g-reference.c
> > 
> > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> > index c1ce813..b6c4fa2 100644
> > --- a/arch/arm/boot/dts/Makefile
> > +++ b/arch/arm/boot/dts/Makefile
> > @@ -75,7 +75,8 @@ dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb
> >   dtb-$(CONFIG_ARCH_U8500) += snowball.dtb
> >   dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
> >   	r8a7740-armadillo800eva.dtb \
> > -	sh73a0-kzm9g.dtb
> > +	sh73a0-kzm9g.dtb \
> > +	sh73a0-kzm9g-reference.dtb
> >   dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \
> >   	spear1340-evb.dtb
> >   dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \
> > diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
> > new file mode 100644
> > index 0000000..978892a
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
> > @@ -0,0 +1,153 @@
> > +/*
> > + * Device Tree Source for the KZM-A9-GT board
> > + *
> > + * Copyright (C) 2012 Horms Solutions Ltd.
> > + *
> > + * Based on sh73a0-kzm9g.dts
> > + * Copyright (C) 2012 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/ "skeleton.dtsi"
> > +
> > +/ {
> > +	model = "KZM-A9-GT";
> > +	compatible = "renesas,kzm9g-reference", "renesas,sh73a0";
> > +
> > +	memory {
> > +		device_type = "memory";
> > +		reg = <0x41000000 0x1e800000>;
> > +	};
> > +
> > +	gic: interrupt-controller at f0001000 {
> > +		compatible = "arm,cortex-a9-gic";
> > +		#interrupt-cells = <3>;
> > +		#address-cells = <1>;
> > +		interrupt-controller;
> > +		reg = <0xf0001000 0x1000>,
> > +		      <0xf0000100 0x100>;
> > +	};
> > +
> > +	i2c0: i2c at 0xe6820000 {
> > +		#address-cells = <1>;
> > +		#size-cells = <0>;
> > +		compatible = "renesas,rmobile-iic";
> > +		reg = <0xe6820000 0x425>;
> > +		interrupt-parent = <&gic>;
> > +		interrupts = <0 167 0x4
> > +			      0 170 0x4>;
> > +	};
> 
> I reported /dev/i2c-0 seems not working. I found the reason.
> About i2c0 interrupt, it should be:
> 
>  		interrupts = <0 167 0x4
> 			      0 168 0x4
> 			      0 169 0x4
>  			      0 170 0x4>;
> 
> The same as i2c1 - ic24. There are 4 interrupts each.

Thanks, sorry for missing that the first time around.



More information about the linux-arm-kernel mailing list