ARM: dts: Exynos4 dts reorganization
cover ARM: dts: Exynos4 dts reorganization
This patch series prepares existing Exynos4210 DT infrastructure to be further extended for new SoCs from Exynos4 line and new boards.
Tomasz Figa (3):
ARM: dts: Move parts common to Exynos4 from Exynos4210.dtsi to
Exynos4.dtsi
ARM: EXYNOS: exynos4-dt: Use exynos4 prefix instead of exynos4210
ARM: dts: exynos4: Assume status of all optional nodes as disabled
arch/arm/boot/dts/exynos4.dtsi | 232 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/exynos4210-origen.dts | 58 +------- arch/arm/boot/dts/exynos4210-smdkv310.dts | 52 +------ arch/arm/boot/dts/exynos4210.dtsi | 181 +---------------------- arch/arm/mach-exynos/mach-exynos4-dt.c | 18 +-- 5 files changed, 248 insertions(+), 293 deletions(-) create mode 100644 arch/arm/boot/dts/exynos4.dtsi
Signature · 1 line
1.7.12
PATCH 1/3 ARM: dts: Move parts common to Exynos4 from Exynos4210.dtsi to Exynos4.dtsi
Most definitions from Exynos4210.dtsi can be applied for other SoCs from Exynos4 line as well, so move the common part into separate file that can be included by dtsi files of other Exynos4 SoCs (as well as current Exynos4210.dtsi).
--- arch/arm/boot/dts/exynos4.dtsi | 210 ++++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/exynos4210.dtsi | 181 +------------------------------- 2 files changed, 211 insertions(+), 180 deletions(-) create mode 100644 arch/arm/boot/dts/exynos4.dtsi
arch/arm/boot/dts/exynos4.dtsi new file +210 -0
@@ -0,0 +1,210 @@ +/* + * Samsung's Exynos4 SoC series common 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 Exynos4 SoC series device nodes are listed in this file. Particular + * SoCs from Exynos4 series can include this file and provide values for SoCs + * specfic bindings. + * + * Note: This file does not include device nodes for all the controllers in + * Exynos4 SoCs. As device tree coverage for Exynos4 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" + +/ { + interrupt-parent = <&gic>; + + aliases { + spi0 = &spi_0; + spi1 = &spi_1; + spi2 = &spi_2; + }; + + gic:interrupt-controller at 10490000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <3>; + interrupt-controller; + reg = <0x10490000 0x1000>, <0x10480000 0x100>; + }; + + combiner:interrupt-controller at 10440000 { + compatible = "samsung,exynos4210-combiner"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0x10440000 0x1000>; + }; + + watchdog at 10060000 { + compatible = "samsung,s3c2410-wdt"; + reg = <0x10060000 0x100>; + interrupts = <0 43 0>; + }; + + rtc at 10070000 { + compatible = "samsung,s3c6410-rtc"; + reg = <0x10070000 0x100>; + interrupts = <0 44 0>, <0 45 0>; + }; + + keypad at 100A0000 { + compatible = "samsung,s5pv210-keypad"; + reg = <0x100A0000 0x100>; + interrupts = <0 109 0>; + }; + + sdhci at 12510000 { + compatible = "samsung,exynos4210-sdhci"; + reg = <0x12510000 0x100>; + interrupts = <0 73 0>; + }; + + sdhci at 12520000 { + compatible = "samsung,exynos4210-sdhci"; + reg = <0x12520000 0x100>; + interrupts = <0 74 0>; + }; + + sdhci at 12530000 { + compatible = "samsung,exynos4210-sdhci"; + reg = <0x12530000 0x100>; + interrupts = <0 75 0>; + }; + + sdhci at 12540000 { + compatible = "samsung,exynos4210-sdhci"; + reg = <0x12540000 0x100>; + interrupts = <0 76 0>; + }; + + serial at 13800000 { + compatible = "samsung,exynos4210-uart"; + reg = <0x13800000 0x100>; + interrupts = <0 52 0>; + }; + + serial at 13810000 { + compatible = "samsung,exynos4210-uart"; + reg = <0x13810000 0x100>; + interrupts = <0 53 0>; + }; + + serial at 13820000 { + compatible = "samsung,exynos4210-uart"; + reg = <0x13820000 0x100>; + interrupts = <0 54 0>; + }; + + serial at 13830000 { + compatible = "samsung,exynos4210-uart"; + reg = <0x13830000 0x100>; + interrupts = <0 55 0>; + }; + + i2c at 13860000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x13860000 0x100>; + interrupts = <0 58 0>; + }; + + i2c at 13870000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x13870000 0x100>; + interrupts = <0 59 0>; + }; + + i2c at 13880000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x13880000 0x100>; + interrupts = <0 60 0>; + }; + + i2c at 13890000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x13890000 0x100>; + interrupts = <0 61 0>; + }; + + i2c at 138A0000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x138A0000 0x100>; + interrupts = <0 62 0>; + }; + + i2c at 138B0000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x138B0000 0x100>; + interrupts = <0 63 0>; + }; + + i2c at 138C0000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x138C0000 0x100>; + interrupts = <0 64 0>; + }; + + i2c at 138D0000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x138D0000 0x100>; + interrupts = <0 65 0>; + }; + + spi_0: spi at 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 at 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 at 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 at 12680000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x12680000 0x1000>; + interrupts = <0 35 0>; + }; + + pdma1: pdma at 12690000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x12690000 0x1000>; + interrupts = <0 36 0>; + }; + }; +};
arch/arm/boot/dts/exynos4210.dtsi +1 -180
202 lines not on this page · raw message
Signature · 1 line
1.7.12
PATCH 2/3 ARM: EXYNOS: exynos4-dt: Use exynos4 prefix instead of exynos4210
In reply to Tomasz FigaSince mach-exynos4-dt.c is also going to be used for other SoCs from Exynos4 line, rename internal structures and functions to use exynos4_ prefix, instead of exynos4210_.
--- arch/arm/mach-exynos/mach-exynos4-dt.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
arch/arm/mach-exynos/mach-exynos4-dt.c +9 -9
@@ -1,5 +1,5 @@/* -* Samsung's Exynos4210 flattened device tree enabled machine +* Samsung's Exynos4 flattened device tree enabled machine * * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. * http://www.samsung.com
@@ -36,7 +36,7 @@* at some point, the drivers should be capable of parsing all the platform * data from the device tree. */ -static const struct of_dev_auxdata exynos4210_auxdata_lookup[]__initconst = { +static const struct of_dev_auxdata exynos4_auxdata_lookup[]__initconst = {OF_DEV_AUXDATA ("samsung,exynos4210-uart" ,EXYNOS4_PA_UART0 ,"exynos4210-uart.0" ,NULL ), OF_DEV_AUXDATA("samsung,exynos4210-uart", EXYNOS4_PA_UART1,
@@ -66,19 +66,19 @@ static const struct of_dev_auxdata exynos4210_auxdata_lookup[] __initconst = { {}, }; -static void __init exynos4210_dt_map_io (void ) +static void __init exynos4_dt_map_io (void ) {exynos_init_io (NULL ,0 );s3c24xx_init_clocks (24000000 ); } -static void __init exynos4210_dt_machine_init (void ) +static void __init exynos4_dt_machine_init (void ) {of_platform_populate (NULL , of_default_bus_match_table, - exynos4210_auxdata_lookup,NULL ); + exynos4_auxdata_lookup,NULL ); } -static char const *exynos4210_dt_compat[]__initdata = { +static char const *exynos4_dt_compat[]__initdata = {"samsung,exynos4210" ,NULL };
@@ -86,11 +86,11 @@ static char const *exynos4210_dt_compat[] __initdata = {DT_MACHINE_START (EXYNOS4210_DT ,"Samsung Exynos4 (Flattened Device Tree)" )/* Maintainer: Thomas Abraham <[email protected]> */ .init_irq = exynos4_init_irq, - .map_io = exynos4210_dt_map_io, + .map_io = exynos4_dt_map_io, .handle_irq = gic_handle_irq, - .init_machine = exynos4210_dt_machine_init, + .init_machine = exynos4_dt_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer, - .dt_compat = exynos4210_dt_compat, + .dt_compat = exynos4_dt_compat, .restart = exynos4_restart,MACHINE_END
Signature · 1 line
1.7.12
PATCH 3/3 ARM: dts: exynos4: Assume status of all optional nodes as disabled
In reply to Tomasz FigaCurrently all boards must explicitly disable all unused device tree nodes of unused components (e.g. i2c, sdhci, etc...). This makes it necessary to all boards to be aware of all components on the SoC, which in turns makes board dts files longer and more difficult to maintain (e.g. adding new components to SoC-level tree requires adding nodes with status="disabled" to every board).
This patch changes "status" of all optional components in SoC-level dts file to "disabled", adds status="okay" to respective nodes of used components in dts of all boards and removes all nodes with only status="disabled" from boards dts.
--- arch/arm/boot/dts/exynos4.dtsi | 22 ++++++++++++ arch/arm/boot/dts/exynos4210-origen.dts | 58 ++----------------------------- arch/arm/boot/dts/exynos4210-smdkv310.dts | 52 +++------------------------ 3 files changed, 28 insertions(+), 104 deletions(-)
arch/arm/boot/dts/exynos4.dtsi +22 -0
@@ -48,114 +48,133 @@ compatible = "samsung,s3c2410-wdt"; reg = <0x10060000 0x100>; interrupts = <0 43 0>; + status = "disabled"; }; rtc at 10070000 { compatible = "samsung,s3c6410-rtc"; reg = <0x10070000 0x100>; interrupts = <0 44 0>, <0 45 0>; + status = "disabled"; }; keypad at 100A0000 { compatible = "samsung,s5pv210-keypad"; reg = <0x100A0000 0x100>; interrupts = <0 109 0>; + status = "disabled"; }; sdhci at 12510000 { compatible = "samsung,exynos4210-sdhci"; reg = <0x12510000 0x100>; interrupts = <0 73 0>; + status = "disabled"; }; sdhci at 12520000 { compatible = "samsung,exynos4210-sdhci"; reg = <0x12520000 0x100>; interrupts = <0 74 0>; + status = "disabled"; }; sdhci at 12530000 { compatible = "samsung,exynos4210-sdhci"; reg = <0x12530000 0x100>; interrupts = <0 75 0>; + status = "disabled"; }; sdhci at 12540000 { compatible = "samsung,exynos4210-sdhci"; reg = <0x12540000 0x100>; interrupts = <0 76 0>; + status = "disabled"; }; serial at 13800000 { compatible = "samsung,exynos4210-uart"; reg = <0x13800000 0x100>; interrupts = <0 52 0>; + status = "disabled"; }; serial at 13810000 { compatible = "samsung,exynos4210-uart"; reg = <0x13810000 0x100>; interrupts = <0 53 0>; + status = "disabled"; }; serial at 13820000 { compatible = "samsung,exynos4210-uart"; reg = <0x13820000 0x100>; interrupts = <0 54 0>; + status = "disabled"; }; serial at 13830000 { compatible = "samsung,exynos4210-uart"; reg = <0x13830000 0x100>; interrupts = <0 55 0>; + status = "disabled"; }; i2c at 13860000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13860000 0x100>; interrupts = <0 58 0>; + status = "disabled"; }; i2c at 13870000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13870000 0x100>; interrupts = <0 59 0>; + status = "disabled"; }; i2c at 13880000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13880000 0x100>; interrupts = <0 60 0>; + status = "disabled"; }; i2c at 13890000 { compatible = "samsung,s3c2440-i2c"; reg = <0x13890000 0x100>; interrupts = <0 61 0>; + status = "disabled"; }; i2c at 138A0000 { compatible = "samsung,s3c2440-i2c"; reg = <0x138A0000 0x100>; interrupts = <0 62 0>; + status = "disabled"; }; i2c at 138B0000 { compatible = "samsung,s3c2440-i2c"; reg = <0x138B0000 0x100>; interrupts = <0 63 0>; + status = "disabled"; }; i2c at 138C0000 { compatible = "samsung,s3c2440-i2c"; reg = <0x138C0000 0x100>; interrupts = <0 64 0>; + status = "disabled"; }; i2c at 138D0000 { compatible = "samsung,s3c2440-i2c"; reg = <0x138D0000 0x100>; interrupts = <0 65 0>; + status = "disabled"; }; spi_0: spi at 13920000 {
@@ -166,6 +185,7 @@ rx-dma-channel = <&pdma0 6>; /* preliminary */ #address-cells = <1>; #size-cells = <0>; + status = "disabled"; }; spi_1: spi at 13930000 {
@@ -176,6 +196,7 @@ rx-dma-channel = <&pdma1 6>; /* preliminary */ #address-cells = <1>; #size-cells = <0>; + status = "disabled"; }; spi_2: spi at 13940000 {
@@ -186,6 +207,7 @@ rx-dma-channel = <&pdma0 8>; /* preliminary */ #address-cells = <1>; #size-cells = <0>; + status = "disabled"; }; amba {
arch/arm/boot/dts/exynos4210-origen.dts +2 -56
74 lines not on this page · raw message
arch/arm/boot/dts/exynos4210-smdkv310.dts +4 -48
80 lines not on this page · raw message
Signature · 1 line
1.7.12
PATCH 1/1 ARM: dts: exynos4: Enable serial controllers on Origen and SMDKV310
This patch adds status override of serial nodes to enable used serial ports on Origen and SMDKV310 board.
--- arch/arm/boot/dts/exynos4210-origen.dts | 16 ++++++++++++++++ arch/arm/boot/dts/exynos4210-smdkv310.dts | 16 ++++++++++++++++ 2 files changed, 32 insertions(+)
arch/arm/boot/dts/exynos4210-origen.dts +16 -0
@@ -57,6 +57,22 @@ status = "okay"; }; + serial at 13800000 { + status = "okay"; + }; + + serial at 13810000 { + status = "okay"; + }; + + serial at 13820000 { + status = "okay"; + }; + + serial at 13830000 { + status = "okay"; + }; + gpio_keys { compatible = "gpio-keys"; #address-cells = <1>;
arch/arm/boot/dts/exynos4210-smdkv310.dts +16 -0
@@ -43,6 +43,22 @@ status = "okay"; }; + serial at 13800000 { + status = "okay"; + }; + + serial at 13810000 { + status = "okay"; + }; + + serial at 13820000 { + status = "okay"; + }; + + serial at 13830000 { + status = "okay"; + }; + keypad at 100A0000 { samsung,keypad-num-rows = <2>; samsung,keypad-num-columns = <8>;
Signature · 1 line
1.7.12
PATCH 1/1 ARM: dts: exynos4: Enable serial controllers on Origen and SMDKV310
Quoted 5 lines · Tomasz Figa
This patch adds status override of serial nodes to enable used serial ports
on Origen and SMDKV310 board.
Well...I'm not sure about the status of Origen serial, but all of the serials are enabled on SMDKV310, is it right?
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
PATCH 1/1 ARM: dts: exynos4: Enable serial controllers on Origen and SMDKV310
Hi Kgene,
Quoted 7 lines · On Saturday 08 of September 2012 11:36:30 Kukjin Kim wrote:
Quoted 3 lines · Tomasz Figa
This patch adds status override of serial nodes to enable used serial ports
on Origen and SMDKV310 board.Well...I'm not sure about the status of Origen serial, but all of the serials are enabled on SMDKV310, is it right?
According to arrays of struct s3c2410_uartcfg in mach-origen.c and mach- smdkv310.c, all the four serial ports are enabled on both boards.
--
Best regards,
Tomasz Figa
cover ARM: dts: Exynos4 dts reorganization
In reply to Tomasz FigaQuoted 9 lines · Tomasz Figa
This patch series prepares existing Exynos4210 DT infrastructure to be further extended for new SoCs from Exynos4 line and new boards.
Tomasz Figa (3):
ARM: dts: Move parts common to Exynos4 fromExynos4210.dtsito
Exynos4.dtsi
ARM: EXYNOS: exynos4-dt: Use exynos4 prefix instead of exynos4210
ARM: dts: exynos4: Assume status of all optional nodes as disabled
Quoted 8 lines
arch/arm/boot/dts/exynos4.dtsi | 232 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/exynos4210-origen.dts | 58 +------- arch/arm/boot/dts/exynos4210-smdkv310.dts | 52 +------ arch/arm/boot/dts/exynos4210.dtsi | 181 +---------------------- arch/arm/mach-exynos/mach-exynos4-dt.c | 18 +-- 5 files changed, 248 insertions(+), 293 deletions(-) create mode 100644 arch/arm/boot/dts/exynos4.dtsi
Thanks, we can build Exynos4412 device tree support on top of this series.
cover ARM: dts: Exynos4 dts reorganization
Quoted 21 lines · Thomas Abraham
Quoted 10 lines · Tomasz Figa
This patch series prepares existing Exynos4210 DT infrastructure to be further extended for new SoCs from Exynos4 line and new boards.
Tomasz Figa (3):
ARM: dts: Move parts common to Exynos4 fromExynos4210.dtsito
Exynos4.dtsi
ARM: EXYNOS: exynos4-dt: Use exynos4 prefix instead of exynos4210
ARM: dts: exynos4: Assume status of all optional nodes as disabledarch/arm/boot/dts/exynos4.dtsi | 232++++++++++++++++++++++++++++++
Quoted 7 lines
arch/arm/boot/dts/exynos4210-origen.dts | 58 +------- arch/arm/boot/dts/exynos4210-smdkv310.dts | 52 +------ arch/arm/boot/dts/exynos4210.dtsi | 181 +---------------------- arch/arm/mach-exynos/mach-exynos4-dt.c | 18 +-- 5 files changed, 248 insertions(+), 293 deletions(-) create mode 100644 arch/arm/boot/dts/exynos4.dtsi
Quoted 3 lines
Thanks, we can build Exynos4412 device tree support on top of this series.
Acked-by Thomas Abraham <[email protected]>
Thomas, thanks for your ack on this series and I'm OK on this series.
But you know, Donjin Kim submitted almost same patch except gpio stuff one month before this series but needs to update something though. So would be nice if either Tomasz or Dongjin could ack on the other patch?
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
cover ARM: dts: Exynos4 dts reorganization
In reply to Thomas AbrahamQuoted 13 lines · Kukjin Kim
Quoted 11 lines · Thomas Abraham
Quoted 9 lines · Tomasz Figa
This patch series prepares existing Exynos4210 DT infrastructure to be further extended for new SoCs from Exynos4 line and new boards.
Tomasz Figa (3):
ARM: dts: Move parts common to Exynos4 fromExynos4210.dtsito
Exynos4.dtsi
ARM: EXYNOS: exynos4-dt: Use exynos4 prefix instead of exynos4210
ARM: dts: exynos4: Assume status of all optional nodes as disabled
Quoted 5 lines
Quoted 5 lines
Quoted 1 line
arch/arm/boot/dts/exynos4.dtsi | 232++++++++++++++++++++++++++++++
Quoted 3 lines
arch/arm/boot/dts/exynos4210-origen.dts | 58 +------- arch/arm/boot/dts/exynos4210-smdkv310.dts | 52 +------ arch/arm/boot/dts/exynos4210.dtsi | 181
+---------------------- > > > arch/arm/mach-exynos/mach-exynos4-dt.c | 18 +-- > > > 5 files changed, 248 insertions(+), 293 deletions(-) > > > create mode 100644 arch/arm/boot/dts/exynos4.dtsi
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
Thanks, we can build Exynos4412 device tree support on top of this
series.
Quoted 1 line
Quoted 8 lines
Quoted 1 line
Acked-by Thomas Abraham <[email protected]>Thomas, thanks for your ack on this series and I'm OK on this series.
But you know, Donjin Kim submitted almost same patch except gpio stuff one month before this series but needs to update something though. So would be nice if either Tomasz or Dongjin could ack on the other patch?
Hmm...OK, I couldn't get any response from anyone so I will pick up this patches. If any objection, please let me know.
Of course, if any regarding patches, need to work against on them.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.