ARM: Samsung: Add basic device tree support for Exynos4 boards
cover ARM: Samsung: Add basic device tree support for Exynos4 boards
This patchset adds a new basic device tree enabled machine/board file which is based on the Samsung's Exynos4 family of SoC's. Also included in this patchset is the dts file for Exynos4210 SoC, Samsung's SMDKV310 board and Insignal's Origen board.
The Exynos4210 dts file includes support for IRQ, GPIO, WDT, RTC, UART, SDHCI, Keypad, DMA and I2C controllers. As device tree coverage for Exynos4210 increases, additional device nodes to represent the controllers should be added.
The device tree enabled machine file enables boot on two boards based on the Exynos4210 SoC. This provides a starting point to add additional device tree support on these boards, migrate other existing Exynos4 based boards to use device tree and enable device tree based boot on new upcoming boards.
This patchset has been tested on the following tree:
https://github.com/kgene/linux-samsung.git branch: for-next
Thomas Abraham (2):
ARM: Samsung: Add Exynos4 device tree enabled board file
ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board
.../devicetree/bindings/arm/insignal-boards.txt | 8 + .../devicetree/bindings/arm/samsung-boards.txt | 8 + arch/arm/boot/dts/exynos4210-origen.dts | 137 +++++++ arch/arm/boot/dts/exynos4210-smdkv310.dts | 182 +++++++++ arch/arm/boot/dts/exynos4210.dtsi | 403 ++++++++++++++++++++ arch/arm/mach-exynos4/Kconfig | 14 + arch/arm/mach-exynos4/Makefile | 2 + arch/arm/mach-exynos4/mach-exynos4-dt.c | 85 ++++ 8 files changed, 839 insertions(+), 0 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/insignal-boards.txt create mode 100644 Documentation/devicetree/bindings/arm/samsung-boards.txt create mode 100644 arch/arm/boot/dts/exynos4210-origen.dts create mode 100644 arch/arm/boot/dts/exynos4210-smdkv310.dts create mode 100644 arch/arm/boot/dts/exynos4210.dtsi create mode 100644 arch/arm/mach-exynos4/mach-exynos4-dt.c
PATCH 1/2 ARM: Samsung: Add Exynos4 device tree enabled board file
Add a new Exynos4 compatible device tree enabled board file. Boards based on the Exynos4 family of SoC's can use this as the machine/board file. When using this machine fike, a corresponding device tree blob which describes the board's properties should be supplied at boot time to the kernel.
--- .../devicetree/bindings/arm/insignal-boards.txt | 8 ++ .../devicetree/bindings/arm/samsung-boards.txt | 8 ++ arch/arm/mach-exynos4/Kconfig | 14 +++ arch/arm/mach-exynos4/Makefile | 2 + arch/arm/mach-exynos4/mach-exynos4-dt.c | 85 ++++++++++++++++++++ 5 files changed, 117 insertions(+), 0 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/insignal-boards.txt create mode 100644 Documentation/devicetree/bindings/arm/samsung-boards.txt create mode 100644 arch/arm/mach-exynos4/mach-exynos4-dt.c
Documentation/devicetree/bindings/arm/insignal-boards.txt new file +8 -0
@@ -0,0 +1,8 @@ +* Insignal's Exynos4210 based Origen evaluation board + +Origen low-cost evaluation board is based on Samsung's Exynos4210 SoC. + +Required root node properties: + - compatible = should be one or more of the following. + (a) "samsung,smdkv310" - for Samsung's SMDKV310 eval board. + (b) "samsung,exynos4210" - for boards based on Exynos4210 SoC.
Documentation/devicetree/bindings/arm/samsung-boards.txt new file +8 -0
@@ -0,0 +1,8 @@ +* Samsung's Exynos4210 based SMDKV310 evaluation board + +SMDKV310 evaluation board is based on Samsung's Exynos4210 SoC. + +Required root node properties: + - compatible = should be one or more of the following. + (a) "samsung,smdkv310" - for Samsung's SMDKV310 eval board. + (b) "samsung,exynos4210" - for boards based on Exynos4210 SoC.
arch/arm/mach-exynos4/Kconfig +14 -0
@@ -304,6 +304,20 @@ config MACH_SMDK4412 help Machine support for Samsung SMDK4412 +comment "Flattened Device Tree based board for Exynos4 based SoC" + +config MACH_EXYNOS4_DT + bool "Samsung Exynos4 Machine using device tree" + select CPU_EXYNOS4210 + select USE_OF + select ARM_AMBA + select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD + help + Machine support for Samsung Exynos4 machine with device tree enabled. + Select this if a fdt blob is available for the Exynos4 SoC based board. + Note: This is under development and not all peripherals can be supported + with this machine file. + endmenu comment "Configuration for HSMMC bus width"
arch/arm/mach-exynos4/Makefile +2 -0
@@ -37,6 +37,8 @@ obj-$(CONFIG_MACH_ORIGEN) += mach-origen.o obj-$(CONFIG_MACH_SMDK4212) += mach-smdk4x12.o obj-$(CONFIG_MACH_SMDK4412) += mach-smdk4x12.o +obj-$(CONFIG_MACH_EXYNOS4_DT) += mach-exynos4-dt.o + # device support obj-y += dev-audio.o
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +85 -0
85 lines not on this page · raw message
Signature · 1 line
1.6.6.rc2
PATCH 1/2 ARM: Samsung: Add Exynos4 device tree enabled board file
Quoted 6 lines · Thomas Abraham
Add a new Exynos4 compatible device tree enabled board file. Boards based on the Exynos4 family of SoC's can use this as the machine/board file. When using this machine fike, a corresponding device tree blob which describes the board's properties should be supplied at boot time to the kernel.
Signed-off-by Thomas Abraham <[email protected]>
Quoted 171 lines
--- .../devicetree/bindings/arm/insignal-boards.txt | 8 ++ .../devicetree/bindings/arm/samsung-boards.txt | 8 ++ arch/arm/mach-exynos4/Kconfig | 14 +++ arch/arm/mach-exynos4/Makefile | 2 + arch/arm/mach-exynos4/mach-exynos4-dt.c | 85 ++++++++++++++++++++ 5 files changed, 117 insertions(+), 0 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/insignal-boards.txt create mode 100644 Documentation/devicetree/bindings/arm/samsung-boards.txt create mode 100644 arch/arm/mach-exynos4/mach-exynos4-dt.cDocumentation/devicetree/bindings/arm/insignal-boards.txt new file +8
-0@@ -0,0 +1,8 @@ +* Insignal's Exynos4210 based Origen evaluation board + +Origen low-cost evaluation board is based on Samsung's Exynos4210 SoC. + +Required root node properties: + - compatible = should be one or more of the following. + (a) "samsung,smdkv310" - for Samsung's SMDKV310 eval board. + (b) "samsung,exynos4210" - for boards based on Exynos4210 SoC.Documentation/devicetree/bindings/arm/samsung-boards.txt new file +8
-0@@ -0,0 +1,8 @@ +* Samsung's Exynos4210 based SMDKV310 evaluation board + +SMDKV310 evaluation board is based on Samsung's Exynos4210 SoC. + +Required root node properties: + - compatible = should be one or more of the following. + (a) "samsung,smdkv310" - for Samsung's SMDKV310 eval board. + (b) "samsung,exynos4210" - for boards based on Exynos4210 SoC.arch/arm/mach-exynos4/Kconfig +14
-0@@ -304,6 +304,20 @@ config MACH_SMDK4412 help Machine support for Samsung SMDK4412 +comment "Flattened Device Tree based board for Exynos4 based SoC" + +config MACH_EXYNOS4_DT + bool "Samsung Exynos4 Machine using device tree" + select CPU_EXYNOS4210 + select USE_OF + select ARM_AMBA + select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD + help + Machine support for Samsung Exynos4 machine with device tree enabled. + Select this if a fdt blob is available for the Exynos4 SoC based board. + Note: This is under development and not all peripherals can be supported + with this machine file. + endmenu comment "Configuration for HSMMC bus width"arch/arm/mach-exynos4/Makefile +2
-0@@ -37,6 +37,8 @@ obj-$(CONFIG_MACH_ORIGEN) += mach-origen.o obj-$(CONFIG_MACH_SMDK4212) += mach-smdk4x12.o obj-$(CONFIG_MACH_SMDK4412) += mach-smdk4x12.o +obj-$(CONFIG_MACH_EXYNOS4_DT) += mach-exynos4-dt.o + # device support obj-y += dev-audio.oarch/arm/mach-exynos4/mach-exynos4-dt.c new file +85
-0@@ -0,0 +1,85 @@ +/* +* Samsung's Exynos4210 flattened device tree enabled machine +* +* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. +* http://www.samsung.com +* Copyright (c) 2010-2011 Linaro Ltd. +* www.linaro.org +* +* 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 <linux/of_platform.h> +#include <linux/serial_core.h> + +#include <asm/mach/arch.h> +#include <mach/map.h> + +#include <plat/cpu.h> +#include <plat/regs-serial.h> +#include <plat/exynos4.h> + +/* +* The following lookup table is used to override device names when devices +* are registered from device tree. This is temporarily added to enable +* device tree support addition for the Exynos4 architecture. +* +* For drivers that require platform data to be provided from the machine +* file, a platform data pointer can also be supplied along with the +* devices names. Usually, the platform data elements that cannot be parsed +* from the device tree by the drivers (example: function pointers) are +* supplied. But it should be noted that this is a temporary mechanism and +* 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 = { +OF_DEV_AUXDATA ("samsung,exynos4210-uart" ,S5P_PA_UART0 , +"exynos4210-uart.0" ,NULL ), +OF_DEV_AUXDATA ("samsung,exynos4210-uart" ,S5P_PA_UART1 , +"exynos4210-uart.1" ,NULL ), +OF_DEV_AUXDATA ("samsung,exynos4210-uart" ,S5P_PA_UART2 , +"exynos4210-uart.2" ,NULL ), +OF_DEV_AUXDATA ("samsung,exynos4210-uart" ,S5P_PA_UART3 , +"exynos4210-uart.3" ,NULL ), +OF_DEV_AUXDATA ("samsung,exynos4210-sdhci" ,EXYNOS4_PA_HSMMC (0 ), +"exynos4-sdhci.0" ,NULL ), +OF_DEV_AUXDATA ("samsung,exynos4210-sdhci" ,EXYNOS4_PA_HSMMC (1 ), +"exynos4-sdhci.1" ,NULL ), +OF_DEV_AUXDATA ("samsung,exynos4210-sdhci" ,EXYNOS4_PA_HSMMC (2 ), +"exynos4-sdhci.2" ,NULL ), +OF_DEV_AUXDATA ("samsung,exynos4210-sdhci" ,EXYNOS4_PA_HSMMC (3 ), +"exynos4-sdhci.3" ,NULL ), +OF_DEV_AUXDATA ("samsung,s3c2440-i2c" ,EXYNOS4_PA_IIC (0 ), +"s3c2440-i2c.0" ,NULL ), +OF_DEV_AUXDATA ("arm,pl330" ,EXYNOS4_PA_PDMA0 ,"dma-pl330.0" ,NULL ), +OF_DEV_AUXDATA ("arm,pl330" ,EXYNOS4_PA_PDMA1 ,"dma-pl330.1" ,NULL ), + {}, +}; + +static void __init exynos4210_dt_map_io (void ) +{ +s5p_init_io (NULL ,0 ,S5P_VA_CHIPID ); +s3c24xx_init_clocks (24000000 ); +} + +static void __init exynos4210_dt_machine_init (void ) +{ +of_platform_populate (NULL , of_default_bus_match_table, + exynos4210_auxdata_lookup,NULL ); +} + +static char const *exynos4210_dt_compat[]__initdata = { +"samsung,exynos4210" , +NULL +}; + +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, + .init_machine = exynos4210_dt_machine_init, + .timer = &exynos4_timer, + .dt_compat = exynos4210_dt_compat, +MACHINE_END Signature · 1 line
1.6.6.rc2
PATCH 1/2 ARM: Samsung: Add Exynos4 device tree enabled board file
Quoted 3 lines · Grant Likely
Quoted 1 line · Thomas Abraham
Add a new Exynos4 compatible device tree enabled board file. Boards
based on
Quoted 1 line
Quoted 1 line
the Exynos4 family of SoC's can use this as the machine/board file. When
using
Quoted 1 line
Quoted 1 line
this machine fike, a corresponding device tree blob which describes the
board's
Quoted 6 lines
Quoted 3 lines
properties should be supplied at boot time to the kernel.
Signed-off-by Thomas Abraham <[email protected]>Acked-by Grant Likely <[email protected]>
Thanks for your ack :)
And there are small comments......
Quoted 31 lines
Quoted 6 lines
--- .../devicetree/bindings/arm/insignal-boards.txt | 8 ++ .../devicetree/bindings/arm/samsung-boards.txt | 8 ++ arch/arm/mach-exynos4/Kconfig | 14 +++ arch/arm/mach-exynos4/Makefile | 2 + arch/arm/mach-exynos4/mach-exynos4-dt.c | 85++++++++++++++++++++
Quoted 2 lines
5 files changed, 117 insertions(+), 0 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/insignal-boards.txt
Quoted 1 line
create mode 100644 Documentation/devicetree/bindings/arm/samsung-boards.txt
Review
Quoted 3 lines
create mode 100644 arch/arm/mach-exynos4/mach-exynos4-dt.c(quoted diff) +0
-0
b/Documentation/devicetree/bindings/arm/insignal-boards.txtReview
Quoted 14 lines
new file mode 100644
index 0000000..524c3dcDocumentation/devicetree/bindings/arm/insignal-boards.txt new file +8
-0@@ -0,0 +1,8 @@ +* Insignal's Exynos4210 based Origen evaluation board + +Origen low-cost evaluation board is based on Samsung's Exynos4210 SoC. + +Required root node properties: + - compatible = should be one or more of the following. + (a) "samsung,smdkv310" - for Samsung's SMDKV310 eval board. + (b) "samsung,exynos4210" - for boards based on Exynos4210 SoC.(quoted diff) +0
-0
b/Documentation/devicetree/bindings/arm/samsung-boards.txt
Quoted 14 lines
Review
Quoted 14 lines
new file mode 100644
index 0000000..0bf68beDocumentation/devicetree/bindings/arm/samsung-boards.txt new file +8
-0@@ -0,0 +1,8 @@ +* Samsung's Exynos4210 based SMDKV310 evaluation board + +SMDKV310 evaluation board is based on Samsung's Exynos4210 SoC. + +Required root node properties: + - compatible = should be one or more of the following. + (a) "samsung,smdkv310" - for Samsung's SMDKV310 eval board. + (b) "samsung,exynos4210" - for boards based on Exynos4210 SoC.(quoted diff) +0
-0
b/arch/arm/mach-exynos4/Kconfig
Quoted 10 lines
arch/arm/mach-exynos4/Kconfig config MACH_SMDK4412 · line 309
Quoted 10 lines
index 0c5888a..39dc135 100644
arch/arm/mach-exynos4/Kconfig +3
-0@@ -304,6 +304,20 @@ config MACH_SMDK4412 help Machine support for Samsung SMDK4412 +comment "Flattened Device Tree based board for Exynos4 based SoC" + +config MACH_EXYNOS4_DT
I'm not sure we can use 'MACH_EXYNOS4_DT' here because there are other EXYNOS4 SoCs such as EXYNOS4212 and EXYNOS4412. So if this cannot support other SoCs' boards, SMDK4212 and SMDK4412, we need to change the name.
And I wonder whether there is no problem with selecting this and other boards.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
Quoted 9 lines
arch/arm/mach-exynos4/Kconfig config MACH_SMDK4412
Quoted 7 lines
arch/arm/mach-exynos4/Kconfig +7
-0+ bool "Samsung Exynos4 Machine using device tree" + select CPU_EXYNOS4210 + select USE_OF + select ARM_AMBA + select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD + help + Machine support for Samsung Exynos4 machine with device treeenabled.
arch/arm/mach-exynos4/Kconfig config MACH_SMDK4412 · line 317
Quoted 1 line
arch/arm/mach-exynos4/Kconfig +1
-0+ Select this if a fdt blob is available for the Exynos4 SoC based
board.
Quoted 8 lines
arch/arm/mach-exynos4/Kconfig config MACH_SMDK4412 · line 318
Quoted 1 line
arch/arm/mach-exynos4/Kconfig +1
-0+ Note: This is under development and not all peripherals can besupported
Review
Quoted 6 lines
arch/arm/mach-exynos4/Kconfig +2
-0+ with this machine file. + endmenu comment "Configuration for HSMMC bus width"(quoted diff) +0
-0
b/arch/arm/mach-exynos4/Makefile
Quoted 37 lines
arch/arm/mach-exynos4/Makefile obj-$(CONFIG_MACH_ORIGEN) += mach-
Quoted 4 lines
index 8066538..4e302cb 100644
arch/arm/mach-exynos4/Makefile +0
-0@@ -37,6 +37,8 @@ obj-$(CONFIG_MACH_ORIGEN) += mach-origen.o
arch/arm/mach-
Quoted 9 lines
arch/arm/mach-exynos4/Makefile +2
-0obj-$(CONFIG_MACH_SMDK4212) += mach-smdk4x12.o obj-$(CONFIG_MACH_SMDK4412) += mach-smdk4x12.o +obj-$(CONFIG_MACH_EXYNOS4_DT) += mach-exynos4-dt.o + # device support obj-y += dev-audio.oarch/arm/mach- renamed from arch/arm/mach-exynos4/mach-exynos4-dt.c +0
-0
exynos4/mach-exynos4-dt.cQuoted 22 lines
new file mode 100644
index 0000000..85fa027arch/arm/mach-exynos4/mach-exynos4-dt.c new file +17
-0@@ -0,0 +1,85 @@ +/* +* Samsung's Exynos4210 flattened device tree enabled machine +* +* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. +* http://www.samsung.com +* Copyright (c) 2010-2011 Linaro Ltd. +* www.linaro.org +* +* 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 <linux/of_platform.h> +#include <linux/serial_core.h> + +#include <asm/mach/arch.h>
Quoted 8 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c
Quoted 8 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +8
-0+#include <mach/map.h> + +#include <plat/cpu.h> +#include <plat/regs-serial.h> +#include <plat/exynos4.h> + +/* +* The following lookup table is used to override device names when
devices
Quoted 4 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c
Quoted 4 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +4
-0+* are registered from device tree. This is temporarily added to enable +* device tree support addition for the Exynos4 architecture. +* +* For drivers that require platform data to be provided from the
machine
Quoted 2 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c line 31
Quoted 2 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +2
-0+* file, a platform data pointer can also be supplied along with the +* devices names. Usually, the platform data elements that cannot be
parsed
Quoted 2 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c line 33
Quoted 2 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +2
-0+* from the device tree by the drivers (example: function pointers) are +* supplied. But it should be noted that this is a temporary mechanism
and
Quoted 1 line
arch/arm/mach-exynos4/mach-exynos4-dt.c line 34
Quoted 1 line
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +1
-0+* at some point, the drivers should be capable of parsing all the
platform
Quoted 3 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c
Quoted 3 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +3
-0+* data from the device tree. +*/ +static const struct of_dev_auxdata exynos4210_auxdata_lookup[]
__initconst =
Quoted 59 lines
{
arch/arm/mach-exynos4/mach-exynos4-dt.c
Quoted 9 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +9
-0+OF_DEV_AUXDATA ("samsung,exynos4210-uart" ,S5P_PA_UART0 , +"exynos4210-uart.0" ,NULL ), +OF_DEV_AUXDATA ("samsung,exynos4210-uart" ,S5P_PA_UART1 , +"exynos4210-uart.1" ,NULL ), +OF_DEV_AUXDATA ("samsung,exynos4210-uart" ,S5P_PA_UART2 , +"exynos4210-uart.2" ,NULL ), +OF_DEV_AUXDATA ("samsung,exynos4210-uart" ,S5P_PA_UART3 , +"exynos4210-uart.3" ,NULL ), + OF_DEV_AUXDATA("samsung,exynos4210-sdhci",
EXYNOS4_PA_HSMMC(0),arch/arm/mach-exynos4/mach-exynos4-dt.c line 48
Quoted 2 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +2
-0+ "exynos4-sdhci.0", NULL), + OF_DEV_AUXDATA("samsung,exynos4210-sdhci",
EXYNOS4_PA_HSMMC(1),arch/arm/mach-exynos4/mach-exynos4-dt.c line 50
Quoted 2 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +2
-0+ "exynos4-sdhci.1", NULL), + OF_DEV_AUXDATA("samsung,exynos4210-sdhci",
EXYNOS4_PA_HSMMC(2),arch/arm/mach-exynos4/mach-exynos4-dt.c line 52
Quoted 2 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +2
-0+ "exynos4-sdhci.2", NULL), + OF_DEV_AUXDATA("samsung,exynos4210-sdhci",
EXYNOS4_PA_HSMMC(3),arch/arm/mach-exynos4/mach-exynos4-dt.c
Quoted 4 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +4
-0+ "exynos4-sdhci.3", NULL), +OF_DEV_AUXDATA ("samsung,s3c2440-i2c" ,EXYNOS4_PA_IIC (0 ), +"s3c2440-i2c.0" ,NULL ), + OF_DEV_AUXDATA("arm,pl330", EXYNOS4_PA_PDMA0, "dma-pl330.0",NULL),
arch/arm/mach-exynos4/mach-exynos4-dt.c line 57
Quoted 1 line
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +1
-0+ OF_DEV_AUXDATA("arm,pl330", EXYNOS4_PA_PDMA1, "dma-pl330.1",NULL),
Quoted 11 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +11
-0+ {}, +}; + +static void __init exynos4210_dt_map_io (void ) +{ +s5p_init_io (NULL ,0 ,S5P_VA_CHIPID ); +s3c24xx_init_clocks (24000000 ); +} + +static void __init exynos4210_dt_machine_init (void ) +{arch/arm/mach-exynos4/mach-exynos4-dt.c
Quoted 10 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +10
-0+of_platform_populate (NULL , of_default_bus_match_table, + exynos4210_auxdata_lookup,NULL ); +} + +static char const *exynos4210_dt_compat[]__initdata = { +"samsung,exynos4210" , +NULL +}; + +DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened DeviceTree)")
Quoted 10 lines
arch/arm/mach-exynos4/mach-exynos4-dt.c new file +7
-1+/* Maintainer: Thomas Abraham <[email protected]> */ + .init_irq = exynos4_init_irq, + .map_io = exynos4210_dt_map_io, + .init_machine = exynos4210_dt_machine_init, + .timer = &exynos4_timer, + .dt_compat = exynos4210_dt_compat, +MACHINE_END --1.6.6.rc2
PATCH 1/2 ARM: Samsung: Add Exynos4 device tree enabled board file
Quoted 17 lines · Kukjin Kim
Quoted 1 line
Review
Quoted 1 line
(quoted diff) +0
-0b/arch/arm/mach-exynos4/Kconfig
Quoted 10 lines
arch/arm/mach-exynos4/Kconfig config MACH_SMDK4412 · line 309
Quoted 10 lines
index 0c5888a..39dc135 100644
arch/arm/mach-exynos4/Kconfig +3
-0@@ -304,6 +304,20 @@ config MACH_SMDK4412 help Machine support for Samsung SMDK4412 +comment "Flattened Device Tree based board for Exynos4 based SoC" + +config MACH_EXYNOS4_DTI'm not sure we can use '
MACH_EXYNOS4_DT' here because there are other EXYNOS4 SoCs such as EXYNOS4212 and EXYNOS4412. So if this cannot support other SoCs' boards, SMDK4212 and SMDK4412, we need to change the name.
Quoted 2 lines
And I wonder whether there is no problem with selecting this and other boards.
I think this should be fine assuming most things are common. Generally, the differences can be handled by different DT's. The board compatible string can be used to handle differences.
Rob
PATCH 2/2 ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board
In reply to Thomas AbrahamAdd initial dts file for Exynos4210 SoC. This dts file describes the SoC specific devices and properties. Along with this, add dts file for Samsung's SMDKV310 board and Insignal's Origen board which uses the Exynos4210 dts file and extends it to describe the board specific properties.
--- arch/arm/boot/dts/exynos4210-origen.dts | 137 ++++++++++ arch/arm/boot/dts/exynos4210-smdkv310.dts | 182 +++++++++++++ arch/arm/boot/dts/exynos4210.dtsi | 403 +++++++++++++++++++++++++++++ 3 files changed, 722 insertions(+), 0 deletions(-) create mode 100644 arch/arm/boot/dts/exynos4210-origen.dts create mode 100644 arch/arm/boot/dts/exynos4210-smdkv310.dts create mode 100644 arch/arm/boot/dts/exynos4210.dtsi
arch/arm/boot/dts/exynos4210-origen.dts new file +137 -0
@@ -0,0 +1,137 @@ +/* + * Samsung's Exynos4210 based Origen board device tree source + * + * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * Copyright (c) 2010-2011 Linaro Ltd. + * www.linaro.org + * + * Device tree source file for Insignal's Origen board which is based on + * Samsung's Exynos4210 SoC. + * + * 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. +*/ + +/dts-v1/; +/include/ "exynos4210.dtsi" + +/ { + model = "Insignal Origen evaluation board based on Exynos4210"; + compatible = "insignal,origen", "samsung,exynos4210"; + + memory { + reg = <0x40000000 0x40000000>; + }; + + chosen { + bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; + }; + + sdhci@12530000 { + samsung,sdhci-bus-width = <4>; + linux,mmc_cap_4_bit_data; + samsung,sdhci-cd-internal; + gpio-cd = <&gpk2 2 2 3 3>; + gpios = <&gpk2 0 2 0 3>, + <&gpk2 1 2 0 3>, + <&gpk2 3 2 3 3>, + <&gpk2 4 2 3 3>, + <&gpk2 5 2 3 3>, + <&gpk2 6 2 3 3>; + }; + + sdhci@12510000 { + samsung,sdhci-bus-width = <4>; + linux,mmc_cap_4_bit_data; + samsung,sdhci-cd-internal; + gpio-cd = <&gpk0 2 2 3 3>; + gpios = <&gpk0 0 2 0 3>, + <&gpk0 1 2 0 3>, + <&gpk0 3 2 3 3>, + <&gpk0 4 2 3 3>, + <&gpk0 5 2 3 3>, + <&gpk0 6 2 3 3>; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + up { + label = "Up"; + gpios = <&gpx2 0 0 0 2>; + linux,code = <103>; + }; + + down { + label = "Down"; + gpios = <&gpx2 1 0 0 2>; + linux,code = <108>; + }; + + back { + label = "Back"; + gpios = <&gpx1 7 0 0 2>; + linux,code = <158>; + }; + + home { + label = "Home"; + gpios = <&gpx1 6 0 0 2>; + linux,code = <102>; + }; + + menu { + label = "Menu"; + gpios = <&gpx1 5 0 0 2>; + linux,code = <139>; + }; + }; + + keypad@100A0000 { + status = "disabled"; + }; + + sdhci@12520000 { + status = "disabled"; + }; + + sdhci@12540000 { + status = "disabled"; + }; + + i2c@13860000 { + status = "disabled"; + }; + + i2c@13870000 { + status = "disabled"; + }; + + i2c@13880000 { + status = "disabled"; + }; + + i2c@13890000 { + status = "disabled"; + }; + + i2c@138A0000 { + status = "disabled"; + }; + + i2c@138B0000 { + status = "disabled"; + }; + + i2c@138C0000 { + status = "disabled"; + }; + + i2c@138D0000 { + status = "disabled"; + }; +};
arch/arm/boot/dts/exynos4210-smdkv310.dts new file +182 -0
182 lines not on this page · raw message
arch/arm/boot/dts/exynos4210.dtsi new file +403 -0
403 lines not on this page · raw message
Signature · 1 line
1.6.6.rc2
PATCH 2/2 ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board
Quoted 6 lines · Thomas Abraham
Add initial dts file for Exynos4210 SoC. This dts file describes the SoC specific devices and properties. Along with this, add dts file for Samsung's SMDKV310 board and Insignal's Origen board which uses the Exynos4210 dts file and extends it to describe the board specific properties.
Signed-off-by Thomas Abraham <[email protected]>
Quoted 752 lines
--- arch/arm/boot/dts/exynos4210-origen.dts | 137 ++++++++++ arch/arm/boot/dts/exynos4210-smdkv310.dts | 182 +++++++++++++ arch/arm/boot/dts/exynos4210.dtsi | 403 +++++++++++++++++++++++++++++ 3 files changed, 722 insertions(+), 0 deletions(-) create mode 100644 arch/arm/boot/dts/exynos4210-origen.dts create mode 100644 arch/arm/boot/dts/exynos4210-smdkv310.dts create mode 100644 arch/arm/boot/dts/exynos4210.dtsiarch/arm/boot/dts/exynos4210-origen.dts new file +137
-0@@ -0,0 +1,137 @@ +/* + * Samsung's Exynos4210 based Origen board device tree source + * + * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * Copyright (c) 2010-2011 Linaro Ltd. + * www.linaro.org + * + * Device tree source file for Insignal's Origen board which is based on + * Samsung's Exynos4210 SoC. + * + * 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. +*/ + +/dts-v1/; +/include/ "exynos4210.dtsi" + +/ { + model = "Insignal Origen evaluation board based on Exynos4210"; + compatible = "insignal,origen", "samsung,exynos4210"; + + memory { + reg = <0x40000000 0x40000000>; + }; + + chosen { + bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; + }; + + sdhci at 12530000 { + samsung,sdhci-bus-width = <4>; + linux,mmc_cap_4_bit_data; + samsung,sdhci-cd-internal; + gpio-cd = <&gpk2 2 2 3 3>; + gpios = <&gpk2 0 2 0 3>, + <&gpk2 1 2 0 3>, + <&gpk2 3 2 3 3>, + <&gpk2 4 2 3 3>, + <&gpk2 5 2 3 3>, + <&gpk2 6 2 3 3>; + }; + + sdhci at 12510000 { + samsung,sdhci-bus-width = <4>; + linux,mmc_cap_4_bit_data; + samsung,sdhci-cd-internal; + gpio-cd = <&gpk0 2 2 3 3>; + gpios = <&gpk0 0 2 0 3>, + <&gpk0 1 2 0 3>, + <&gpk0 3 2 3 3>, + <&gpk0 4 2 3 3>, + <&gpk0 5 2 3 3>, + <&gpk0 6 2 3 3>; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + up { + label = "Up"; + gpios = <&gpx2 0 0 0 2>; + linux,code = <103>; + }; + + down { + label = "Down"; + gpios = <&gpx2 1 0 0 2>; + linux,code = <108>; + }; + + back { + label = "Back"; + gpios = <&gpx1 7 0 0 2>; + linux,code = <158>; + }; + + home { + label = "Home"; + gpios = <&gpx1 6 0 0 2>; + linux,code = <102>; + }; + + menu { + label = "Menu"; + gpios = <&gpx1 5 0 0 2>; + linux,code = <139>; + }; + }; + + keypad at 100A0000 { + status = "disabled"; + }; + + sdhci at 12520000 { + status = "disabled"; + }; + + sdhci at 12540000 { + status = "disabled"; + }; + + i2c at 13860000 { + status = "disabled"; + }; + + i2c at 13870000 { + status = "disabled"; + }; + + i2c at 13880000 { + status = "disabled"; + }; + + i2c at 13890000 { + status = "disabled"; + }; + + i2c at 138A0000 { + status = "disabled"; + }; + + i2c at 138B0000 { + status = "disabled"; + }; + + i2c at 138C0000 { + status = "disabled"; + }; + + i2c at 138D0000 { + status = "disabled"; + }; +};arch/arm/boot/dts/exynos4210-smdkv310.dts new file +182
-0@@ -0,0 +1,182 @@ +/* + * Samsung's Exynos4210 based SMDKV310 board device tree source + * + * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * Copyright (c) 2010-2011 Linaro Ltd. + * www.linaro.org + * + * Device tree source file for Samsung's SMDKV310 board which is based on + * Samsung's Exynos4210 SoC. + * + * 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. +*/ + +/dts-v1/; +/include/ "exynos4210.dtsi" + +/ { + model = "Samsung smdkv310 evaluation board based on Exynos4210"; + compatible = "samsung,smdkv310", "samsung,exynos4210"; + + memory { + reg = <0x40000000 0x80000000>; + }; + + chosen { + bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; + }; + + sdhci at 12530000 { + samsung,sdhci-bus-width = <4>; + linux,mmc_cap_4_bit_data; + samsung,sdhci-cd-internal; + gpio-cd = <&gpk2 2 2 3 3>; + gpios = <&gpk2 0 2 0 3>, + <&gpk2 1 2 0 3>, + <&gpk2 3 2 3 3>, + <&gpk2 4 2 3 3>, + <&gpk2 5 2 3 3>, + <&gpk2 6 2 3 3>; + }; + + keypad at 100A0000 { + samsung,keypad-num-rows = <2>; + samsung,keypad-num-columns = <8>; + linux,keypad-no-autorepeat; + linux,keypad-wakeup; + + row-gpios = <&gpx2 0 3 3 0>, + <&gpx2 1 3 3 0>; + + col-gpios = <&gpx1 0 3 0 0>, + <&gpx1 1 3 0 0>, + <&gpx1 2 3 0 0>, + <&gpx1 3 3 0 0>, + <&gpx1 4 3 0 0>, + <&gpx1 5 3 0 0>, + <&gpx1 6 3 0 0>, + <&gpx1 7 3 0 0>; + + key_1 { + keypad,row = <0>; + keypad,column = <3>; + linux,code = <2>; + }; + + key_2 { + keypad,row = <0>; + keypad,column = <4>; + linux,code = <3>; + }; + + key_3 { + keypad,row = <0>; + keypad,column = <5>; + linux,code = <4>; + }; + + key_4 { + keypad,row = <0>; + keypad,column = <6>; + linux,code = <5>; + }; + + key_5 { + keypad,row = <0>; + keypad,column = <7>; + linux,code = <6>; + }; + + key_a { + keypad,row = <1>; + keypad,column = <3>; + linux,code = <30>; + }; + + key_b { + keypad,row = <1>; + keypad,column = <4>; + linux,code = <48>; + }; + + key_c { + keypad,row = <1>; + keypad,column = <5>; + linux,code = <46>; + }; + + key_d { + keypad,row = <1>; + keypad,column = <6>; + linux,code = <32>; + }; + + key_e { + keypad,row = <1>; + keypad,column = <7>; + linux,code = <18>; + }; + }; + + i2c at 13860000 { + #address-cells = <1>; + #size-cells = <0>; + samsung,i2c-sda-delay = <100>; + samsung,i2c-max-bus-freq = <20000>; + gpios = <&gpd1 0 2 3 0>, + <&gpd1 1 2 3 0>; + + eeprom at 50 { + compatible = "samsung,24ad0xd1"; + reg = <0x50>; + }; + + eeprom at 52 { + compatible = "samsung,24ad0xd1"; + reg = <0x52>; + }; + }; + + sdhci at 12510000 { + status = "disabled"; + }; + + sdhci at 12520000 { + status = "disabled"; + }; + + sdhci at 12540000 { + status = "disabled"; + }; + + i2c at 13870000 { + status = "disabled"; + }; + + i2c at 13880000 { + status = "disabled"; + }; + + i2c at 13890000 { + status = "disabled"; + }; + + i2c at 138A0000 { + status = "disabled"; + }; + + i2c at 138B0000 { + status = "disabled"; + }; + + i2c at 138C0000 { + status = "disabled"; + }; + + i2c at 138D0000 { + status = "disabled"; + }; +};arch/arm/boot/dts/exynos4210.dtsi new file +403
-0@@ -0,0 +1,403 @@ +/* + * 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,exynos4210"; + interrupt-parent = <&gic>; + + 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,exynos4-combiner"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0x10440000 0x200>; + }; + + 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>; + }; + + 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>; + }; + }; + + gpio-controllers { + #address-cells = <1>; + #size-cells = <1>; + gpio-controller; + + gpa0: gpio-controller at 11400000 { + compatible = "samsung,exynos4-gpio-gpa0", "samsung,exynos4-gpio"; + reg = <0x11400000 0x20>; + #gpio-cells = <4>; + }; + + gpa1: gpio-controller at 11400020 { + compatible = "samsung,exynos4-gpio-gpa1", "samsung,exynos4-gpio"; + reg = <0x11400020 0x20>; + #gpio-cells = <4>; + }; + + gpb: gpio-controller at 11400040 { + compatible = "samsung,exynos4-gpio-gpb", "samsung,exynos4-gpio"; + reg = <0x11400040 0x20>; + #gpio-cells = <4>; + }; + + gpc0: gpio-controller at 11400060 { + compatible = "samsung,exynos4-gpio-gpc0", "samsung,exynos4-gpio"; + reg = <0x11400060 0x20>; + #gpio-cells = <4>; + }; + + gpc1: gpio-controller at 11400080 { + compatible = "samsung,exynos4-gpio-gpc1", "samsung,exynos4-gpio"; + reg = <0x11400080 0x20>; + #gpio-cells = <4>; + }; + + gpd0: gpio-controller at 114000A0 { + compatible = "samsung,exynos4-gpio-gpd0", "samsung,exynos4-gpio"; + reg = <0x114000A0 0x20>; + #gpio-cells = <4>; + }; + + gpd1: gpio-controller at 114000C0 { + compatible = "samsung,exynos4-gpio-gpd1", "samsung,exynos4-gpio"; + reg = <0x114000C0 0x20>; + #gpio-cells = <4>; + }; + + gpe0: gpio-controller at 114000E0 { + compatible = "samsung,exynos4-gpio-gpe0", "samsung,exynos4-gpio"; + reg = <0x114000E0 0x20>; + #gpio-cells = <4>; + }; + + gpe1: gpio-controller at 11400100 { + compatible = "samsung,exynos4-gpio-gpe1", "samsung,exynos4-gpio"; + reg = <0x11400100 0x20>; + #gpio-cells = <4>; + }; + + gpe2: gpio-controller at 11400120 { + compatible = "samsung,exynos4-gpio-gpe2", "samsung,exynos4-gpio"; + reg = <0x11400120 0x20>; + #gpio-cells = <4>; + }; + + gpe3: gpio-controller at 11400140 { + compatible = "samsung,exynos4-gpio-gpe3", "samsung,exynos4-gpio"; + reg = <0x11400140 0x20>; + #gpio-cells = <4>; + }; + + gpe4: gpio-controller at 11400160 { + compatible = "samsung,exynos4-gpio-gpe4", "samsung,exynos4-gpio"; + reg = <0x11400160 0x20>; + #gpio-cells = <4>; + }; + + gpf0: gpio-controller at 11400180 { + compatible = "samsung,exynos4-gpio-gpf0", "samsung,exynos4-gpio"; + reg = <0x11400180 0x20>; + #gpio-cells = <4>; + }; + + gpf1: gpio-controller at 114001A0 { + compatible = "samsung,exynos4-gpio-gpf1", "samsung,exynos4-gpio"; + reg = <0x114001A0 0x20>; + #gpio-cells = <4>; + }; + + gpf2: gpio-controller at 114001C0 { + compatible = "samsung,exynos4-gpio-gpf2", "samsung,exynos4-gpio"; + reg = <0x114001C0 0x20>; + #gpio-cells = <4>; + }; + + gpf3: gpio-controller at 114001E0 { + compatible = "samsung,exynos4-gpio-gpf3", "samsung,exynos4-gpio"; + reg = <0x114001E0 0x20>; + #gpio-cells = <4>; + }; + + gpj0: gpio-controller at 11000000 { + compatible = "samsung,exynos4-gpio-gpj0", "samsung,exynos4-gpio"; + reg = <0x11000000 0x20>; + #gpio-cells = <4>; + }; + + gpj1: gpio-controller at 11000020 { + compatible = "samsung,exynos4-gpio-gpj1", "samsung,exynos4-gpio"; + reg = <0x11000020 0x20>; + #gpio-cells = <4>; + }; + + gpk0: gpio-controller at 11000040 { + compatible = "samsung,exynos4-gpio-gpk0", "samsung,exynos4-gpio"; + reg = <0x11000040 0x20>; + #gpio-cells = <4>; + }; + + gpk1: gpio-controller at 11000060 { + compatible = "samsung,exynos4-gpio-gpk1", "samsung,exynos4-gpio"; + reg = <0x11000060 0x20>; + #gpio-cells = <4>; + }; + + gpk2: gpio-controller at 11000080 { + compatible = "samsung,exynos4-gpio-gpk2", "samsung,exynos4-gpio"; + reg = <0x11000080 0x20>; + #gpio-cells = <4>; + }; + + gpk3: gpio-controller at 110000A0 { + compatible = "samsung,exynos4-gpio-gpk3", "samsung,exynos4-gpio"; + reg = <0x110000A0 0x20>; + #gpio-cells = <4>; + }; + + gpl0: gpio-controller at 110000C0 { + compatible = "samsung,exynos4-gpio-gpl0", "samsung,exynos4-gpio"; + reg = <0x110000C0 0x20>; + #gpio-cells = <4>; + }; + + gpl1: gpio-controller at 110000E0 { + compatible = "samsung,exynos4-gpio-gpl1", "samsung,exynos4-gpio"; + reg = <0x110000E0 0x20>; + #gpio-cells = <4>; + }; + + gpl2: gpio-controller at 11000100 { + compatible = "samsung,exynos4-gpio-gpl2", "samsung,exynos4-gpio"; + reg = <0x11000100 0x20>; + #gpio-cells = <4>; + }; + + gpy0: gpio-controller at 11000120 { + compatible = "samsung,exynos4-gpio-gpy0", "samsung,exynos4-gpio"; + reg = <0x11000120 0x20>; + #gpio-cells = <4>; + }; + + gpy1: gpio-controller at 11000140 { + compatible = "samsung,exynos4-gpio-gpy1", "samsung,exynos4-gpio"; + reg = <0x11000140 0x20>; + #gpio-cells = <4>; + }; + + gpy2: gpio-controller at 11000160 { + compatible = "samsung,exynos4-gpio-gpy2", "samsung,exynos4-gpio"; + reg = <0x11000160 0x20>; + #gpio-cells = <4>; + }; + + gpy3: gpio-controller at 11000180 { + compatible = "samsung,exynos4-gpio-gpy3", "samsung,exynos4-gpio"; + reg = <0x11000180 0x20>; + #gpio-cells = <4>; + }; + + gpy4: gpio-controller at 110001A0 { + compatible = "samsung,exynos4-gpio-gpy4", "samsung,exynos4-gpio"; + reg = <0x110001A0 0x20>; + #gpio-cells = <4>; + }; + + gpy5: gpio-controller at 110001C0 { + compatible = "samsung,exynos4-gpio-gpy5", "samsung,exynos4-gpio"; + reg = <0x110001C0 0x20>; + #gpio-cells = <4>; + }; + + gpy6: gpio-controller at 110001E0 { + compatible = "samsung,exynos4-gpio-gpy6", "samsung,exynos4-gpio"; + reg = <0x110001E0 0x20>; + #gpio-cells = <4>; + }; + + gpx0: gpio-controller at 11000C00 { + compatible = "samsung,exynos4-gpio-gpx0", "samsung,exynos4-gpio"; + reg = <0x11000C00 0x20>; + #gpio-cells = <4>; + }; + + gpx1: gpio-controller at 11000C20 { + compatible = "samsung,exynos4-gpio-gpx1", "samsung,exynos4-gpio"; + reg = <0x11000C20 0x20>; + #gpio-cells = <4>; + }; + + gpx2: gpio-controller at 11000C40 { + compatible = "samsung,exynos4-gpio-gpx2", "samsung,exynos4-gpio"; + reg = <0x11000C40 0x20>; + #gpio-cells = <4>; + }; + + gpx3: gpio-controller at 11000C60 { + compatible = "samsung,exynos4-gpio-gpx3", "samsung,exynos4-gpio"; + reg = <0x11000C60 0x20>; + #gpio-cells = <4>; + }; + + gpz: gpio-controller at 03860000 { + compatible = "samsung,exynos4-gpio-gpz", "samsung,exynos4-gpio"; + reg = <0x03860000 0x20>; + #gpio-cells = <4>; + }; + }; +};Signature · 1 line
1.6.6.rc2
PATCH 2/2 ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board
Quoted 4 lines · Grant Likely
Quoted 2 lines · Thomas Abraham
Add initial dts file for Exynos4210 SoC. This dts file describes the SoC specific devices and properties. Along with this, add dts file for
Samsung's
Quoted 8 lines
Quoted 1 line
SMDKV310 board and Insignal's Origen board which uses the Exynos4210 dts
file
Quoted 3 lines
and extends it to describe the board specific properties.
Signed-off-by Thomas Abraham <[email protected]>Acked-by Grant Likely <[email protected]>
Hi Grant and Thomas,
OK, this is ok for me.
But as I know, we need other Thomas' DT patches and some stuff is required to re-work. So I'm not sure we can send them in this time Anyway let me check in this weekend and if possible try to apply them for upcoming merge window.
If any problems, let you know.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
Quoted 12 lines
Quoted 4 lines
--- arch/arm/boot/dts/exynos4210-origen.dts | 137 ++++++++++ arch/arm/boot/dts/exynos4210-smdkv310.dts | 182 +++++++++++++ arch/arm/boot/dts/exynos4210.dtsi | 403+++++++++++++++++++++++++++++
Review
Quoted 6 lines
3 files changed, 722 insertions(+), 0 deletions(-) create mode 100644 arch/arm/boot/dts/exynos4210-origen.dts create mode 100644 arch/arm/boot/dts/exynos4210-smdkv310.dts create mode 100644 arch/arm/boot/dts/exynos4210.dtsi(quoted diff) +0
-0
b/arch/arm/boot/dts/exynos4210-origen.dts
Quoted 14 lines
Quoted 5 lines
new file mode 100644
index 0000000..b8c4763arch/arm/boot/dts/exynos4210-origen.dts line 9
Quoted 9 lines
arch/arm/boot/dts/exynos4210-origen.dts new file +9
-0@@ -0,0 +1,137 @@ +/* + * Samsung's Exynos4210 based Origen board device tree source + * + * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * Copyright (c) 2010-2011 Linaro Ltd. + * www.linaro.org + * + * Device tree source file for Insignal's Origen board which is based
on
Quoted 131 lines
Quoted 10 lines
arch/arm/boot/dts/exynos4210-origen.dts new file +10
-0+ * Samsung's Exynos4210 SoC. + * + * 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. +*/ + +/dts-v1/; +/include/ "exynos4210.dtsi" +arch/arm/boot/dts/exynos4210-origen.dts
Quoted 10 lines
arch/arm/boot/dts/exynos4210-origen.dts new file +10
-0+/ { + model = "Insignal Origen evaluation board based on Exynos4210"; + compatible = "insignal,origen", "samsung,exynos4210"; + + memory { + reg = <0x40000000 0x40000000>; + }; + + chosen { + bootargs ="root=/dev/ram0 rw ramdisk=8192initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
Review
Quoted 109 lines
arch/arm/boot/dts/exynos4210-origen.dts new file +108
-0+ }; + + sdhci at 12530000 { + samsung,sdhci-bus-width = <4>; + linux,mmc_cap_4_bit_data; + samsung,sdhci-cd-internal; + gpio-cd = <&gpk2 2 2 3 3>; + gpios = <&gpk2 0 2 0 3>, + <&gpk2 1 2 0 3>, + <&gpk2 3 2 3 3>, + <&gpk2 4 2 3 3>, + <&gpk2 5 2 3 3>, + <&gpk2 6 2 3 3>; + }; + + sdhci at 12510000 { + samsung,sdhci-bus-width = <4>; + linux,mmc_cap_4_bit_data; + samsung,sdhci-cd-internal; + gpio-cd = <&gpk0 2 2 3 3>; + gpios = <&gpk0 0 2 0 3>, + <&gpk0 1 2 0 3>, + <&gpk0 3 2 3 3>, + <&gpk0 4 2 3 3>, + <&gpk0 5 2 3 3>, + <&gpk0 6 2 3 3>; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + up { + label = "Up"; + gpios = <&gpx2 0 0 0 2>; + linux,code = <103>; + }; + + down { + label = "Down"; + gpios = <&gpx2 1 0 0 2>; + linux,code = <108>; + }; + + back { + label = "Back"; + gpios = <&gpx1 7 0 0 2>; + linux,code = <158>; + }; + + home { + label = "Home"; + gpios = <&gpx1 6 0 0 2>; + linux,code = <102>; + }; + + menu { + label = "Menu"; + gpios = <&gpx1 5 0 0 2>; + linux,code = <139>; + }; + }; + + keypad at 100A0000 { + status = "disabled"; + }; + + sdhci at 12520000 { + status = "disabled"; + }; + + sdhci at 12540000 { + status = "disabled"; + }; + + i2c at 13860000 { + status = "disabled"; + }; + + i2c at 13870000 { + status = "disabled"; + }; + + i2c at 13880000 { + status = "disabled"; + }; + + i2c at 13890000 { + status = "disabled"; + }; + + i2c at 138A0000 { + status = "disabled"; + }; + + i2c at 138B0000 { + status = "disabled"; + }; + + i2c at 138C0000 { + status = "disabled"; + }; + + i2c at 138D0000 { + status = "disabled"; + }; +};(quoted diff) +0
-0
b/arch/arm/boot/dts/exynos4210-smdkv310.dts
Quoted 14 lines
Quoted 5 lines
new file mode 100644
index 0000000..27afc8earch/arm/boot/dts/exynos4210-smdkv310.dts line 9
Quoted 9 lines
arch/arm/boot/dts/exynos4210-smdkv310.dts new file +9
-0@@ -0,0 +1,182 @@ +/* + * Samsung's Exynos4210 based SMDKV310 board device tree source + * + * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * Copyright (c) 2010-2011 Linaro Ltd. + * www.linaro.org + * + * Device tree source file for Samsung's SMDKV310 board which is based
on
Quoted 176 lines
Quoted 10 lines
arch/arm/boot/dts/exynos4210-smdkv310.dts new file +10
-0+ * Samsung's Exynos4210 SoC. + * + * 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. +*/ + +/dts-v1/; +/include/ "exynos4210.dtsi" +arch/arm/boot/dts/exynos4210-smdkv310.dts
Quoted 10 lines
arch/arm/boot/dts/exynos4210-smdkv310.dts new file +10
-0+/ { + model = "Samsung smdkv310 evaluation board based on Exynos4210"; + compatible = "samsung,smdkv310", "samsung,exynos4210"; + + memory { + reg = <0x40000000 0x80000000>; + }; + + chosen { + bootargs = "root=/dev/ram0 rw ramdisk=8192initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc";
Review
Quoted 154 lines
arch/arm/boot/dts/exynos4210-smdkv310.dts new file +153
-0+ }; + + sdhci at 12530000 { + samsung,sdhci-bus-width = <4>; + linux,mmc_cap_4_bit_data; + samsung,sdhci-cd-internal; + gpio-cd = <&gpk2 2 2 3 3>; + gpios = <&gpk2 0 2 0 3>, + <&gpk2 1 2 0 3>, + <&gpk2 3 2 3 3>, + <&gpk2 4 2 3 3>, + <&gpk2 5 2 3 3>, + <&gpk2 6 2 3 3>; + }; + + keypad at 100A0000 { + samsung,keypad-num-rows = <2>; + samsung,keypad-num-columns = <8>; + linux,keypad-no-autorepeat; + linux,keypad-wakeup; + + row-gpios = <&gpx2 0 3 3 0>, + <&gpx2 1 3 3 0>; + + col-gpios = <&gpx1 0 3 0 0>, + <&gpx1 1 3 0 0>, + <&gpx1 2 3 0 0>, + <&gpx1 3 3 0 0>, + <&gpx1 4 3 0 0>, + <&gpx1 5 3 0 0>, + <&gpx1 6 3 0 0>, + <&gpx1 7 3 0 0>; + + key_1 { + keypad,row = <0>; + keypad,column = <3>; + linux,code = <2>; + }; + + key_2 { + keypad,row = <0>; + keypad,column = <4>; + linux,code = <3>; + }; + + key_3 { + keypad,row = <0>; + keypad,column = <5>; + linux,code = <4>; + }; + + key_4 { + keypad,row = <0>; + keypad,column = <6>; + linux,code = <5>; + }; + + key_5 { + keypad,row = <0>; + keypad,column = <7>; + linux,code = <6>; + }; + + key_a { + keypad,row = <1>; + keypad,column = <3>; + linux,code = <30>; + }; + + key_b { + keypad,row = <1>; + keypad,column = <4>; + linux,code = <48>; + }; + + key_c { + keypad,row = <1>; + keypad,column = <5>; + linux,code = <46>; + }; + + key_d { + keypad,row = <1>; + keypad,column = <6>; + linux,code = <32>; + }; + + key_e { + keypad,row = <1>; + keypad,column = <7>; + linux,code = <18>; + }; + }; + + i2c at 13860000 { + #address-cells = <1>; + #size-cells = <0>; + samsung,i2c-sda-delay = <100>; + samsung,i2c-max-bus-freq = <20000>; + gpios = <&gpd1 0 2 3 0>, + <&gpd1 1 2 3 0>; + + eeprom at 50 { + compatible = "samsung,24ad0xd1"; + reg = <0x50>; + }; + + eeprom at 52 { + compatible = "samsung,24ad0xd1"; + reg = <0x52>; + }; + }; + + sdhci at 12510000 { + status = "disabled"; + }; + + sdhci at 12520000 { + status = "disabled"; + }; + + sdhci at 12540000 { + status = "disabled"; + }; + + i2c at 13870000 { + status = "disabled"; + }; + + i2c at 13880000 { + status = "disabled"; + }; + + i2c at 13890000 { + status = "disabled"; + }; + + i2c at 138A0000 { + status = "disabled"; + }; + + i2c at 138B0000 { + status = "disabled"; + }; + + i2c at 138C0000 { + status = "disabled"; + }; + + i2c at 138D0000 { + status = "disabled"; + }; +};(quoted diff) +0
-0
b/arch/arm/boot/dts/exynos4210.dtsi
Quoted 14 lines
Quoted 5 lines
new file mode 100644
index 0000000..7598a15arch/arm/boot/dts/exynos4210.dtsi line 9
Quoted 9 lines
arch/arm/boot/dts/exynos4210.dtsi new file +9
-0@@ -0,0 +1,403 @@ +/* + * 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
Quoted 1 line
arch/arm/boot/dts/exynos4210.dtsi line 10
Quoted 1 line
arch/arm/boot/dts/exynos4210.dtsi new file +1
-0+ * based board files can include this file and provide values for board
specfic
Quoted 3 lines
arch/arm/boot/dts/exynos4210.dtsi
Quoted 3 lines
arch/arm/boot/dts/exynos4210.dtsi new file +3
-0+ * bindings. + * + * Note: This file does not include device nodes for all the
controllers in
Quoted 431 lines
arch/arm/boot/dts/exynos4210.dtsi line 14
Quoted 1 line
arch/arm/boot/dts/exynos4210.dtsi new file +1
-0+ * Exynos4210 SoC. As device tree coverage for Exynos4210 increases,additional
Quoted 158 lines
arch/arm/boot/dts/exynos4210.dtsi new file +158
-0+ * 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,exynos4210"; + interrupt-parent = <&gic>; + + 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,exynos4-combiner"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0x10440000 0x200>; + }; + + 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>; + }; + + 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
Quoted 10 lines
arch/arm/boot/dts/exynos4210.dtsi new file +10
-0+ }; + }; + + gpio-controllers { + #address-cells = <1>; + #size-cells = <1>; + gpio-controller; + + gpa0: gpio-controller at 11400000 { + compatible = "samsung,exynos4-gpio-gpa0","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11400000 0x20>; + #gpio-cells = <4>; + }; + + gpa1: gpio-controller at 11400020 { + compatible = "samsung,exynos4-gpio-gpa1","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11400020 0x20>; + #gpio-cells = <4>; + }; + + gpb: gpio-controller at 11400040 { + compatible = "samsung,exynos4-gpio-gpb","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11400040 0x20>; + #gpio-cells = <4>; + }; + + gpc0: gpio-controller at 11400060 { + compatible = "samsung,exynos4-gpio-gpc0","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11400060 0x20>; + #gpio-cells = <4>; + }; + + gpc1: gpio-controller at 11400080 { + compatible = "samsung,exynos4-gpio-gpc1","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11400080 0x20>; + #gpio-cells = <4>; + }; + + gpd0: gpio-controller at 114000A0 { + compatible = "samsung,exynos4-gpio-gpd0","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x114000A0 0x20>; + #gpio-cells = <4>; + }; + + gpd1: gpio-controller at 114000C0 { + compatible = "samsung,exynos4-gpio-gpd1","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x114000C0 0x20>; + #gpio-cells = <4>; + }; + + gpe0: gpio-controller at 114000E0 { + compatible = "samsung,exynos4-gpio-gpe0","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x114000E0 0x20>; + #gpio-cells = <4>; + }; + + gpe1: gpio-controller at 11400100 { + compatible = "samsung,exynos4-gpio-gpe1","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11400100 0x20>; + #gpio-cells = <4>; + }; + + gpe2: gpio-controller at 11400120 { + compatible = "samsung,exynos4-gpio-gpe2","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11400120 0x20>; + #gpio-cells = <4>; + }; + + gpe3: gpio-controller at 11400140 { + compatible = "samsung,exynos4-gpio-gpe3","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11400140 0x20>; + #gpio-cells = <4>; + }; + + gpe4: gpio-controller at 11400160 { + compatible = "samsung,exynos4-gpio-gpe4","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11400160 0x20>; + #gpio-cells = <4>; + }; + + gpf0: gpio-controller at 11400180 { + compatible = "samsung,exynos4-gpio-gpf0","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11400180 0x20>; + #gpio-cells = <4>; + }; + + gpf1: gpio-controller at 114001A0 { + compatible = "samsung,exynos4-gpio-gpf1","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x114001A0 0x20>; + #gpio-cells = <4>; + }; + + gpf2: gpio-controller at 114001C0 { + compatible = "samsung,exynos4-gpio-gpf2","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x114001C0 0x20>; + #gpio-cells = <4>; + }; + + gpf3: gpio-controller at 114001E0 { + compatible = "samsung,exynos4-gpio-gpf3","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x114001E0 0x20>; + #gpio-cells = <4>; + }; + + gpj0: gpio-controller at 11000000 { + compatible = "samsung,exynos4-gpio-gpj0","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000000 0x20>; + #gpio-cells = <4>; + }; + + gpj1: gpio-controller at 11000020 { + compatible = "samsung,exynos4-gpio-gpj1","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000020 0x20>; + #gpio-cells = <4>; + }; + + gpk0: gpio-controller at 11000040 { + compatible = "samsung,exynos4-gpio-gpk0","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000040 0x20>; + #gpio-cells = <4>; + }; + + gpk1: gpio-controller at 11000060 { + compatible = "samsung,exynos4-gpio-gpk1","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000060 0x20>; + #gpio-cells = <4>; + }; + + gpk2: gpio-controller at 11000080 { + compatible = "samsung,exynos4-gpio-gpk2","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000080 0x20>; + #gpio-cells = <4>; + }; + + gpk3: gpio-controller at 110000A0 { + compatible = "samsung,exynos4-gpio-gpk3","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x110000A0 0x20>; + #gpio-cells = <4>; + }; + + gpl0: gpio-controller at 110000C0 { + compatible = "samsung,exynos4-gpio-gpl0","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x110000C0 0x20>; + #gpio-cells = <4>; + }; + + gpl1: gpio-controller at 110000E0 { + compatible = "samsung,exynos4-gpio-gpl1","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x110000E0 0x20>; + #gpio-cells = <4>; + }; + + gpl2: gpio-controller at 11000100 { + compatible = "samsung,exynos4-gpio-gpl2","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000100 0x20>; + #gpio-cells = <4>; + }; + + gpy0: gpio-controller at 11000120 { + compatible = "samsung,exynos4-gpio-gpy0","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000120 0x20>; + #gpio-cells = <4>; + }; + + gpy1: gpio-controller at 11000140 { + compatible = "samsung,exynos4-gpio-gpy1","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000140 0x20>; + #gpio-cells = <4>; + }; + + gpy2: gpio-controller at 11000160 { + compatible = "samsung,exynos4-gpio-gpy2","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000160 0x20>; + #gpio-cells = <4>; + }; + + gpy3: gpio-controller at 11000180 { + compatible = "samsung,exynos4-gpio-gpy3","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000180 0x20>; + #gpio-cells = <4>; + }; + + gpy4: gpio-controller at 110001A0 { + compatible = "samsung,exynos4-gpio-gpy4","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x110001A0 0x20>; + #gpio-cells = <4>; + }; + + gpy5: gpio-controller at 110001C0 { + compatible = "samsung,exynos4-gpio-gpy5","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x110001C0 0x20>; + #gpio-cells = <4>; + }; + + gpy6: gpio-controller at 110001E0 { + compatible = "samsung,exynos4-gpio-gpy6","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x110001E0 0x20>; + #gpio-cells = <4>; + }; + + gpx0: gpio-controller at 11000C00 { + compatible = "samsung,exynos4-gpio-gpx0","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000C00 0x20>; + #gpio-cells = <4>; + }; + + gpx1: gpio-controller at 11000C20 { + compatible = "samsung,exynos4-gpio-gpx1","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000C20 0x20>; + #gpio-cells = <4>; + }; + + gpx2: gpio-controller at 11000C40 { + compatible = "samsung,exynos4-gpio-gpx2","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000C40 0x20>; + #gpio-cells = <4>; + }; + + gpx3: gpio-controller at 11000C60 { + compatible = "samsung,exynos4-gpio-gpx3","samsung,exynos4-gpio";
arch/arm/boot/dts/exynos4210.dtsi
Quoted 6 lines
arch/arm/boot/dts/exynos4210.dtsi new file +6
-0+ reg = <0x11000C60 0x20>; + #gpio-cells = <4>; + }; + + gpz: gpio-controller at 03860000 { + compatible = "samsung,exynos4-gpio-gpz","samsung,exynos4-gpio";
Quoted 8 lines
arch/arm/boot/dts/exynos4210.dtsi new file +5
-1+ reg = <0x03860000 0x20>; + #gpio-cells = <4>; + }; + }; +}; --1.6.6.rc2
Kukjin Kim
Appliedcover ARM: Samsung: Add basic device tree support for Exynos4 boards
In reply to Thomas AbrahamQuoted 29 lines · Thomas Abraham
This patchset adds a new basic device tree enabled machine/board file which is based on the Samsung's Exynos4 family of SoC's. Also included in this patchset is the dts file for Exynos4210 SoC, Samsung's SMDKV310 board and Insignal's Origen board.
The Exynos4210 dts file includes support for IRQ, GPIO, WDT, RTC, UART, SDHCI, Keypad, DMA and I2C controllers. As device tree coverage for Exynos4210 increases, additional device nodes to represent the controllers should be added.
The device tree enabled machine file enables boot on two boards based on the Exynos4210 SoC. This provides a starting point to add additional device tree support on these boards, migrate other existing Exynos4 based boards to use device tree and enable device tree based boot on new upcoming boards.
This patchset has been tested on the following tree:
https://github.com/kgene/linux-samsung.git branch: for-nextThomas Abraham (2):
ARM: Samsung: Add Exynos4 device tree enabled board file
ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board.../devicetree/bindings/arm/insignal-boards.txt | 8 + .../devicetree/bindings/arm/samsung-boards.txt | 8 + arch/arm/boot/dts/exynos4210-origen.dts | 137 +++++++ arch/arm/boot/dts/exynos4210-smdkv310.dts | 182 +++++++++ arch/arm/boot/dts/exynos4210.dtsi | 403 ++++++++++++++++++++ arch/arm/mach-exynos4/Kconfig | 14 + arch/arm/mach-exynos4/Makefile | 2 + arch/arm/mach-exynos4/mach-exynos4-dt.c | 85 ++++ 8 files changed, 839 insertions(+), 0 deletions(-)
Quoted 6 lines
create mode 100644
Documentation/devicetree/bindings/arm/insignal-boards.txtcreate mode 100644Documentation/devicetree/bindings/arm/samsung-boards.txtcreate mode 100644arch/arm/boot/dts/exynos4210-origen.dtscreate mode 100644arch/arm/boot/dts/exynos4210-smdkv310.dtscreate mode 100644arch/arm/boot/dts/exynos4210.dtsi
create mode 100644arch/arm/mach-exynos4/mach-exynos4-dt.c
Applied.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.