* [PATCH 0/2] ARM: Samsung: Add basic device tree support for Exynos4 boards
@ 2011-10-11 14:13 Thomas Abraham
2011-10-11 14:13 ` [PATCH 1/2] ARM: Samsung: Add Exynos4 device tree enabled board file Thomas Abraham
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Thomas Abraham @ 2011-10-11 14:13 UTC (permalink / raw)
To: devicetree-discuss, linux-samsung-soc
Cc: grant.likely, rob.herring, arnd, kgene.kim, linux-arm-kernel,
patches
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] ARM: Samsung: Add Exynos4 device tree enabled board file
2011-10-11 14:13 [PATCH 0/2] ARM: Samsung: Add basic device tree support for Exynos4 boards Thomas Abraham
@ 2011-10-11 14:13 ` Thomas Abraham
2011-10-13 17:51 ` Grant Likely
2011-10-11 14:13 ` [PATCH 2/2] ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board Thomas Abraham
2011-10-24 13:02 ` [PATCH 0/2] ARM: Samsung: Add basic device tree support for Exynos4 boards Kukjin Kim
2 siblings, 1 reply; 9+ messages in thread
From: Thomas Abraham @ 2011-10-11 14:13 UTC (permalink / raw)
To: devicetree-discuss, linux-samsung-soc
Cc: grant.likely, rob.herring, arnd, kgene.kim, linux-arm-kernel,
patches
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 <thomas.abraham@linaro.org>
---
.../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
diff --git a/Documentation/devicetree/bindings/arm/insignal-boards.txt b/Documentation/devicetree/bindings/arm/insignal-boards.txt
new file mode 100644
index 0000000..524c3dc
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/insignal-boards.txt
@@ -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.
diff --git a/Documentation/devicetree/bindings/arm/samsung-boards.txt b/Documentation/devicetree/bindings/arm/samsung-boards.txt
new file mode 100644
index 0000000..0bf68be
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/samsung-boards.txt
@@ -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.
diff --git a/arch/arm/mach-exynos4/Kconfig b/arch/arm/mach-exynos4/Kconfig
index 0c5888a..39dc135 100644
--- a/arch/arm/mach-exynos4/Kconfig
+++ b/arch/arm/mach-exynos4/Kconfig
@@ -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"
diff --git a/arch/arm/mach-exynos4/Makefile b/arch/arm/mach-exynos4/Makefile
index 8066538..4e302cb 100644
--- a/arch/arm/mach-exynos4/Makefile
+++ b/arch/arm/mach-exynos4/Makefile
@@ -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
diff --git a/arch/arm/mach-exynos4/mach-exynos4-dt.c b/arch/arm/mach-exynos4/mach-exynos4-dt.c
new file mode 100644
index 0000000..85fa027
--- /dev/null
+++ b/arch/arm/mach-exynos4/mach-exynos4-dt.c
@@ -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 <thomas.abraham@linaro.org> */
+ .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
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/2] ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board
2011-10-11 14:13 [PATCH 0/2] ARM: Samsung: Add basic device tree support for Exynos4 boards Thomas Abraham
2011-10-11 14:13 ` [PATCH 1/2] ARM: Samsung: Add Exynos4 device tree enabled board file Thomas Abraham
@ 2011-10-11 14:13 ` Thomas Abraham
2011-10-13 17:52 ` Grant Likely
2011-10-24 13:02 ` [PATCH 0/2] ARM: Samsung: Add basic device tree support for Exynos4 boards Kukjin Kim
2 siblings, 1 reply; 9+ messages in thread
From: Thomas Abraham @ 2011-10-11 14:13 UTC (permalink / raw)
To: devicetree-discuss, linux-samsung-soc
Cc: grant.likely, rob.herring, arnd, kgene.kim, linux-arm-kernel,
patches
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 <thomas.abraham@linaro.org>
---
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
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts
new file mode 100644
index 0000000..b8c4763
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4210-origen.dts
@@ -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";
+ };
+};
diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts
new file mode 100644
index 0000000..27afc8e
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts
@@ -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@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@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@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@50 {
+ compatible = "samsung,24ad0xd1";
+ reg = <0x50>;
+ };
+
+ eeprom@52 {
+ compatible = "samsung,24ad0xd1";
+ reg = <0x52>;
+ };
+ };
+
+ sdhci@12510000 {
+ status = "disabled";
+ };
+
+ sdhci@12520000 {
+ status = "disabled";
+ };
+
+ sdhci@12540000 {
+ 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";
+ };
+};
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
new file mode 100644
index 0000000..7598a15
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -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@10490000 {
+ compatible = "arm,cortex-a9-gic";
+ #interrupt-cells = <3>;
+ interrupt-controller;
+ reg = <0x10490000 0x1000>, <0x10480000 0x100>;
+ };
+
+ combiner: interrupt-controller@10440000 {
+ compatible = "samsung,exynos4-combiner";
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ reg = <0x10440000 0x200>;
+ };
+
+ watchdog@10060000 {
+ compatible = "samsung,s3c2410-wdt";
+ reg = <0x10060000 0x100>;
+ interrupts = <0 43 0>;
+ };
+
+ rtc@10070000 {
+ compatible = "samsung,s3c6410-rtc";
+ reg = <0x10070000 0x100>;
+ interrupts = <0 44 0>, <0 45 0>;
+ };
+
+ keypad@100A0000 {
+ compatible = "samsung,s5pv210-keypad";
+ reg = <0x100A0000 0x100>;
+ interrupts = <0 109 0>;
+ };
+
+ sdhci@12510000 {
+ compatible = "samsung,exynos4210-sdhci";
+ reg = <0x12510000 0x100>;
+ interrupts = <0 73 0>;
+ };
+
+ sdhci@12520000 {
+ compatible = "samsung,exynos4210-sdhci";
+ reg = <0x12520000 0x100>;
+ interrupts = <0 74 0>;
+ };
+
+ sdhci@12530000 {
+ compatible = "samsung,exynos4210-sdhci";
+ reg = <0x12530000 0x100>;
+ interrupts = <0 75 0>;
+ };
+
+ sdhci@12540000 {
+ compatible = "samsung,exynos4210-sdhci";
+ reg = <0x12540000 0x100>;
+ interrupts = <0 76 0>;
+ };
+
+ serial@13800000 {
+ compatible = "samsung,exynos4210-uart";
+ reg = <0x13800000 0x100>;
+ interrupts = <0 52 0>;
+ };
+
+ serial@13810000 {
+ compatible = "samsung,exynos4210-uart";
+ reg = <0x13810000 0x100>;
+ interrupts = <0 53 0>;
+ };
+
+ serial@13820000 {
+ compatible = "samsung,exynos4210-uart";
+ reg = <0x13820000 0x100>;
+ interrupts = <0 54 0>;
+ };
+
+ serial@13830000 {
+ compatible = "samsung,exynos4210-uart";
+ reg = <0x13830000 0x100>;
+ interrupts = <0 55 0>;
+ };
+
+ i2c@13860000 {
+ compatible = "samsung,s3c2440-i2c";
+ reg = <0x13860000 0x100>;
+ interrupts = <0 58 0>;
+ };
+
+ i2c@13870000 {
+ compatible = "samsung,s3c2440-i2c";
+ reg = <0x13870000 0x100>;
+ interrupts = <0 59 0>;
+ };
+
+ i2c@13880000 {
+ compatible = "samsung,s3c2440-i2c";
+ reg = <0x13880000 0x100>;
+ interrupts = <0 60 0>;
+ };
+
+ i2c@13890000 {
+ compatible = "samsung,s3c2440-i2c";
+ reg = <0x13890000 0x100>;
+ interrupts = <0 61 0>;
+ };
+
+ i2c@138A0000 {
+ compatible = "samsung,s3c2440-i2c";
+ reg = <0x138A0000 0x100>;
+ interrupts = <0 62 0>;
+ };
+
+ i2c@138B0000 {
+ compatible = "samsung,s3c2440-i2c";
+ reg = <0x138B0000 0x100>;
+ interrupts = <0 63 0>;
+ };
+
+ i2c@138C0000 {
+ compatible = "samsung,s3c2440-i2c";
+ reg = <0x138C0000 0x100>;
+ interrupts = <0 64 0>;
+ };
+
+ i2c@138D0000 {
+ compatible = "samsung,s3c2440-i2c";
+ reg = <0x138D0000 0x100>;
+ interrupts = <0 65 0>;
+ };
+
+ amba {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "arm,amba-bus";
+ interrupt-parent = <&gic>;
+ ranges;
+
+ pdma0: pdma@12680000 {
+ compatible = "arm,pl330", "arm,primecell";
+ reg = <0x12680000 0x1000>;
+ interrupts = <0 35 0>;
+ };
+
+ pdma1: pdma@12690000 {
+ compatible = "arm,pl330", "arm,primecell";
+ reg = <0x12690000 0x1000>;
+ interrupts = <0 36 0>;
+ };
+ };
+
+ gpio-controllers {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ gpio-controller;
+
+ gpa0: gpio-controller@11400000 {
+ compatible = "samsung,exynos4-gpio-gpa0", "samsung,exynos4-gpio";
+ reg = <0x11400000 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpa1: gpio-controller@11400020 {
+ compatible = "samsung,exynos4-gpio-gpa1", "samsung,exynos4-gpio";
+ reg = <0x11400020 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpb: gpio-controller@11400040 {
+ compatible = "samsung,exynos4-gpio-gpb", "samsung,exynos4-gpio";
+ reg = <0x11400040 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpc0: gpio-controller@11400060 {
+ compatible = "samsung,exynos4-gpio-gpc0", "samsung,exynos4-gpio";
+ reg = <0x11400060 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpc1: gpio-controller@11400080 {
+ compatible = "samsung,exynos4-gpio-gpc1", "samsung,exynos4-gpio";
+ reg = <0x11400080 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpd0: gpio-controller@114000A0 {
+ compatible = "samsung,exynos4-gpio-gpd0", "samsung,exynos4-gpio";
+ reg = <0x114000A0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpd1: gpio-controller@114000C0 {
+ compatible = "samsung,exynos4-gpio-gpd1", "samsung,exynos4-gpio";
+ reg = <0x114000C0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpe0: gpio-controller@114000E0 {
+ compatible = "samsung,exynos4-gpio-gpe0", "samsung,exynos4-gpio";
+ reg = <0x114000E0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpe1: gpio-controller@11400100 {
+ compatible = "samsung,exynos4-gpio-gpe1", "samsung,exynos4-gpio";
+ reg = <0x11400100 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpe2: gpio-controller@11400120 {
+ compatible = "samsung,exynos4-gpio-gpe2", "samsung,exynos4-gpio";
+ reg = <0x11400120 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpe3: gpio-controller@11400140 {
+ compatible = "samsung,exynos4-gpio-gpe3", "samsung,exynos4-gpio";
+ reg = <0x11400140 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpe4: gpio-controller@11400160 {
+ compatible = "samsung,exynos4-gpio-gpe4", "samsung,exynos4-gpio";
+ reg = <0x11400160 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpf0: gpio-controller@11400180 {
+ compatible = "samsung,exynos4-gpio-gpf0", "samsung,exynos4-gpio";
+ reg = <0x11400180 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpf1: gpio-controller@114001A0 {
+ compatible = "samsung,exynos4-gpio-gpf1", "samsung,exynos4-gpio";
+ reg = <0x114001A0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpf2: gpio-controller@114001C0 {
+ compatible = "samsung,exynos4-gpio-gpf2", "samsung,exynos4-gpio";
+ reg = <0x114001C0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpf3: gpio-controller@114001E0 {
+ compatible = "samsung,exynos4-gpio-gpf3", "samsung,exynos4-gpio";
+ reg = <0x114001E0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpj0: gpio-controller@11000000 {
+ compatible = "samsung,exynos4-gpio-gpj0", "samsung,exynos4-gpio";
+ reg = <0x11000000 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpj1: gpio-controller@11000020 {
+ compatible = "samsung,exynos4-gpio-gpj1", "samsung,exynos4-gpio";
+ reg = <0x11000020 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpk0: gpio-controller@11000040 {
+ compatible = "samsung,exynos4-gpio-gpk0", "samsung,exynos4-gpio";
+ reg = <0x11000040 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpk1: gpio-controller@11000060 {
+ compatible = "samsung,exynos4-gpio-gpk1", "samsung,exynos4-gpio";
+ reg = <0x11000060 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpk2: gpio-controller@11000080 {
+ compatible = "samsung,exynos4-gpio-gpk2", "samsung,exynos4-gpio";
+ reg = <0x11000080 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpk3: gpio-controller@110000A0 {
+ compatible = "samsung,exynos4-gpio-gpk3", "samsung,exynos4-gpio";
+ reg = <0x110000A0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpl0: gpio-controller@110000C0 {
+ compatible = "samsung,exynos4-gpio-gpl0", "samsung,exynos4-gpio";
+ reg = <0x110000C0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpl1: gpio-controller@110000E0 {
+ compatible = "samsung,exynos4-gpio-gpl1", "samsung,exynos4-gpio";
+ reg = <0x110000E0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpl2: gpio-controller@11000100 {
+ compatible = "samsung,exynos4-gpio-gpl2", "samsung,exynos4-gpio";
+ reg = <0x11000100 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpy0: gpio-controller@11000120 {
+ compatible = "samsung,exynos4-gpio-gpy0", "samsung,exynos4-gpio";
+ reg = <0x11000120 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpy1: gpio-controller@11000140 {
+ compatible = "samsung,exynos4-gpio-gpy1", "samsung,exynos4-gpio";
+ reg = <0x11000140 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpy2: gpio-controller@11000160 {
+ compatible = "samsung,exynos4-gpio-gpy2", "samsung,exynos4-gpio";
+ reg = <0x11000160 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpy3: gpio-controller@11000180 {
+ compatible = "samsung,exynos4-gpio-gpy3", "samsung,exynos4-gpio";
+ reg = <0x11000180 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpy4: gpio-controller@110001A0 {
+ compatible = "samsung,exynos4-gpio-gpy4", "samsung,exynos4-gpio";
+ reg = <0x110001A0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpy5: gpio-controller@110001C0 {
+ compatible = "samsung,exynos4-gpio-gpy5", "samsung,exynos4-gpio";
+ reg = <0x110001C0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpy6: gpio-controller@110001E0 {
+ compatible = "samsung,exynos4-gpio-gpy6", "samsung,exynos4-gpio";
+ reg = <0x110001E0 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpx0: gpio-controller@11000C00 {
+ compatible = "samsung,exynos4-gpio-gpx0", "samsung,exynos4-gpio";
+ reg = <0x11000C00 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpx1: gpio-controller@11000C20 {
+ compatible = "samsung,exynos4-gpio-gpx1", "samsung,exynos4-gpio";
+ reg = <0x11000C20 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpx2: gpio-controller@11000C40 {
+ compatible = "samsung,exynos4-gpio-gpx2", "samsung,exynos4-gpio";
+ reg = <0x11000C40 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpx3: gpio-controller@11000C60 {
+ compatible = "samsung,exynos4-gpio-gpx3", "samsung,exynos4-gpio";
+ reg = <0x11000C60 0x20>;
+ #gpio-cells = <4>;
+ };
+
+ gpz: gpio-controller@03860000 {
+ compatible = "samsung,exynos4-gpio-gpz", "samsung,exynos4-gpio";
+ reg = <0x03860000 0x20>;
+ #gpio-cells = <4>;
+ };
+ };
+};
--
1.6.6.rc2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] ARM: Samsung: Add Exynos4 device tree enabled board file
2011-10-11 14:13 ` [PATCH 1/2] ARM: Samsung: Add Exynos4 device tree enabled board file Thomas Abraham
@ 2011-10-13 17:51 ` Grant Likely
2011-10-14 11:28 ` Kukjin Kim
0 siblings, 1 reply; 9+ messages in thread
From: Grant Likely @ 2011-10-13 17:51 UTC (permalink / raw)
To: Thomas Abraham
Cc: devicetree-discuss, linux-samsung-soc, rob.herring, arnd,
kgene.kim, linux-arm-kernel, patches
On Tue, Oct 11, 2011 at 07:43:15PM +0530, Thomas Abraham wrote:
> 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 <thomas.abraham@linaro.org>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
> ---
> .../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
>
> diff --git a/Documentation/devicetree/bindings/arm/insignal-boards.txt b/Documentation/devicetree/bindings/arm/insignal-boards.txt
> new file mode 100644
> index 0000000..524c3dc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/insignal-boards.txt
> @@ -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.
> diff --git a/Documentation/devicetree/bindings/arm/samsung-boards.txt b/Documentation/devicetree/bindings/arm/samsung-boards.txt
> new file mode 100644
> index 0000000..0bf68be
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/samsung-boards.txt
> @@ -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.
> diff --git a/arch/arm/mach-exynos4/Kconfig b/arch/arm/mach-exynos4/Kconfig
> index 0c5888a..39dc135 100644
> --- a/arch/arm/mach-exynos4/Kconfig
> +++ b/arch/arm/mach-exynos4/Kconfig
> @@ -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"
> diff --git a/arch/arm/mach-exynos4/Makefile b/arch/arm/mach-exynos4/Makefile
> index 8066538..4e302cb 100644
> --- a/arch/arm/mach-exynos4/Makefile
> +++ b/arch/arm/mach-exynos4/Makefile
> @@ -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
> diff --git a/arch/arm/mach-exynos4/mach-exynos4-dt.c b/arch/arm/mach-exynos4/mach-exynos4-dt.c
> new file mode 100644
> index 0000000..85fa027
> --- /dev/null
> +++ b/arch/arm/mach-exynos4/mach-exynos4-dt.c
> @@ -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 <thomas.abraham@linaro.org> */
> + .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
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board
2011-10-11 14:13 ` [PATCH 2/2] ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board Thomas Abraham
@ 2011-10-13 17:52 ` Grant Likely
2011-10-14 11:29 ` Kukjin Kim
0 siblings, 1 reply; 9+ messages in thread
From: Grant Likely @ 2011-10-13 17:52 UTC (permalink / raw)
To: Thomas Abraham
Cc: kgene.kim, arnd, patches, devicetree-discuss, rob.herring,
linux-samsung-soc, linux-arm-kernel
On Tue, Oct 11, 2011 at 07:43:16PM +0530, Thomas Abraham wrote:
> 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 <thomas.abraham@linaro.org>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
> ---
> 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
>
> diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts
> new file mode 100644
> index 0000000..b8c4763
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4210-origen.dts
> @@ -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";
> + };
> +};
> diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts
> new file mode 100644
> index 0000000..27afc8e
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts
> @@ -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@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@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@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@50 {
> + compatible = "samsung,24ad0xd1";
> + reg = <0x50>;
> + };
> +
> + eeprom@52 {
> + compatible = "samsung,24ad0xd1";
> + reg = <0x52>;
> + };
> + };
> +
> + sdhci@12510000 {
> + status = "disabled";
> + };
> +
> + sdhci@12520000 {
> + status = "disabled";
> + };
> +
> + sdhci@12540000 {
> + 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";
> + };
> +};
> diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
> new file mode 100644
> index 0000000..7598a15
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4210.dtsi
> @@ -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@10490000 {
> + compatible = "arm,cortex-a9-gic";
> + #interrupt-cells = <3>;
> + interrupt-controller;
> + reg = <0x10490000 0x1000>, <0x10480000 0x100>;
> + };
> +
> + combiner: interrupt-controller@10440000 {
> + compatible = "samsung,exynos4-combiner";
> + #interrupt-cells = <2>;
> + interrupt-controller;
> + reg = <0x10440000 0x200>;
> + };
> +
> + watchdog@10060000 {
> + compatible = "samsung,s3c2410-wdt";
> + reg = <0x10060000 0x100>;
> + interrupts = <0 43 0>;
> + };
> +
> + rtc@10070000 {
> + compatible = "samsung,s3c6410-rtc";
> + reg = <0x10070000 0x100>;
> + interrupts = <0 44 0>, <0 45 0>;
> + };
> +
> + keypad@100A0000 {
> + compatible = "samsung,s5pv210-keypad";
> + reg = <0x100A0000 0x100>;
> + interrupts = <0 109 0>;
> + };
> +
> + sdhci@12510000 {
> + compatible = "samsung,exynos4210-sdhci";
> + reg = <0x12510000 0x100>;
> + interrupts = <0 73 0>;
> + };
> +
> + sdhci@12520000 {
> + compatible = "samsung,exynos4210-sdhci";
> + reg = <0x12520000 0x100>;
> + interrupts = <0 74 0>;
> + };
> +
> + sdhci@12530000 {
> + compatible = "samsung,exynos4210-sdhci";
> + reg = <0x12530000 0x100>;
> + interrupts = <0 75 0>;
> + };
> +
> + sdhci@12540000 {
> + compatible = "samsung,exynos4210-sdhci";
> + reg = <0x12540000 0x100>;
> + interrupts = <0 76 0>;
> + };
> +
> + serial@13800000 {
> + compatible = "samsung,exynos4210-uart";
> + reg = <0x13800000 0x100>;
> + interrupts = <0 52 0>;
> + };
> +
> + serial@13810000 {
> + compatible = "samsung,exynos4210-uart";
> + reg = <0x13810000 0x100>;
> + interrupts = <0 53 0>;
> + };
> +
> + serial@13820000 {
> + compatible = "samsung,exynos4210-uart";
> + reg = <0x13820000 0x100>;
> + interrupts = <0 54 0>;
> + };
> +
> + serial@13830000 {
> + compatible = "samsung,exynos4210-uart";
> + reg = <0x13830000 0x100>;
> + interrupts = <0 55 0>;
> + };
> +
> + i2c@13860000 {
> + compatible = "samsung,s3c2440-i2c";
> + reg = <0x13860000 0x100>;
> + interrupts = <0 58 0>;
> + };
> +
> + i2c@13870000 {
> + compatible = "samsung,s3c2440-i2c";
> + reg = <0x13870000 0x100>;
> + interrupts = <0 59 0>;
> + };
> +
> + i2c@13880000 {
> + compatible = "samsung,s3c2440-i2c";
> + reg = <0x13880000 0x100>;
> + interrupts = <0 60 0>;
> + };
> +
> + i2c@13890000 {
> + compatible = "samsung,s3c2440-i2c";
> + reg = <0x13890000 0x100>;
> + interrupts = <0 61 0>;
> + };
> +
> + i2c@138A0000 {
> + compatible = "samsung,s3c2440-i2c";
> + reg = <0x138A0000 0x100>;
> + interrupts = <0 62 0>;
> + };
> +
> + i2c@138B0000 {
> + compatible = "samsung,s3c2440-i2c";
> + reg = <0x138B0000 0x100>;
> + interrupts = <0 63 0>;
> + };
> +
> + i2c@138C0000 {
> + compatible = "samsung,s3c2440-i2c";
> + reg = <0x138C0000 0x100>;
> + interrupts = <0 64 0>;
> + };
> +
> + i2c@138D0000 {
> + compatible = "samsung,s3c2440-i2c";
> + reg = <0x138D0000 0x100>;
> + interrupts = <0 65 0>;
> + };
> +
> + amba {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + compatible = "arm,amba-bus";
> + interrupt-parent = <&gic>;
> + ranges;
> +
> + pdma0: pdma@12680000 {
> + compatible = "arm,pl330", "arm,primecell";
> + reg = <0x12680000 0x1000>;
> + interrupts = <0 35 0>;
> + };
> +
> + pdma1: pdma@12690000 {
> + compatible = "arm,pl330", "arm,primecell";
> + reg = <0x12690000 0x1000>;
> + interrupts = <0 36 0>;
> + };
> + };
> +
> + gpio-controllers {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + gpio-controller;
> +
> + gpa0: gpio-controller@11400000 {
> + compatible = "samsung,exynos4-gpio-gpa0", "samsung,exynos4-gpio";
> + reg = <0x11400000 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpa1: gpio-controller@11400020 {
> + compatible = "samsung,exynos4-gpio-gpa1", "samsung,exynos4-gpio";
> + reg = <0x11400020 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpb: gpio-controller@11400040 {
> + compatible = "samsung,exynos4-gpio-gpb", "samsung,exynos4-gpio";
> + reg = <0x11400040 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpc0: gpio-controller@11400060 {
> + compatible = "samsung,exynos4-gpio-gpc0", "samsung,exynos4-gpio";
> + reg = <0x11400060 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpc1: gpio-controller@11400080 {
> + compatible = "samsung,exynos4-gpio-gpc1", "samsung,exynos4-gpio";
> + reg = <0x11400080 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpd0: gpio-controller@114000A0 {
> + compatible = "samsung,exynos4-gpio-gpd0", "samsung,exynos4-gpio";
> + reg = <0x114000A0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpd1: gpio-controller@114000C0 {
> + compatible = "samsung,exynos4-gpio-gpd1", "samsung,exynos4-gpio";
> + reg = <0x114000C0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpe0: gpio-controller@114000E0 {
> + compatible = "samsung,exynos4-gpio-gpe0", "samsung,exynos4-gpio";
> + reg = <0x114000E0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpe1: gpio-controller@11400100 {
> + compatible = "samsung,exynos4-gpio-gpe1", "samsung,exynos4-gpio";
> + reg = <0x11400100 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpe2: gpio-controller@11400120 {
> + compatible = "samsung,exynos4-gpio-gpe2", "samsung,exynos4-gpio";
> + reg = <0x11400120 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpe3: gpio-controller@11400140 {
> + compatible = "samsung,exynos4-gpio-gpe3", "samsung,exynos4-gpio";
> + reg = <0x11400140 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpe4: gpio-controller@11400160 {
> + compatible = "samsung,exynos4-gpio-gpe4", "samsung,exynos4-gpio";
> + reg = <0x11400160 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpf0: gpio-controller@11400180 {
> + compatible = "samsung,exynos4-gpio-gpf0", "samsung,exynos4-gpio";
> + reg = <0x11400180 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpf1: gpio-controller@114001A0 {
> + compatible = "samsung,exynos4-gpio-gpf1", "samsung,exynos4-gpio";
> + reg = <0x114001A0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpf2: gpio-controller@114001C0 {
> + compatible = "samsung,exynos4-gpio-gpf2", "samsung,exynos4-gpio";
> + reg = <0x114001C0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpf3: gpio-controller@114001E0 {
> + compatible = "samsung,exynos4-gpio-gpf3", "samsung,exynos4-gpio";
> + reg = <0x114001E0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpj0: gpio-controller@11000000 {
> + compatible = "samsung,exynos4-gpio-gpj0", "samsung,exynos4-gpio";
> + reg = <0x11000000 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpj1: gpio-controller@11000020 {
> + compatible = "samsung,exynos4-gpio-gpj1", "samsung,exynos4-gpio";
> + reg = <0x11000020 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpk0: gpio-controller@11000040 {
> + compatible = "samsung,exynos4-gpio-gpk0", "samsung,exynos4-gpio";
> + reg = <0x11000040 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpk1: gpio-controller@11000060 {
> + compatible = "samsung,exynos4-gpio-gpk1", "samsung,exynos4-gpio";
> + reg = <0x11000060 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpk2: gpio-controller@11000080 {
> + compatible = "samsung,exynos4-gpio-gpk2", "samsung,exynos4-gpio";
> + reg = <0x11000080 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpk3: gpio-controller@110000A0 {
> + compatible = "samsung,exynos4-gpio-gpk3", "samsung,exynos4-gpio";
> + reg = <0x110000A0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpl0: gpio-controller@110000C0 {
> + compatible = "samsung,exynos4-gpio-gpl0", "samsung,exynos4-gpio";
> + reg = <0x110000C0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpl1: gpio-controller@110000E0 {
> + compatible = "samsung,exynos4-gpio-gpl1", "samsung,exynos4-gpio";
> + reg = <0x110000E0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpl2: gpio-controller@11000100 {
> + compatible = "samsung,exynos4-gpio-gpl2", "samsung,exynos4-gpio";
> + reg = <0x11000100 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpy0: gpio-controller@11000120 {
> + compatible = "samsung,exynos4-gpio-gpy0", "samsung,exynos4-gpio";
> + reg = <0x11000120 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpy1: gpio-controller@11000140 {
> + compatible = "samsung,exynos4-gpio-gpy1", "samsung,exynos4-gpio";
> + reg = <0x11000140 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpy2: gpio-controller@11000160 {
> + compatible = "samsung,exynos4-gpio-gpy2", "samsung,exynos4-gpio";
> + reg = <0x11000160 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpy3: gpio-controller@11000180 {
> + compatible = "samsung,exynos4-gpio-gpy3", "samsung,exynos4-gpio";
> + reg = <0x11000180 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpy4: gpio-controller@110001A0 {
> + compatible = "samsung,exynos4-gpio-gpy4", "samsung,exynos4-gpio";
> + reg = <0x110001A0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpy5: gpio-controller@110001C0 {
> + compatible = "samsung,exynos4-gpio-gpy5", "samsung,exynos4-gpio";
> + reg = <0x110001C0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpy6: gpio-controller@110001E0 {
> + compatible = "samsung,exynos4-gpio-gpy6", "samsung,exynos4-gpio";
> + reg = <0x110001E0 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpx0: gpio-controller@11000C00 {
> + compatible = "samsung,exynos4-gpio-gpx0", "samsung,exynos4-gpio";
> + reg = <0x11000C00 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpx1: gpio-controller@11000C20 {
> + compatible = "samsung,exynos4-gpio-gpx1", "samsung,exynos4-gpio";
> + reg = <0x11000C20 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpx2: gpio-controller@11000C40 {
> + compatible = "samsung,exynos4-gpio-gpx2", "samsung,exynos4-gpio";
> + reg = <0x11000C40 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpx3: gpio-controller@11000C60 {
> + compatible = "samsung,exynos4-gpio-gpx3", "samsung,exynos4-gpio";
> + reg = <0x11000C60 0x20>;
> + #gpio-cells = <4>;
> + };
> +
> + gpz: gpio-controller@03860000 {
> + compatible = "samsung,exynos4-gpio-gpz", "samsung,exynos4-gpio";
> + reg = <0x03860000 0x20>;
> + #gpio-cells = <4>;
> + };
> + };
> +};
> --
> 1.6.6.rc2
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH 1/2] ARM: Samsung: Add Exynos4 device tree enabled board file
2011-10-13 17:51 ` Grant Likely
@ 2011-10-14 11:28 ` Kukjin Kim
[not found] ` <000201cc8a64$6775ae30$36610a90$%kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
0 siblings, 1 reply; 9+ messages in thread
From: Kukjin Kim @ 2011-10-14 11:28 UTC (permalink / raw)
To: 'Grant Likely', 'Thomas Abraham'
Cc: devicetree-discuss, linux-samsung-soc, rob.herring, arnd,
linux-arm-kernel, patches
Grant Likely wrote:
>
> On Tue, Oct 11, 2011 at 07:43:15PM +0530, Thomas Abraham wrote:
> > 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 <thomas.abraham@linaro.org>
>
> Acked-by: Grant Likely <grant.likely@secretlab.ca>
>
Thanks for your ack :)
And there are small comments......
> > ---
> > .../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
> >
> > diff --git a/Documentation/devicetree/bindings/arm/insignal-boards.txt
> b/Documentation/devicetree/bindings/arm/insignal-boards.txt
> > new file mode 100644
> > index 0000000..524c3dc
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/arm/insignal-boards.txt
> > @@ -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.
> > diff --git a/Documentation/devicetree/bindings/arm/samsung-boards.txt
> b/Documentation/devicetree/bindings/arm/samsung-boards.txt
> > new file mode 100644
> > index 0000000..0bf68be
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/arm/samsung-boards.txt
> > @@ -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.
> > diff --git a/arch/arm/mach-exynos4/Kconfig
b/arch/arm/mach-exynos4/Kconfig
> > index 0c5888a..39dc135 100644
> > --- a/arch/arm/mach-exynos4/Kconfig
> > +++ b/arch/arm/mach-exynos4/Kconfig
> > @@ -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 <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
> > + 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"
> > diff --git a/arch/arm/mach-exynos4/Makefile
b/arch/arm/mach-exynos4/Makefile
> > index 8066538..4e302cb 100644
> > --- a/arch/arm/mach-exynos4/Makefile
> > +++ b/arch/arm/mach-exynos4/Makefile
> > @@ -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
> > diff --git a/arch/arm/mach-exynos4/mach-exynos4-dt.c b/arch/arm/mach-
> exynos4/mach-exynos4-dt.c
> > new file mode 100644
> > index 0000000..85fa027
> > --- /dev/null
> > +++ b/arch/arm/mach-exynos4/mach-exynos4-dt.c
> > @@ -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 <thomas.abraham@linaro.org> */
> > + .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
> >
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH 2/2] ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board
2011-10-13 17:52 ` Grant Likely
@ 2011-10-14 11:29 ` Kukjin Kim
0 siblings, 0 replies; 9+ messages in thread
From: Kukjin Kim @ 2011-10-14 11:29 UTC (permalink / raw)
To: 'Grant Likely', 'Thomas Abraham'
Cc: devicetree-discuss, linux-samsung-soc, rob.herring, arnd,
linux-arm-kernel, patches
Grant Likely wrote:
>
> On Tue, Oct 11, 2011 at 07:43:16PM +0530, Thomas Abraham wrote:
> > 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 <thomas.abraham@linaro.org>
>
> Acked-by: Grant Likely <grant.likely@secretlab.ca>
>
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 <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
> > ---
> > 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
> >
> > diff --git a/arch/arm/boot/dts/exynos4210-origen.dts
> b/arch/arm/boot/dts/exynos4210-origen.dts
> > new file mode 100644
> > index 0000000..b8c4763
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/exynos4210-origen.dts
> > @@ -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";
> > + };
> > +};
> > diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts
> b/arch/arm/boot/dts/exynos4210-smdkv310.dts
> > new file mode 100644
> > index 0000000..27afc8e
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts
> > @@ -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@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@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@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@50 {
> > + compatible = "samsung,24ad0xd1";
> > + reg = <0x50>;
> > + };
> > +
> > + eeprom@52 {
> > + compatible = "samsung,24ad0xd1";
> > + reg = <0x52>;
> > + };
> > + };
> > +
> > + sdhci@12510000 {
> > + status = "disabled";
> > + };
> > +
> > + sdhci@12520000 {
> > + status = "disabled";
> > + };
> > +
> > + sdhci@12540000 {
> > + 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";
> > + };
> > +};
> > diff --git a/arch/arm/boot/dts/exynos4210.dtsi
> b/arch/arm/boot/dts/exynos4210.dtsi
> > new file mode 100644
> > index 0000000..7598a15
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/exynos4210.dtsi
> > @@ -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@10490000 {
> > + compatible = "arm,cortex-a9-gic";
> > + #interrupt-cells = <3>;
> > + interrupt-controller;
> > + reg = <0x10490000 0x1000>, <0x10480000 0x100>;
> > + };
> > +
> > + combiner: interrupt-controller@10440000 {
> > + compatible = "samsung,exynos4-combiner";
> > + #interrupt-cells = <2>;
> > + interrupt-controller;
> > + reg = <0x10440000 0x200>;
> > + };
> > +
> > + watchdog@10060000 {
> > + compatible = "samsung,s3c2410-wdt";
> > + reg = <0x10060000 0x100>;
> > + interrupts = <0 43 0>;
> > + };
> > +
> > + rtc@10070000 {
> > + compatible = "samsung,s3c6410-rtc";
> > + reg = <0x10070000 0x100>;
> > + interrupts = <0 44 0>, <0 45 0>;
> > + };
> > +
> > + keypad@100A0000 {
> > + compatible = "samsung,s5pv210-keypad";
> > + reg = <0x100A0000 0x100>;
> > + interrupts = <0 109 0>;
> > + };
> > +
> > + sdhci@12510000 {
> > + compatible = "samsung,exynos4210-sdhci";
> > + reg = <0x12510000 0x100>;
> > + interrupts = <0 73 0>;
> > + };
> > +
> > + sdhci@12520000 {
> > + compatible = "samsung,exynos4210-sdhci";
> > + reg = <0x12520000 0x100>;
> > + interrupts = <0 74 0>;
> > + };
> > +
> > + sdhci@12530000 {
> > + compatible = "samsung,exynos4210-sdhci";
> > + reg = <0x12530000 0x100>;
> > + interrupts = <0 75 0>;
> > + };
> > +
> > + sdhci@12540000 {
> > + compatible = "samsung,exynos4210-sdhci";
> > + reg = <0x12540000 0x100>;
> > + interrupts = <0 76 0>;
> > + };
> > +
> > + serial@13800000 {
> > + compatible = "samsung,exynos4210-uart";
> > + reg = <0x13800000 0x100>;
> > + interrupts = <0 52 0>;
> > + };
> > +
> > + serial@13810000 {
> > + compatible = "samsung,exynos4210-uart";
> > + reg = <0x13810000 0x100>;
> > + interrupts = <0 53 0>;
> > + };
> > +
> > + serial@13820000 {
> > + compatible = "samsung,exynos4210-uart";
> > + reg = <0x13820000 0x100>;
> > + interrupts = <0 54 0>;
> > + };
> > +
> > + serial@13830000 {
> > + compatible = "samsung,exynos4210-uart";
> > + reg = <0x13830000 0x100>;
> > + interrupts = <0 55 0>;
> > + };
> > +
> > + i2c@13860000 {
> > + compatible = "samsung,s3c2440-i2c";
> > + reg = <0x13860000 0x100>;
> > + interrupts = <0 58 0>;
> > + };
> > +
> > + i2c@13870000 {
> > + compatible = "samsung,s3c2440-i2c";
> > + reg = <0x13870000 0x100>;
> > + interrupts = <0 59 0>;
> > + };
> > +
> > + i2c@13880000 {
> > + compatible = "samsung,s3c2440-i2c";
> > + reg = <0x13880000 0x100>;
> > + interrupts = <0 60 0>;
> > + };
> > +
> > + i2c@13890000 {
> > + compatible = "samsung,s3c2440-i2c";
> > + reg = <0x13890000 0x100>;
> > + interrupts = <0 61 0>;
> > + };
> > +
> > + i2c@138A0000 {
> > + compatible = "samsung,s3c2440-i2c";
> > + reg = <0x138A0000 0x100>;
> > + interrupts = <0 62 0>;
> > + };
> > +
> > + i2c@138B0000 {
> > + compatible = "samsung,s3c2440-i2c";
> > + reg = <0x138B0000 0x100>;
> > + interrupts = <0 63 0>;
> > + };
> > +
> > + i2c@138C0000 {
> > + compatible = "samsung,s3c2440-i2c";
> > + reg = <0x138C0000 0x100>;
> > + interrupts = <0 64 0>;
> > + };
> > +
> > + i2c@138D0000 {
> > + compatible = "samsung,s3c2440-i2c";
> > + reg = <0x138D0000 0x100>;
> > + interrupts = <0 65 0>;
> > + };
> > +
> > + amba {
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > + compatible = "arm,amba-bus";
> > + interrupt-parent = <&gic>;
> > + ranges;
> > +
> > + pdma0: pdma@12680000 {
> > + compatible = "arm,pl330", "arm,primecell";
> > + reg = <0x12680000 0x1000>;
> > + interrupts = <0 35 0>;
> > + };
> > +
> > + pdma1: pdma@12690000 {
> > + compatible = "arm,pl330", "arm,primecell";
> > + reg = <0x12690000 0x1000>;
> > + interrupts = <0 36 0>;
> > + };
> > + };
> > +
> > + gpio-controllers {
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > + gpio-controller;
> > +
> > + gpa0: gpio-controller@11400000 {
> > + compatible = "samsung,exynos4-gpio-gpa0",
> "samsung,exynos4-gpio";
> > + reg = <0x11400000 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpa1: gpio-controller@11400020 {
> > + compatible = "samsung,exynos4-gpio-gpa1",
> "samsung,exynos4-gpio";
> > + reg = <0x11400020 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpb: gpio-controller@11400040 {
> > + compatible = "samsung,exynos4-gpio-gpb",
> "samsung,exynos4-gpio";
> > + reg = <0x11400040 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpc0: gpio-controller@11400060 {
> > + compatible = "samsung,exynos4-gpio-gpc0",
> "samsung,exynos4-gpio";
> > + reg = <0x11400060 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpc1: gpio-controller@11400080 {
> > + compatible = "samsung,exynos4-gpio-gpc1",
> "samsung,exynos4-gpio";
> > + reg = <0x11400080 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpd0: gpio-controller@114000A0 {
> > + compatible = "samsung,exynos4-gpio-gpd0",
> "samsung,exynos4-gpio";
> > + reg = <0x114000A0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpd1: gpio-controller@114000C0 {
> > + compatible = "samsung,exynos4-gpio-gpd1",
> "samsung,exynos4-gpio";
> > + reg = <0x114000C0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpe0: gpio-controller@114000E0 {
> > + compatible = "samsung,exynos4-gpio-gpe0",
> "samsung,exynos4-gpio";
> > + reg = <0x114000E0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpe1: gpio-controller@11400100 {
> > + compatible = "samsung,exynos4-gpio-gpe1",
> "samsung,exynos4-gpio";
> > + reg = <0x11400100 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpe2: gpio-controller@11400120 {
> > + compatible = "samsung,exynos4-gpio-gpe2",
> "samsung,exynos4-gpio";
> > + reg = <0x11400120 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpe3: gpio-controller@11400140 {
> > + compatible = "samsung,exynos4-gpio-gpe3",
> "samsung,exynos4-gpio";
> > + reg = <0x11400140 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpe4: gpio-controller@11400160 {
> > + compatible = "samsung,exynos4-gpio-gpe4",
> "samsung,exynos4-gpio";
> > + reg = <0x11400160 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpf0: gpio-controller@11400180 {
> > + compatible = "samsung,exynos4-gpio-gpf0",
> "samsung,exynos4-gpio";
> > + reg = <0x11400180 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpf1: gpio-controller@114001A0 {
> > + compatible = "samsung,exynos4-gpio-gpf1",
> "samsung,exynos4-gpio";
> > + reg = <0x114001A0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpf2: gpio-controller@114001C0 {
> > + compatible = "samsung,exynos4-gpio-gpf2",
> "samsung,exynos4-gpio";
> > + reg = <0x114001C0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpf3: gpio-controller@114001E0 {
> > + compatible = "samsung,exynos4-gpio-gpf3",
> "samsung,exynos4-gpio";
> > + reg = <0x114001E0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpj0: gpio-controller@11000000 {
> > + compatible = "samsung,exynos4-gpio-gpj0",
> "samsung,exynos4-gpio";
> > + reg = <0x11000000 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpj1: gpio-controller@11000020 {
> > + compatible = "samsung,exynos4-gpio-gpj1",
> "samsung,exynos4-gpio";
> > + reg = <0x11000020 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpk0: gpio-controller@11000040 {
> > + compatible = "samsung,exynos4-gpio-gpk0",
> "samsung,exynos4-gpio";
> > + reg = <0x11000040 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpk1: gpio-controller@11000060 {
> > + compatible = "samsung,exynos4-gpio-gpk1",
> "samsung,exynos4-gpio";
> > + reg = <0x11000060 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpk2: gpio-controller@11000080 {
> > + compatible = "samsung,exynos4-gpio-gpk2",
> "samsung,exynos4-gpio";
> > + reg = <0x11000080 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpk3: gpio-controller@110000A0 {
> > + compatible = "samsung,exynos4-gpio-gpk3",
> "samsung,exynos4-gpio";
> > + reg = <0x110000A0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpl0: gpio-controller@110000C0 {
> > + compatible = "samsung,exynos4-gpio-gpl0",
> "samsung,exynos4-gpio";
> > + reg = <0x110000C0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpl1: gpio-controller@110000E0 {
> > + compatible = "samsung,exynos4-gpio-gpl1",
> "samsung,exynos4-gpio";
> > + reg = <0x110000E0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpl2: gpio-controller@11000100 {
> > + compatible = "samsung,exynos4-gpio-gpl2",
> "samsung,exynos4-gpio";
> > + reg = <0x11000100 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpy0: gpio-controller@11000120 {
> > + compatible = "samsung,exynos4-gpio-gpy0",
> "samsung,exynos4-gpio";
> > + reg = <0x11000120 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpy1: gpio-controller@11000140 {
> > + compatible = "samsung,exynos4-gpio-gpy1",
> "samsung,exynos4-gpio";
> > + reg = <0x11000140 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpy2: gpio-controller@11000160 {
> > + compatible = "samsung,exynos4-gpio-gpy2",
> "samsung,exynos4-gpio";
> > + reg = <0x11000160 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpy3: gpio-controller@11000180 {
> > + compatible = "samsung,exynos4-gpio-gpy3",
> "samsung,exynos4-gpio";
> > + reg = <0x11000180 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpy4: gpio-controller@110001A0 {
> > + compatible = "samsung,exynos4-gpio-gpy4",
> "samsung,exynos4-gpio";
> > + reg = <0x110001A0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpy5: gpio-controller@110001C0 {
> > + compatible = "samsung,exynos4-gpio-gpy5",
> "samsung,exynos4-gpio";
> > + reg = <0x110001C0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpy6: gpio-controller@110001E0 {
> > + compatible = "samsung,exynos4-gpio-gpy6",
> "samsung,exynos4-gpio";
> > + reg = <0x110001E0 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpx0: gpio-controller@11000C00 {
> > + compatible = "samsung,exynos4-gpio-gpx0",
> "samsung,exynos4-gpio";
> > + reg = <0x11000C00 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpx1: gpio-controller@11000C20 {
> > + compatible = "samsung,exynos4-gpio-gpx1",
> "samsung,exynos4-gpio";
> > + reg = <0x11000C20 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpx2: gpio-controller@11000C40 {
> > + compatible = "samsung,exynos4-gpio-gpx2",
> "samsung,exynos4-gpio";
> > + reg = <0x11000C40 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpx3: gpio-controller@11000C60 {
> > + compatible = "samsung,exynos4-gpio-gpx3",
> "samsung,exynos4-gpio";
> > + reg = <0x11000C60 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > +
> > + gpz: gpio-controller@03860000 {
> > + compatible = "samsung,exynos4-gpio-gpz",
> "samsung,exynos4-gpio";
> > + reg = <0x03860000 0x20>;
> > + #gpio-cells = <4>;
> > + };
> > + };
> > +};
> > --
> > 1.6.6.rc2
> >
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] ARM: Samsung: Add Exynos4 device tree enabled board file
[not found] ` <000201cc8a64$6775ae30$36610a90$%kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
@ 2011-10-14 12:22 ` Rob Herring
0 siblings, 0 replies; 9+ messages in thread
From: Rob Herring @ 2011-10-14 12:22 UTC (permalink / raw)
To: Kukjin Kim
Cc: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA,
patches-QSEj5FYQhm4dnm+yROfE0A,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ,
rob.herring-bsGFqQB8/DxBDgjK7y7TUQ,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
On 10/14/2011 06:28 AM, Kukjin Kim wrote:
>>> diff --git a/arch/arm/mach-exynos4/Kconfig
> b/arch/arm/mach-exynos4/Kconfig
>>> index 0c5888a..39dc135 100644
>>> --- a/arch/arm/mach-exynos4/Kconfig
>>> +++ b/arch/arm/mach-exynos4/Kconfig
>>> @@ -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.
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/2] ARM: Samsung: Add basic device tree support for Exynos4 boards
2011-10-11 14:13 [PATCH 0/2] ARM: Samsung: Add basic device tree support for Exynos4 boards Thomas Abraham
2011-10-11 14:13 ` [PATCH 1/2] ARM: Samsung: Add Exynos4 device tree enabled board file Thomas Abraham
2011-10-11 14:13 ` [PATCH 2/2] ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board Thomas Abraham
@ 2011-10-24 13:02 ` Kukjin Kim
2 siblings, 0 replies; 9+ messages in thread
From: Kukjin Kim @ 2011-10-24 13:02 UTC (permalink / raw)
To: Thomas Abraham
Cc: devicetree-discuss, linux-samsung-soc, grant.likely, rob.herring,
arnd, kgene.kim, linux-arm-kernel, patches
On 10/11/11 16:13, Thomas Abraham wrote:
> 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
Applied.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-10-24 13:02 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-11 14:13 [PATCH 0/2] ARM: Samsung: Add basic device tree support for Exynos4 boards Thomas Abraham
2011-10-11 14:13 ` [PATCH 1/2] ARM: Samsung: Add Exynos4 device tree enabled board file Thomas Abraham
2011-10-13 17:51 ` Grant Likely
2011-10-14 11:28 ` Kukjin Kim
[not found] ` <000201cc8a64$6775ae30$36610a90$%kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2011-10-14 12:22 ` Rob Herring
2011-10-11 14:13 ` [PATCH 2/2] ARM: dts: Add intial dts file for Exynos4210 SoC, SMDKV310 and Origen board Thomas Abraham
2011-10-13 17:52 ` Grant Likely
2011-10-14 11:29 ` Kukjin Kim
2011-10-24 13:02 ` [PATCH 0/2] ARM: Samsung: Add basic device tree support for Exynos4 boards Kukjin Kim
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).