diff mbox

[2/4] arm/dts: exynos4: Add DTS files derived from common Exynos4

Message ID 1344366398-19022-1-git-send-email-dongjin.kim@agreeyamobility.net (mailing list archive)
State New, archived
Headers show

Commit Message

Dongjin Kim Aug. 7, 2012, 7:06 p.m. UTC
This patch creates a DTS file, exynos4.dtsi, for Exynos4210/4x12 and it
describes common device nodes. SoC specific device nodes are described in
another DTS file derived from this, exynos4210.dtsi and exynos4412.dtsi.

exynos4412.dtsi is added new for Exynos4412 as well as exynos4210 is modified
for Exynos4210 specific device nodes.

Signed-off-by: Dongjin Kim <dongjin.kim@agreeyamobility.net>
---
 arch/arm/boot/dts/exynos4.dtsi    |  404 +++++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/exynos4210.dtsi |  374 +---------------------------------
 arch/arm/boot/dts/exynos4412.dtsi |  104 ++++++++++
 3 files changed, 510 insertions(+), 372 deletions(-)
 create mode 100644 arch/arm/boot/dts/exynos4.dtsi
 create mode 100644 arch/arm/boot/dts/exynos4412.dtsi

Comments

Arnd Bergmann Aug. 7, 2012, 7:38 p.m. UTC | #1
On Tuesday 07 August 2012, Dongjin Kim wrote:
> 
> This patch creates a DTS file, exynos4.dtsi, for Exynos4210/4x12 and it
> describes common device nodes. SoC specific device nodes are described in
> another DTS file derived from this, exynos4210.dtsi and exynos4412.dtsi.
> 
> exynos4412.dtsi is added new for Exynos4412 as well as exynos4210 is modified
> for Exynos4210 specific device nodes.
> 
> Signed-off-by: Dongjin Kim <dongjin.kim@agreeyamobility.net>
> ---
>  arch/arm/boot/dts/exynos4.dtsi    |  404 +++++++++++++++++++++++++++++++++++++
>  arch/arm/boot/dts/exynos4210.dtsi |  374 +---------------------------------
>  arch/arm/boot/dts/exynos4412.dtsi |  104 ++++++++++
>  3 files changed, 510 insertions(+), 372 deletions(-)

Looks good in principle. I would hope that "git format-patch -M" can detect this
mostly-moved filed. Did you use that?

	Arnd
Dongjin Kim Aug. 7, 2012, 7:57 p.m. UTC | #2
Hi,

I didn't use -M and I couldn't see any difference with the it.
Did I make something wrong on that patch?

Thank you in advance.
Dongjin.
________________________________________
?? ??: Arnd Bergmann [arnd@arndb.de]
?? ??: 2012? 8? 8? ??? ?? 4:38
?? ??: Dongjin Kim
??: Dongjin Kim; Russell King; Thomas Abraham; Kukjin Kim; Grant Likely; linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org
??: Re: [PATCH 2/4] arm/dts: exynos4: Add DTS files derived from common Exynos4

On Tuesday 07 August 2012, Dongjin Kim wrote:
>

> This patch creates a DTS file, exynos4.dtsi, for Exynos4210/4x12 and it

> describes common device nodes. SoC specific device nodes are described in

> another DTS file derived from this, exynos4210.dtsi and exynos4412.dtsi.

>

> exynos4412.dtsi is added new for Exynos4412 as well as exynos4210 is modified

> for Exynos4210 specific device nodes.

>

> Signed-off-by: Dongjin Kim <dongjin.kim@agreeyamobility.net>

> ---

>  arch/arm/boot/dts/exynos4.dtsi    |  404 +++++++++++++++++++++++++++++++++++++

>  arch/arm/boot/dts/exynos4210.dtsi |  374 +---------------------------------

>  arch/arm/boot/dts/exynos4412.dtsi |  104 ++++++++++

>  3 files changed, 510 insertions(+), 372 deletions(-)


Looks good in principle. I would hope that "git format-patch -M" can detect this
mostly-moved filed. Did you use that?

        Arnd
Arnd Bergmann Aug. 7, 2012, 8:29 p.m. UTC | #3
On Tuesday 07 August 2012, Dongjin Kim wrote:
> Hi,
> 
> I didn't use -M and I couldn't see any difference with the it.
> Did I make something wrong on that patch?

No, I think it's just git being less smart about file moves than I was hoping
for. It might do the right thing if you do the patch in two steps:

1. rename exynos4210.dtsi to exynos4.dtsi and add a one-line exynos4210.dtsi
file that just includes exynos4.dtsi.

2. do all the changes for moving contents back from exynos4.dtsi into
exynos4210.dtsi and exynos4412.dtsi.

Not sure if it's worth it though. Your version is probably good enough
if there are no tools to do a better job automatically.

	Arnd
Kim Kukjin Aug. 8, 2012, 2:08 a.m. UTC | #4
Arnd Bergmann wrote:
> 
> On Tuesday 07 August 2012, Dongjin Kim wrote:
> > Hi,
> >
> > I didn't use -M and I couldn't see any difference with the it.
> > Did I make something wrong on that patch?
> 
> No, I think it's just git being less smart about file moves than I was
> hoping
> for. It might do the right thing if you do the patch in two steps:
> 
Yeah, in this case, git does not work just as we expected :-(

> 1. rename exynos4210.dtsi to exynos4.dtsi and add a one-line
> exynos4210.dtsi
> file that just includes exynos4.dtsi.
> 
> 2. do all the changes for moving contents back from exynos4.dtsi into
> exynos4210.dtsi and exynos4412.dtsi.
> 
> Not sure if it's worth it though.

Hehehe, but I did with separated commit as per your comment and it was ok,
then squashed, same...uhm...I think, we don't need to keep two commits
here...

> Your version is probably good enough
> if there are no tools to do a better job automatically.
> 
I agree with Arnd's opinion and I will review in detail soon.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
Thomas Abraham Aug. 8, 2012, 3:38 a.m. UTC | #5
On 8 August 2012 00:36, Dongjin Kim <tobetter@gmail.com> wrote:
> This patch creates a DTS file, exynos4.dtsi, for Exynos4210/4x12 and it
> describes common device nodes. SoC specific device nodes are described in
> another DTS file derived from this, exynos4210.dtsi and exynos4412.dtsi.
>
> exynos4412.dtsi is added new for Exynos4412 as well as exynos4210 is modified
> for Exynos4210 specific device nodes.
>
> Signed-off-by: Dongjin Kim <dongjin.kim@agreeyamobility.net>
> ---
>  arch/arm/boot/dts/exynos4.dtsi    |  404 +++++++++++++++++++++++++++++++++++++
>  arch/arm/boot/dts/exynos4210.dtsi |  374 +---------------------------------
>  arch/arm/boot/dts/exynos4412.dtsi |  104 ++++++++++
>  3 files changed, 510 insertions(+), 372 deletions(-)
>  create mode 100644 arch/arm/boot/dts/exynos4.dtsi
>  create mode 100644 arch/arm/boot/dts/exynos4412.dtsi
>
> diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
> new file mode 100644
> index 0000000..ffda13e
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4.dtsi
> @@ -0,0 +1,404 @@
> +/*
> + * Samsung's Exynos4210 SoC device tree source
> + *
> + * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
> + *             http://www.samsung.com
> + * Copyright (c) 2010-2011 Linaro Ltd.
> + *             www.linaro.org
> + *
> + * Samsung's Exynos4210 SoC device nodes are listed in this file. Exynos4210
> + * based board files can include this file and provide values for board specfic
> + * bindings.
> + *
> + * Note: This file does not include device nodes for all the controllers in
> + * Exynos4210 SoC. As device tree coverage for Exynos4210 increases, additional
> + * nodes can be added to this file.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> +*/
> +
> +/include/ "skeleton.dtsi"
> +
> +/ {
> +       compatible = "samsung,exynos4";
> +       interrupt-parent = <&gic>;
> +
> +       aliases {
> +               spi0 = &spi_0;
> +               spi1 = &spi_1;
> +               spi2 = &spi_2;
> +       };
> +
> +       gic:interrupt-controller@10490000 {
> +               compatible = "arm,cortex-a9-gic";
> +               #interrupt-cells = <3>;
> +               interrupt-controller;
> +               cpu-offset = <0x8000>;

Since cpu-offset is SoC specific, this property can be moved into SoC
specific dtsi file. Or we could have it here and use 0x8000 as the
default value. I incline towards making this property SoC specific.

> +               reg = <0x10490000 0x1000>, <0x10480000 0x100>;
> +       };
> +
> +       combiner:interrupt-controller@10440000 {
> +               compatible = "samsung,exynos4210-combiner";
> +               #interrupt-cells = <2>;
> +               interrupt-controller;
> +               reg = <0x10440000 0x1000>;
> +               interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
> +                            <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
> +                            <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
> +                            <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>;
> +       };


For combiner, the list of interrupts can be SoC speicifc. Exynos4412
has four more combiner groups and hence the list of interrupts can be
made SoC specific.

> +
> +       watchdog@10060000 {
> +               compatible = "samsung,s3c2410-wdt";
> +               reg = <0x10060000 0x100>;
> +               interrupts = <0 43 0>;
> +       };
> +
> +       rtc@10070000 {
> +               compatible = "samsung,s3c6410-rtc";
> +               reg = <0x10070000 0x100>;
> +               interrupts = <0 44 0>, <0 45 0>;
> +       };
> +
> +       keypad@100A0000 {
> +               compatible = "samsung,s5pv210-keypad";
> +               reg = <0x100A0000 0x100>;
> +               interrupts = <0 109 0>;
> +       };
> +
> +       sdhci@12510000 {
> +               compatible = "samsung,exynos4210-sdhci";
> +               reg = <0x12510000 0x100>;
> +               interrupts = <0 73 0>;
> +       };
> +
> +       sdhci@12520000 {
> +               compatible = "samsung,exynos4210-sdhci";
> +               reg = <0x12520000 0x100>;
> +               interrupts = <0 74 0>;
> +       };
> +
> +       sdhci@12530000 {
> +               compatible = "samsung,exynos4210-sdhci";
> +               reg = <0x12530000 0x100>;
> +               interrupts = <0 75 0>;
> +       };
> +
> +       sdhci@12540000 {
> +               compatible = "samsung,exynos4210-sdhci";
> +               reg = <0x12540000 0x100>;
> +               interrupts = <0 76 0>;
> +       };
> +
> +       serial@13800000 {
> +               compatible = "samsung,exynos4210-uart";
> +               reg = <0x13800000 0x100>;
> +               interrupts = <0 52 0>;
> +       };
> +
> +       serial@13810000 {
> +               compatible = "samsung,exynos4210-uart";
> +               reg = <0x13810000 0x100>;
> +               interrupts = <0 53 0>;
> +       };
> +
> +       serial@13820000 {
> +               compatible = "samsung,exynos4210-uart";
> +               reg = <0x13820000 0x100>;
> +               interrupts = <0 54 0>;
> +       };
> +
> +       serial@13830000 {
> +               compatible = "samsung,exynos4210-uart";
> +               reg = <0x13830000 0x100>;
> +               interrupts = <0 55 0>;
> +       };
> +
> +       i2c@13860000 {
> +               compatible = "samsung,s3c2440-i2c";
> +               reg = <0x13860000 0x100>;
> +               interrupts = <0 58 0>;
> +       };
> +
> +       i2c@13870000 {
> +               compatible = "samsung,s3c2440-i2c";
> +               reg = <0x13870000 0x100>;
> +               interrupts = <0 59 0>;
> +       };
> +
> +       i2c@13880000 {
> +               compatible = "samsung,s3c2440-i2c";
> +               reg = <0x13880000 0x100>;
> +               interrupts = <0 60 0>;
> +       };
> +
> +       i2c@13890000 {
> +               compatible = "samsung,s3c2440-i2c";
> +               reg = <0x13890000 0x100>;
> +               interrupts = <0 61 0>;
> +       };
> +
> +       i2c@138A0000 {
> +               compatible = "samsung,s3c2440-i2c";
> +               reg = <0x138A0000 0x100>;
> +               interrupts = <0 62 0>;
> +       };
> +
> +       i2c@138B0000 {
> +               compatible = "samsung,s3c2440-i2c";
> +               reg = <0x138B0000 0x100>;
> +               interrupts = <0 63 0>;
> +       };
> +
> +       i2c@138C0000 {
> +               compatible = "samsung,s3c2440-i2c";
> +               reg = <0x138C0000 0x100>;
> +               interrupts = <0 64 0>;
> +       };
> +
> +       i2c@138D0000 {
> +               compatible = "samsung,s3c2440-i2c";
> +               reg = <0x138D0000 0x100>;
> +               interrupts = <0 65 0>;
> +       };
> +
> +       spi_0: spi@13920000 {
> +               compatible = "samsung,exynos4210-spi";
> +               reg = <0x13920000 0x100>;
> +               interrupts = <0 66 0>;
> +               tx-dma-channel = <&pdma0 7>; /* preliminary */
> +               rx-dma-channel = <&pdma0 6>; /* preliminary */
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +       };
> +
> +       spi_1: spi@13930000 {
> +               compatible = "samsung,exynos4210-spi";
> +               reg = <0x13930000 0x100>;
> +               interrupts = <0 67 0>;
> +               tx-dma-channel = <&pdma1 7>; /* preliminary */
> +               rx-dma-channel = <&pdma1 6>; /* preliminary */
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +       };
> +
> +       spi_2: spi@13940000 {
> +               compatible = "samsung,exynos4210-spi";
> +               reg = <0x13940000 0x100>;
> +               interrupts = <0 68 0>;
> +               tx-dma-channel = <&pdma0 9>; /* preliminary */
> +               rx-dma-channel = <&pdma0 8>; /* preliminary */
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +       };
> +
> +       amba {
> +               #address-cells = <1>;
> +               #size-cells = <1>;
> +               compatible = "arm,amba-bus";
> +               interrupt-parent = <&gic>;
> +               ranges;
> +
> +               pdma0: pdma@12680000 {
> +                       compatible = "arm,pl330", "arm,primecell";
> +                       reg = <0x12680000 0x1000>;
> +                       interrupts = <0 35 0>;
> +               };
> +
> +               pdma1: pdma@12690000 {
> +                       compatible = "arm,pl330", "arm,primecell";
> +                       reg = <0x12690000 0x1000>;
> +                       interrupts = <0 36 0>;
> +               };
> +       };
> +
> +
> +       gpio-controllers {
> +               #address-cells = <1>;
> +               #size-cells = <1>;
> +               gpio-controller;
> +               ranges;
> +
> +               gpa0: gpio-controller@11400000 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11400000 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpa1: gpio-controller@11400020 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11400020 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpb: gpio-controller@11400040 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11400040 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpc0: gpio-controller@11400060 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11400060 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpc1: gpio-controller@11400080 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11400080 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpd0: gpio-controller@114000A0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x114000A0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpd1: gpio-controller@114000C0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x114000C0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpf0: gpio-controller@11400180 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11400180 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpf1: gpio-controller@114001A0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x114001A0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpf2: gpio-controller@114001C0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x114001C0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpf3: gpio-controller@114001E0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x114001E0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpk0: gpio-controller@11000040 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000040 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpk1: gpio-controller@11000060 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000060 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpk2: gpio-controller@11000080 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000080 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpk3: gpio-controller@110000A0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x110000A0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpl0: gpio-controller@110000C0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x110000C0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpl1: gpio-controller@110000E0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x110000E0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpl2: gpio-controller@11000100 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000100 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpy0: gpio-controller@11000120 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000120 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpy1: gpio-controller@11000140 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000140 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpy2: gpio-controller@11000160 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000160 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpy3: gpio-controller@11000180 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000180 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpy4: gpio-controller@110001A0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x110001A0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpy5: gpio-controller@110001C0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x110001C0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpy6: gpio-controller@110001E0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x110001E0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpx0: gpio-controller@11000C00 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000C00 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpx1: gpio-controller@11000C20 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000C20 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpx2: gpio-controller@11000C40 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000C40 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpx3: gpio-controller@11000C60 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000C60 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpz: gpio-controller@03860000 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x03860000 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +       };
> +};
> diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
> index 02891fe..d41d9de 100644
> --- a/arch/arm/boot/dts/exynos4210.dtsi
> +++ b/arch/arm/boot/dts/exynos4210.dtsi
> @@ -19,249 +19,16 @@
>   * published by the Free Software Foundation.
>  */
>
> -/include/ "skeleton.dtsi"
> +/include/ "exynos4.dtsi"
>
>  / {
>         compatible = "samsung,exynos4210";
> -       interrupt-parent = <&gic>;
> -
> -       aliases {
> -               spi0 = &spi_0;
> -               spi1 = &spi_1;
> -               spi2 = &spi_2;
> -       };
>
>         gic:interrupt-controller@10490000 {
> -               compatible = "arm,cortex-a9-gic";
> -               #interrupt-cells = <3>;
> -               interrupt-controller;
>                 cpu-offset = <0x8000>;
> -               reg = <0x10490000 0x1000>, <0x10480000 0x100>;
> -       };
> -
> -       combiner:interrupt-controller@10440000 {
> -               compatible = "samsung,exynos4210-combiner";
> -               #interrupt-cells = <2>;
> -               interrupt-controller;
> -               reg = <0x10440000 0x1000>;
> -               interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
> -                            <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
> -                            <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
> -                            <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>;
> -       };
> -
> -       watchdog@10060000 {
> -               compatible = "samsung,s3c2410-wdt";
> -               reg = <0x10060000 0x100>;
> -               interrupts = <0 43 0>;
> -       };
> -
> -       rtc@10070000 {
> -               compatible = "samsung,s3c6410-rtc";
> -               reg = <0x10070000 0x100>;
> -               interrupts = <0 44 0>, <0 45 0>;
> -       };
> -
> -       keypad@100A0000 {
> -               compatible = "samsung,s5pv210-keypad";
> -               reg = <0x100A0000 0x100>;
> -               interrupts = <0 109 0>;
> -       };
> -
> -       sdhci@12510000 {
> -               compatible = "samsung,exynos4210-sdhci";
> -               reg = <0x12510000 0x100>;
> -               interrupts = <0 73 0>;
> -       };
> -
> -       sdhci@12520000 {
> -               compatible = "samsung,exynos4210-sdhci";
> -               reg = <0x12520000 0x100>;
> -               interrupts = <0 74 0>;
> -       };
> -
> -       sdhci@12530000 {
> -               compatible = "samsung,exynos4210-sdhci";
> -               reg = <0x12530000 0x100>;
> -               interrupts = <0 75 0>;
> -       };
> -
> -       sdhci@12540000 {
> -               compatible = "samsung,exynos4210-sdhci";
> -               reg = <0x12540000 0x100>;
> -               interrupts = <0 76 0>;
> -       };
> -
> -       serial@13800000 {
> -               compatible = "samsung,exynos4210-uart";
> -               reg = <0x13800000 0x100>;
> -               interrupts = <0 52 0>;
> -       };
> -
> -       serial@13810000 {
> -               compatible = "samsung,exynos4210-uart";
> -               reg = <0x13810000 0x100>;
> -               interrupts = <0 53 0>;
> -       };
> -
> -       serial@13820000 {
> -               compatible = "samsung,exynos4210-uart";
> -               reg = <0x13820000 0x100>;
> -               interrupts = <0 54 0>;
> -       };
> -
> -       serial@13830000 {
> -               compatible = "samsung,exynos4210-uart";
> -               reg = <0x13830000 0x100>;
> -               interrupts = <0 55 0>;
> -       };
> -
> -       i2c@13860000 {
> -               compatible = "samsung,s3c2440-i2c";
> -               reg = <0x13860000 0x100>;
> -               interrupts = <0 58 0>;
> -       };
> -
> -       i2c@13870000 {
> -               compatible = "samsung,s3c2440-i2c";
> -               reg = <0x13870000 0x100>;
> -               interrupts = <0 59 0>;
> -       };
> -
> -       i2c@13880000 {
> -               compatible = "samsung,s3c2440-i2c";
> -               reg = <0x13880000 0x100>;
> -               interrupts = <0 60 0>;
> -       };
> -
> -       i2c@13890000 {
> -               compatible = "samsung,s3c2440-i2c";
> -               reg = <0x13890000 0x100>;
> -               interrupts = <0 61 0>;
> -       };
> -
> -       i2c@138A0000 {
> -               compatible = "samsung,s3c2440-i2c";
> -               reg = <0x138A0000 0x100>;
> -               interrupts = <0 62 0>;
> -       };
> -
> -       i2c@138B0000 {
> -               compatible = "samsung,s3c2440-i2c";
> -               reg = <0x138B0000 0x100>;
> -               interrupts = <0 63 0>;
> -       };
> -
> -       i2c@138C0000 {
> -               compatible = "samsung,s3c2440-i2c";
> -               reg = <0x138C0000 0x100>;
> -               interrupts = <0 64 0>;
> -       };
> -
> -       i2c@138D0000 {
> -               compatible = "samsung,s3c2440-i2c";
> -               reg = <0x138D0000 0x100>;
> -               interrupts = <0 65 0>;
> -       };
> -
> -       spi_0: spi@13920000 {
> -               compatible = "samsung,exynos4210-spi";
> -               reg = <0x13920000 0x100>;
> -               interrupts = <0 66 0>;
> -               tx-dma-channel = <&pdma0 7>; /* preliminary */
> -               rx-dma-channel = <&pdma0 6>; /* preliminary */
> -               #address-cells = <1>;
> -               #size-cells = <0>;
> -       };
> -
> -       spi_1: spi@13930000 {
> -               compatible = "samsung,exynos4210-spi";
> -               reg = <0x13930000 0x100>;
> -               interrupts = <0 67 0>;
> -               tx-dma-channel = <&pdma1 7>; /* preliminary */
> -               rx-dma-channel = <&pdma1 6>; /* preliminary */
> -               #address-cells = <1>;
> -               #size-cells = <0>;
> -       };
> -
> -       spi_2: spi@13940000 {
> -               compatible = "samsung,exynos4210-spi";
> -               reg = <0x13940000 0x100>;
> -               interrupts = <0 68 0>;
> -               tx-dma-channel = <&pdma0 9>; /* preliminary */
> -               rx-dma-channel = <&pdma0 8>; /* preliminary */
> -               #address-cells = <1>;
> -               #size-cells = <0>;
> -       };
> -
> -       amba {
> -               #address-cells = <1>;
> -               #size-cells = <1>;
> -               compatible = "arm,amba-bus";
> -               interrupt-parent = <&gic>;
> -               ranges;
> -
> -               pdma0: pdma@12680000 {
> -                       compatible = "arm,pl330", "arm,primecell";
> -                       reg = <0x12680000 0x1000>;
> -                       interrupts = <0 35 0>;
> -               };
> -
> -               pdma1: pdma@12690000 {
> -                       compatible = "arm,pl330", "arm,primecell";
> -                       reg = <0x12690000 0x1000>;
> -                       interrupts = <0 36 0>;
> -               };
>         };
>
>         gpio-controllers {
> -               #address-cells = <1>;
> -               #size-cells = <1>;
> -               gpio-controller;
> -               ranges;
> -
> -               gpa0: gpio-controller@11400000 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11400000 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpa1: gpio-controller@11400020 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11400020 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpb: gpio-controller@11400040 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11400040 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpc0: gpio-controller@11400060 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11400060 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpc1: gpio-controller@11400080 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11400080 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpd0: gpio-controller@114000A0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x114000A0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpd1: gpio-controller@114000C0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x114000C0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
>                 gpe0: gpio-controller@114000E0 {
>                         compatible = "samsung,exynos4-gpio";
>                         reg = <0x114000E0 0x20>;
> @@ -292,30 +59,6 @@
>                         #gpio-cells = <4>;
>                 };
>
> -               gpf0: gpio-controller@11400180 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11400180 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpf1: gpio-controller@114001A0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x114001A0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpf2: gpio-controller@114001C0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x114001C0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpf3: gpio-controller@114001E0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x114001E0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
>                 gpj0: gpio-controller@11000000 {
>                         compatible = "samsung,exynos4-gpio";
>                         reg = <0x11000000 0x20>;
> @@ -327,119 +70,6 @@
>                         reg = <0x11000020 0x20>;
>                         #gpio-cells = <4>;
>                 };
> -
> -               gpk0: gpio-controller@11000040 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000040 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpk1: gpio-controller@11000060 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000060 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpk2: gpio-controller@11000080 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000080 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpk3: gpio-controller@110000A0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x110000A0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpl0: gpio-controller@110000C0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x110000C0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpl1: gpio-controller@110000E0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x110000E0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpl2: gpio-controller@11000100 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000100 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpy0: gpio-controller@11000120 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000120 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpy1: gpio-controller@11000140 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000140 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpy2: gpio-controller@11000160 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000160 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpy3: gpio-controller@11000180 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000180 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpy4: gpio-controller@110001A0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x110001A0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpy5: gpio-controller@110001C0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x110001C0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpy6: gpio-controller@110001E0 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x110001E0 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpx0: gpio-controller@11000C00 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000C00 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpx1: gpio-controller@11000C20 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000C20 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpx2: gpio-controller@11000C40 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000C40 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpx3: gpio-controller@11000C60 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x11000C60 0x20>;
> -                       #gpio-cells = <4>;
> -               };
> -
> -               gpz: gpio-controller@03860000 {
> -                       compatible = "samsung,exynos4-gpio";
> -                       reg = <0x03860000 0x20>;
> -                       #gpio-cells = <4>;
> -               };
>         };
>  };
> +
> diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
> new file mode 100644
> index 0000000..85ee3f8
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4412.dtsi
> @@ -0,0 +1,104 @@
> +/*
> + * Samsung's Exynos4412 SoC device tree source
> + *
> + * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
> + *             http://www.samsung.com
> + * Copyright (c) 2010-2011 Linaro Ltd.
> + *             www.linaro.org
> + *
> + * Samsung's Exynos4210 SoC device nodes are listed in this file. Exynos4210
> + * based board files can include this file and provide values for board specfic
> + * bindings.
> + *
> + * Note: This file does not include device nodes for all the controllers in
> + * Exynos4210 SoC. As device tree coverage for Exynos4210 increases, additional
> + * nodes can be added to this file.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> +*/
> +
> +/include/ "exynos4.dtsi"
> +
> +/ {
> +       compatible = "samsung,exynos4412";
> +
> +       gic:interrupt-controller@10490000 {
> +               cpu-offset = <0x4000>;
> +       };
> +
> +       gpio-controllers {
> +               gpj0: gpio-controller@11400240 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11400240 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpj1: gpio-controller@11400260 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11400260 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpm0: gpio-controller@11000260 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000260 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpm1: gpio-controller@11000280 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x11000280 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpm2: gpio-controller@110002A0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x110002A0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpm3: gpio-controller@110002C0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x110002C0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpm4: gpio-controller@110002E0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x110002E0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpv0: gpio-controller@106E0000 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x106E0000 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpv1: gpio-controller@106E0020 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x106E0020 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpv2: gpio-controller@106E0060 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x106E0060 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpv3: gpio-controller@106E0080 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x106E0080 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +
> +               gpv4: gpio-controller@106E00C0 {
> +                       compatible = "samsung,exynos4-gpio";
> +                       reg = <0x106E00C0 0x20>;
> +                       #gpio-cells = <4>;
> +               };
> +       };
> +};

It is fine to list the gpio bank nodes here but for these nodes to be
usable, the corresponding support for Exynos4412 gpio has to be added
in the samsung gpio driver.

Thanks,
Thomas.

> --
> 1.7.9.5
>
diff mbox

Patch

diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
new file mode 100644
index 0000000..ffda13e
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -0,0 +1,404 @@ 
+/*
+ * Samsung's Exynos4210 SoC device tree source
+ *
+ * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com
+ * Copyright (c) 2010-2011 Linaro Ltd.
+ *		www.linaro.org
+ *
+ * Samsung's Exynos4210 SoC device nodes are listed in this file. Exynos4210
+ * based board files can include this file and provide values for board specfic
+ * bindings.
+ *
+ * Note: This file does not include device nodes for all the controllers in
+ * Exynos4210 SoC. As device tree coverage for Exynos4210 increases, additional
+ * nodes can be added to this file.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/include/ "skeleton.dtsi"
+
+/ {
+	compatible = "samsung,exynos4";
+	interrupt-parent = <&gic>;
+
+	aliases {
+		spi0 = &spi_0;
+		spi1 = &spi_1;
+		spi2 = &spi_2;
+	};
+
+	gic:interrupt-controller@10490000 {
+		compatible = "arm,cortex-a9-gic";
+		#interrupt-cells = <3>;
+		interrupt-controller;
+		cpu-offset = <0x8000>;
+		reg = <0x10490000 0x1000>, <0x10480000 0x100>;
+	};
+
+	combiner:interrupt-controller@10440000 {
+		compatible = "samsung,exynos4210-combiner";
+		#interrupt-cells = <2>;
+		interrupt-controller;
+		reg = <0x10440000 0x1000>;
+		interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
+			     <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
+			     <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
+			     <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>;
+	};
+
+	watchdog@10060000 {
+		compatible = "samsung,s3c2410-wdt";
+		reg = <0x10060000 0x100>;
+		interrupts = <0 43 0>;
+	};
+
+	rtc@10070000 {
+		compatible = "samsung,s3c6410-rtc";
+		reg = <0x10070000 0x100>;
+		interrupts = <0 44 0>, <0 45 0>;
+	};
+
+	keypad@100A0000 {
+		compatible = "samsung,s5pv210-keypad";
+		reg = <0x100A0000 0x100>;
+		interrupts = <0 109 0>;
+	};
+
+	sdhci@12510000 {
+		compatible = "samsung,exynos4210-sdhci";
+		reg = <0x12510000 0x100>;
+		interrupts = <0 73 0>;
+	};
+
+	sdhci@12520000 {
+		compatible = "samsung,exynos4210-sdhci";
+		reg = <0x12520000 0x100>;
+		interrupts = <0 74 0>;
+	};
+
+	sdhci@12530000 {
+		compatible = "samsung,exynos4210-sdhci";
+		reg = <0x12530000 0x100>;
+		interrupts = <0 75 0>;
+	};
+
+	sdhci@12540000 {
+		compatible = "samsung,exynos4210-sdhci";
+		reg = <0x12540000 0x100>;
+		interrupts = <0 76 0>;
+	};
+
+	serial@13800000 {
+		compatible = "samsung,exynos4210-uart";
+		reg = <0x13800000 0x100>;
+		interrupts = <0 52 0>;
+	};
+
+	serial@13810000 {
+		compatible = "samsung,exynos4210-uart";
+		reg = <0x13810000 0x100>;
+		interrupts = <0 53 0>;
+	};
+
+	serial@13820000 {
+		compatible = "samsung,exynos4210-uart";
+		reg = <0x13820000 0x100>;
+		interrupts = <0 54 0>;
+	};
+
+	serial@13830000 {
+		compatible = "samsung,exynos4210-uart";
+		reg = <0x13830000 0x100>;
+		interrupts = <0 55 0>;
+	};
+
+	i2c@13860000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x13860000 0x100>;
+		interrupts = <0 58 0>;
+	};
+
+	i2c@13870000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x13870000 0x100>;
+		interrupts = <0 59 0>;
+	};
+
+	i2c@13880000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x13880000 0x100>;
+		interrupts = <0 60 0>;
+	};
+
+	i2c@13890000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x13890000 0x100>;
+		interrupts = <0 61 0>;
+	};
+
+	i2c@138A0000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x138A0000 0x100>;
+		interrupts = <0 62 0>;
+	};
+
+	i2c@138B0000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x138B0000 0x100>;
+		interrupts = <0 63 0>;
+	};
+
+	i2c@138C0000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x138C0000 0x100>;
+		interrupts = <0 64 0>;
+	};
+
+	i2c@138D0000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x138D0000 0x100>;
+		interrupts = <0 65 0>;
+	};
+
+	spi_0: spi@13920000 {
+		compatible = "samsung,exynos4210-spi";
+		reg = <0x13920000 0x100>;
+		interrupts = <0 66 0>;
+		tx-dma-channel = <&pdma0 7>; /* preliminary */
+		rx-dma-channel = <&pdma0 6>; /* preliminary */
+		#address-cells = <1>;
+		#size-cells = <0>;
+	};
+
+	spi_1: spi@13930000 {
+		compatible = "samsung,exynos4210-spi";
+		reg = <0x13930000 0x100>;
+		interrupts = <0 67 0>;
+		tx-dma-channel = <&pdma1 7>; /* preliminary */
+		rx-dma-channel = <&pdma1 6>; /* preliminary */
+		#address-cells = <1>;
+		#size-cells = <0>;
+	};
+
+	spi_2: spi@13940000 {
+		compatible = "samsung,exynos4210-spi";
+		reg = <0x13940000 0x100>;
+		interrupts = <0 68 0>;
+		tx-dma-channel = <&pdma0 9>; /* preliminary */
+		rx-dma-channel = <&pdma0 8>; /* preliminary */
+		#address-cells = <1>;
+		#size-cells = <0>;
+	};
+
+	amba {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "arm,amba-bus";
+		interrupt-parent = <&gic>;
+		ranges;
+
+		pdma0: pdma@12680000 {
+			compatible = "arm,pl330", "arm,primecell";
+			reg = <0x12680000 0x1000>;
+			interrupts = <0 35 0>;
+		};
+
+		pdma1: pdma@12690000 {
+			compatible = "arm,pl330", "arm,primecell";
+			reg = <0x12690000 0x1000>;
+			interrupts = <0 36 0>;
+		};
+	};
+
+
+	gpio-controllers {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		gpio-controller;
+		ranges;
+
+		gpa0: gpio-controller@11400000 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11400000 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpa1: gpio-controller@11400020 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11400020 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpb: gpio-controller@11400040 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11400040 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpc0: gpio-controller@11400060 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11400060 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpc1: gpio-controller@11400080 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11400080 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpd0: gpio-controller@114000A0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x114000A0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpd1: gpio-controller@114000C0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x114000C0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpf0: gpio-controller@11400180 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11400180 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpf1: gpio-controller@114001A0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x114001A0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpf2: gpio-controller@114001C0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x114001C0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpf3: gpio-controller@114001E0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x114001E0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpk0: gpio-controller@11000040 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000040 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpk1: gpio-controller@11000060 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000060 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpk2: gpio-controller@11000080 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000080 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpk3: gpio-controller@110000A0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x110000A0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpl0: gpio-controller@110000C0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x110000C0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpl1: gpio-controller@110000E0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x110000E0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpl2: gpio-controller@11000100 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000100 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpy0: gpio-controller@11000120 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000120 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpy1: gpio-controller@11000140 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000140 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpy2: gpio-controller@11000160 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000160 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpy3: gpio-controller@11000180 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000180 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpy4: gpio-controller@110001A0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x110001A0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpy5: gpio-controller@110001C0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x110001C0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpy6: gpio-controller@110001E0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x110001E0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpx0: gpio-controller@11000C00 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000C00 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpx1: gpio-controller@11000C20 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000C20 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpx2: gpio-controller@11000C40 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000C40 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpx3: gpio-controller@11000C60 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000C60 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpz: gpio-controller@03860000 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x03860000 0x20>;
+			#gpio-cells = <4>;
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index 02891fe..d41d9de 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -19,249 +19,16 @@ 
  * published by the Free Software Foundation.
 */
 
-/include/ "skeleton.dtsi"
+/include/ "exynos4.dtsi"
 
 / {
 	compatible = "samsung,exynos4210";
-	interrupt-parent = <&gic>;
-
-	aliases {
-		spi0 = &spi_0;
-		spi1 = &spi_1;
-		spi2 = &spi_2;
-	};
 
 	gic:interrupt-controller@10490000 {
-		compatible = "arm,cortex-a9-gic";
-		#interrupt-cells = <3>;
-		interrupt-controller;
 		cpu-offset = <0x8000>;
-		reg = <0x10490000 0x1000>, <0x10480000 0x100>;
-	};
-
-	combiner:interrupt-controller@10440000 {
-		compatible = "samsung,exynos4210-combiner";
-		#interrupt-cells = <2>;
-		interrupt-controller;
-		reg = <0x10440000 0x1000>;
-		interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
-			     <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
-			     <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
-			     <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>;
-	};
-
-	watchdog@10060000 {
-		compatible = "samsung,s3c2410-wdt";
-		reg = <0x10060000 0x100>;
-		interrupts = <0 43 0>;
-	};
-
-	rtc@10070000 {
-		compatible = "samsung,s3c6410-rtc";
-		reg = <0x10070000 0x100>;
-		interrupts = <0 44 0>, <0 45 0>;
-	};
-
-	keypad@100A0000 {
-		compatible = "samsung,s5pv210-keypad";
-		reg = <0x100A0000 0x100>;
-		interrupts = <0 109 0>;
-	};
-
-	sdhci@12510000 {
-		compatible = "samsung,exynos4210-sdhci";
-		reg = <0x12510000 0x100>;
-		interrupts = <0 73 0>;
-	};
-
-	sdhci@12520000 {
-		compatible = "samsung,exynos4210-sdhci";
-		reg = <0x12520000 0x100>;
-		interrupts = <0 74 0>;
-	};
-
-	sdhci@12530000 {
-		compatible = "samsung,exynos4210-sdhci";
-		reg = <0x12530000 0x100>;
-		interrupts = <0 75 0>;
-	};
-
-	sdhci@12540000 {
-		compatible = "samsung,exynos4210-sdhci";
-		reg = <0x12540000 0x100>;
-		interrupts = <0 76 0>;
-	};
-
-	serial@13800000 {
-		compatible = "samsung,exynos4210-uart";
-		reg = <0x13800000 0x100>;
-		interrupts = <0 52 0>;
-	};
-
-	serial@13810000 {
-		compatible = "samsung,exynos4210-uart";
-		reg = <0x13810000 0x100>;
-		interrupts = <0 53 0>;
-	};
-
-	serial@13820000 {
-		compatible = "samsung,exynos4210-uart";
-		reg = <0x13820000 0x100>;
-		interrupts = <0 54 0>;
-	};
-
-	serial@13830000 {
-		compatible = "samsung,exynos4210-uart";
-		reg = <0x13830000 0x100>;
-		interrupts = <0 55 0>;
-	};
-
-	i2c@13860000 {
-		compatible = "samsung,s3c2440-i2c";
-		reg = <0x13860000 0x100>;
-		interrupts = <0 58 0>;
-	};
-
-	i2c@13870000 {
-		compatible = "samsung,s3c2440-i2c";
-		reg = <0x13870000 0x100>;
-		interrupts = <0 59 0>;
-	};
-
-	i2c@13880000 {
-		compatible = "samsung,s3c2440-i2c";
-		reg = <0x13880000 0x100>;
-		interrupts = <0 60 0>;
-	};
-
-	i2c@13890000 {
-		compatible = "samsung,s3c2440-i2c";
-		reg = <0x13890000 0x100>;
-		interrupts = <0 61 0>;
-	};
-
-	i2c@138A0000 {
-		compatible = "samsung,s3c2440-i2c";
-		reg = <0x138A0000 0x100>;
-		interrupts = <0 62 0>;
-	};
-
-	i2c@138B0000 {
-		compatible = "samsung,s3c2440-i2c";
-		reg = <0x138B0000 0x100>;
-		interrupts = <0 63 0>;
-	};
-
-	i2c@138C0000 {
-		compatible = "samsung,s3c2440-i2c";
-		reg = <0x138C0000 0x100>;
-		interrupts = <0 64 0>;
-	};
-
-	i2c@138D0000 {
-		compatible = "samsung,s3c2440-i2c";
-		reg = <0x138D0000 0x100>;
-		interrupts = <0 65 0>;
-	};
-
-	spi_0: spi@13920000 {
-		compatible = "samsung,exynos4210-spi";
-		reg = <0x13920000 0x100>;
-		interrupts = <0 66 0>;
-		tx-dma-channel = <&pdma0 7>; /* preliminary */
-		rx-dma-channel = <&pdma0 6>; /* preliminary */
-		#address-cells = <1>;
-		#size-cells = <0>;
-	};
-
-	spi_1: spi@13930000 {
-		compatible = "samsung,exynos4210-spi";
-		reg = <0x13930000 0x100>;
-		interrupts = <0 67 0>;
-		tx-dma-channel = <&pdma1 7>; /* preliminary */
-		rx-dma-channel = <&pdma1 6>; /* preliminary */
-		#address-cells = <1>;
-		#size-cells = <0>;
-	};
-
-	spi_2: spi@13940000 {
-		compatible = "samsung,exynos4210-spi";
-		reg = <0x13940000 0x100>;
-		interrupts = <0 68 0>;
-		tx-dma-channel = <&pdma0 9>; /* preliminary */
-		rx-dma-channel = <&pdma0 8>; /* preliminary */
-		#address-cells = <1>;
-		#size-cells = <0>;
-	};
-
-	amba {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "arm,amba-bus";
-		interrupt-parent = <&gic>;
-		ranges;
-
-		pdma0: pdma@12680000 {
-			compatible = "arm,pl330", "arm,primecell";
-			reg = <0x12680000 0x1000>;
-			interrupts = <0 35 0>;
-		};
-
-		pdma1: pdma@12690000 {
-			compatible = "arm,pl330", "arm,primecell";
-			reg = <0x12690000 0x1000>;
-			interrupts = <0 36 0>;
-		};
 	};
 
 	gpio-controllers {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		gpio-controller;
-		ranges;
-
-		gpa0: gpio-controller@11400000 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11400000 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpa1: gpio-controller@11400020 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11400020 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpb: gpio-controller@11400040 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11400040 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpc0: gpio-controller@11400060 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11400060 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpc1: gpio-controller@11400080 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11400080 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpd0: gpio-controller@114000A0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x114000A0 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpd1: gpio-controller@114000C0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x114000C0 0x20>;
-			#gpio-cells = <4>;
-		};
-
 		gpe0: gpio-controller@114000E0 {
 			compatible = "samsung,exynos4-gpio";
 			reg = <0x114000E0 0x20>;
@@ -292,30 +59,6 @@ 
 			#gpio-cells = <4>;
 		};
 
-		gpf0: gpio-controller@11400180 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11400180 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpf1: gpio-controller@114001A0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x114001A0 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpf2: gpio-controller@114001C0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x114001C0 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpf3: gpio-controller@114001E0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x114001E0 0x20>;
-			#gpio-cells = <4>;
-		};
-
 		gpj0: gpio-controller@11000000 {
 			compatible = "samsung,exynos4-gpio";
 			reg = <0x11000000 0x20>;
@@ -327,119 +70,6 @@ 
 			reg = <0x11000020 0x20>;
 			#gpio-cells = <4>;
 		};
-
-		gpk0: gpio-controller@11000040 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000040 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpk1: gpio-controller@11000060 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000060 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpk2: gpio-controller@11000080 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000080 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpk3: gpio-controller@110000A0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x110000A0 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpl0: gpio-controller@110000C0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x110000C0 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpl1: gpio-controller@110000E0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x110000E0 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpl2: gpio-controller@11000100 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000100 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpy0: gpio-controller@11000120 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000120 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpy1: gpio-controller@11000140 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000140 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpy2: gpio-controller@11000160 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000160 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpy3: gpio-controller@11000180 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000180 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpy4: gpio-controller@110001A0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x110001A0 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpy5: gpio-controller@110001C0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x110001C0 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpy6: gpio-controller@110001E0 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x110001E0 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpx0: gpio-controller@11000C00 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000C00 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpx1: gpio-controller@11000C20 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000C20 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpx2: gpio-controller@11000C40 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000C40 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpx3: gpio-controller@11000C60 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x11000C60 0x20>;
-			#gpio-cells = <4>;
-		};
-
-		gpz: gpio-controller@03860000 {
-			compatible = "samsung,exynos4-gpio";
-			reg = <0x03860000 0x20>;
-			#gpio-cells = <4>;
-		};
 	};
 };
+
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
new file mode 100644
index 0000000..85ee3f8
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -0,0 +1,104 @@ 
+/*
+ * Samsung's Exynos4412 SoC device tree source
+ *
+ * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com
+ * Copyright (c) 2010-2011 Linaro Ltd.
+ *		www.linaro.org
+ *
+ * Samsung's Exynos4210 SoC device nodes are listed in this file. Exynos4210
+ * based board files can include this file and provide values for board specfic
+ * bindings.
+ *
+ * Note: This file does not include device nodes for all the controllers in
+ * Exynos4210 SoC. As device tree coverage for Exynos4210 increases, additional
+ * nodes can be added to this file.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/include/ "exynos4.dtsi"
+
+/ {
+	compatible = "samsung,exynos4412";
+
+	gic:interrupt-controller@10490000 {
+		cpu-offset = <0x4000>;
+	};
+
+	gpio-controllers {
+		gpj0: gpio-controller@11400240 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11400240 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpj1: gpio-controller@11400260 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11400260 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpm0: gpio-controller@11000260 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000260 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpm1: gpio-controller@11000280 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x11000280 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpm2: gpio-controller@110002A0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x110002A0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpm3: gpio-controller@110002C0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x110002C0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpm4: gpio-controller@110002E0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x110002E0 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpv0: gpio-controller@106E0000 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x106E0000 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpv1: gpio-controller@106E0020 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x106E0020 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpv2: gpio-controller@106E0060 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x106E0060 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpv3: gpio-controller@106E0080 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x106E0080 0x20>;
+			#gpio-cells = <4>;
+		};
+
+		gpv4: gpio-controller@106E00C0 {
+			compatible = "samsung,exynos4-gpio";
+			reg = <0x106E00C0 0x20>;
+			#gpio-cells = <4>;
+		};
+	};
+};