Skip to contentSkip to conversation

ARM: Samsung: Add basic device tree support for Exynos4 boards

PATCH Superseded Thomas Abraham 4 participants 9 messages Oct 11, 2011 – Oct 24, 2011

Subsystems (4)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
new file mode 100644
index 0000000..524c3dc
@@ -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
new file mode 100644
index 0000000..0bf68be
@@ -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
index 0c5888a..39dc135 100644
@@ -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
index 8066538..4e302cb 100644
@@ -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
#2 lore raw

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.

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.c
Documentation/devicetree/bindings/arm/insignal-boards.txt new file +8 -0
new file mode 100644
index 0000000..524c3dc
@@ -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
new file mode 100644
index 0000000..0bf68be
@@ -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
index 0c5888a..39dc135 100644
@@ -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
index 8066538..4e302cb 100644
@@ -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
new file mode 100644
index 0000000..85fa027
@@ -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
#3 lore raw

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.

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.txt

Review

Quoted 14 lines

new file mode 100644
index 0000000..524c3dc

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.
(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..0bf68be

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.
(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 tree

enabled.

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 be

supported

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 -0
 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- renamed from arch/arm/mach-exynos4/mach-exynos4-dt.c +0 -0

exynos4/mach-exynos4-dt.c

Quoted 22 lines

new file mode 100644
index 0000000..85fa027

arch/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 Device

Tree)")

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

#4 lore raw

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 -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.

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

#5 lore raw

PATCH 2/2 ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board

In reply to 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.

---
 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
new file mode 100644
index 0000000..b8c4763
@@ -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
#6 lore raw

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.

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.dtsi
arch/arm/boot/dts/exynos4210-origen.dts new file +137 -0
new file mode 100644
index 0000000..b8c4763
@@ -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
new file mode 100644
index 0000000..27afc8e
@@ -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
new file mode 100644
index 0000000..7598a15
@@ -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
#7 lore raw

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.

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..b8c4763

arch/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=8192

initrd=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..27afc8e

arch/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=8192

initrd=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..7598a15

arch/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

Applied
#8 lore raw

cover ARM: Samsung: Add basic device tree support for Exynos4 boards

In reply to Thomas Abraham
Quoted 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-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(-)
Quoted 6 lines

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

Applied.
Thanks.

Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.