From: jochen@scram.de (Jochen Friedrich)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] Initial DT support for SIMpad devices.
Date: Sun, 20 Nov 2011 21:37:50 +0100 [thread overview]
Message-ID: <1321821470-32396-1-git-send-email-jochen@scram.de> (raw)
Signed-off-by: Jochen Friedrich <jochen@scram.de>
---
.../devicetree/bindings/vendor-prefixes.txt | 1 +
arch/arm/boot/dts/sa1110.dtsi | 72 ++++++++++++++++++++
arch/arm/boot/dts/simpad.dts | 49 +++++++++++++
arch/arm/mach-sa1100/Kconfig | 13 ++++
arch/arm/mach-sa1100/Makefile.boot | 1 +
arch/arm/mach-sa1100/simpad.c | 29 ++++++++-
6 files changed, 164 insertions(+), 1 deletions(-)
create mode 100644 arch/arm/boot/dts/sa1110.dtsi
create mode 100644 arch/arm/boot/dts/simpad.dts
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 5b14518..cbe7046 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -34,6 +34,7 @@ qcom Qualcomm, Inc.
ramtron Ramtron International
samsung Samsung Semiconductor
schindler Schindler
+siemens SIEMENS
simtek
sirf SiRF Technology, Inc.
stericsson ST-Ericsson
diff --git a/arch/arm/boot/dts/sa1110.dtsi b/arch/arm/boot/dts/sa1110.dtsi
new file mode 100644
index 0000000..e1ca379
--- /dev/null
+++ b/arch/arm/boot/dts/sa1110.dtsi
@@ -0,0 +1,72 @@
+/*
+ * sa1110.dtsi - Device Tree Include file for Intel SA1110 SoC
+ *
+ * Copyright (C) 2011 Jochen Friedrich <jochen@scram.de>
+ *
+ * Licensed under GPLv2 or later.
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+ model = "Intel SA1110 SoC";
+ compatible = "intel,sa1110";
+ interrupt-parent = <&aic>;
+
+ cpus {
+ cpu at 0 {
+ compatible = "intel,sa1110";
+ };
+ };
+
+ localbus {
+ compatible = "intel,sa1110-localbus";
+ #address-cells = <2>;
+ #size-cells = <1>;
+
+ ranges = <
+ 0x0 0x0 0x00000000 0x08000000
+ 0x1 0x0 0x08000000 0x08000000
+ 0x2 0x0 0x10000000 0x08000000
+ 0x3 0x0 0x18000000 0x08000000
+ 0x4 0x0 0x40000000 0x08000000
+ 0x5 0x0 0x48000000 0x08000000
+ >;
+ };
+
+ soc {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ uart0: serial at 0x80010000 {
+ compatible = "intel,sa1100-uart";
+ reg = <0x80010000 0x24>;
+ interrupts = <15>;
+ status = "disabled";
+ };
+
+ uart1: serial at 0x80030000 {
+ compatible = "intel,sa1100-uart";
+ reg = <0x80030000 0x24>;
+ interrupts = <16>;
+ status = "disabled";
+ };
+
+ uart2: serial at 0x80050000 {
+ compatible = "intel,sa1100-uart";
+ reg = <0x80050000 0x24>;
+ interrupts = <17>;
+ status = "disabled";
+ };
+
+ aic: interrupt-controller at 0x90050000 {
+ compatible = "intel,sa1110-icr";
+ reg = <0x90050000 0x24>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ interrupt-parent;
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/simpad.dts b/arch/arm/boot/dts/simpad.dts
new file mode 100644
index 0000000..fdd7969
--- /dev/null
+++ b/arch/arm/boot/dts/simpad.dts
@@ -0,0 +1,49 @@
+/dts-v1/;
+/include/ "sa1110.dtsi"
+
+/ {
+ model = "SIEMENS, SIMpad";
+ compatible = "siemens,simpad";
+
+ aliases {
+ serial0 = &uart2;
+ serial1 = &uart0;
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0x0 0x08000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttySA0";
+ };
+
+ localbus {
+ flash at 0,0 {
+ compatible = "cfi-flash";
+ reg = <0 0 0x08000000>;
+ bank-width = <1>;
+ #size-cells = <1>;
+ #address-cells = <1>;
+ };
+
+ flash at 1,0 {
+ compatible = "cfi-flash";
+ reg = <1 0 0x08000000>;
+ bank-width = <1>;
+ #size-cells = <1>;
+ #address-cells = <1>;
+ };
+ };
+
+ soc {
+ uart0: serial at 0x80010000 {
+ status = "okay";
+ };
+
+ uart2: serial at 0x80050000 {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm/mach-sa1100/Kconfig b/arch/arm/mach-sa1100/Kconfig
index 42625e4..31238c3 100644
--- a/arch/arm/mach-sa1100/Kconfig
+++ b/arch/arm/mach-sa1100/Kconfig
@@ -157,6 +157,19 @@ config SA1100_SIMPAD
like CL4 in additional it has a PCMCIA-Slot. For more information
visit <http://www.usa.siemens.com/> or <http://www.siemens.ch/>.
+config SA1100_SIMPAD_DT
+ bool "Simpad with device tree support"
+ select CPU_FREQ_SA1110
+ select SA1100_SIMPAD
+ select USE_OF
+ help
+ The SIEMENS webpad SIMpad is based on the StrongARM 1110. There
+ are two different versions CL4 and SL4. CL4 has 32MB RAM and 16MB
+ FLASH. The SL4 version got 64 MB RAM and 32 MB FLASH and a
+ PCMCIA-Slot. The version for the Germany Telecom (DTAG) is the same
+ like CL4 in additional it has a PCMCIA-Slot. For more information
+ visit <http://www.usa.siemens.com/> or <http://www.siemens.ch/>.
+
config SA1100_SSP
tristate "Generic PIO SSP"
help
diff --git a/arch/arm/mach-sa1100/Makefile.boot b/arch/arm/mach-sa1100/Makefile.boot
index 5a616f6..1d17767 100644
--- a/arch/arm/mach-sa1100/Makefile.boot
+++ b/arch/arm/mach-sa1100/Makefile.boot
@@ -6,3 +6,4 @@ endif
params_phys-y := 0xc0000100
initrd_phys-y := 0xc0800000
+dtb-$(CONFIG_SA1100_SIMPAD_DT) += simpad.dtb
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c
index d3c9d2b..9d6f663 100644
--- a/arch/arm/mach-sa1100/simpad.c
+++ b/arch/arm/mach-sa1100/simpad.c
@@ -10,6 +10,7 @@
#include <linux/string.h>
#include <linux/pm.h>
#include <linux/platform_device.h>
+#include <linux/of_platform.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/io.h>
@@ -211,8 +212,9 @@ static void __init simpad_map_io(void)
sa1100_register_uart_fns(&simpad_port_fns);
sa1100_register_uart(0, 3); /* serial interface */
+#ifndef CONFIG_OF
sa1100_register_uart(1, 1); /* DECT */
-
+#endif
// Reassign UART 1 pins
GAFR |= GPIO_UART_TXD | GPIO_UART_RXD;
GPDR |= GPIO_UART_TXD | GPIO_LDD13 | GPIO_LDD15;
@@ -392,6 +394,31 @@ static int __init simpad_init(void)
arch_initcall(simpad_init);
+#ifdef CONFIG_OF
+const struct of_device_id simpad_bus_match_table[] = {
+ { .compatible = "simple-bus", },
+ { .compatible = "intel,sa1110-localbus", },
+ {} /* Empty terminated list */
+};
+
+static void __init simpad_dt_device_init(void)
+{
+ of_platform_populate(NULL, simpad_bus_match_table, NULL, NULL);
+}
+
+static const char *simpad_dt_board_compat[] __initdata = {
+ "siemens,simpad",
+ NULL
+};
+
+DT_MACHINE_START(simpad_dt, "SIMpad")
+ .timer = &sa1100_timer,
+ .map_io = simpad_map_io,
+ .init_irq = sa1100_init_irq,
+ .init_machine = simpad_dt_device_init,
+ .dt_compat = simpad_dt_board_compat,
+MACHINE_END
+#endif
MACHINE_START(SIMPAD, "Simpad")
/* Maintainer: Holger Freyther */
--
1.7.7.3
WARNING: multiple messages have this Message-ID (diff)
From: Jochen Friedrich <jochen-NIgtFMG+Po8@public.gmane.org>
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: [PATCH] Initial DT support for SIMpad devices.
Date: Sun, 20 Nov 2011 21:37:50 +0100 [thread overview]
Message-ID: <1321821470-32396-1-git-send-email-jochen@scram.de> (raw)
Signed-off-by: Jochen Friedrich <jochen-NIgtFMG+Po8@public.gmane.org>
---
.../devicetree/bindings/vendor-prefixes.txt | 1 +
arch/arm/boot/dts/sa1110.dtsi | 72 ++++++++++++++++++++
arch/arm/boot/dts/simpad.dts | 49 +++++++++++++
arch/arm/mach-sa1100/Kconfig | 13 ++++
arch/arm/mach-sa1100/Makefile.boot | 1 +
arch/arm/mach-sa1100/simpad.c | 29 ++++++++-
6 files changed, 164 insertions(+), 1 deletions(-)
create mode 100644 arch/arm/boot/dts/sa1110.dtsi
create mode 100644 arch/arm/boot/dts/simpad.dts
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 5b14518..cbe7046 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -34,6 +34,7 @@ qcom Qualcomm, Inc.
ramtron Ramtron International
samsung Samsung Semiconductor
schindler Schindler
+siemens SIEMENS
simtek
sirf SiRF Technology, Inc.
stericsson ST-Ericsson
diff --git a/arch/arm/boot/dts/sa1110.dtsi b/arch/arm/boot/dts/sa1110.dtsi
new file mode 100644
index 0000000..e1ca379
--- /dev/null
+++ b/arch/arm/boot/dts/sa1110.dtsi
@@ -0,0 +1,72 @@
+/*
+ * sa1110.dtsi - Device Tree Include file for Intel SA1110 SoC
+ *
+ * Copyright (C) 2011 Jochen Friedrich <jochen-NIgtFMG+Po8@public.gmane.org>
+ *
+ * Licensed under GPLv2 or later.
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+ model = "Intel SA1110 SoC";
+ compatible = "intel,sa1110";
+ interrupt-parent = <&aic>;
+
+ cpus {
+ cpu@0 {
+ compatible = "intel,sa1110";
+ };
+ };
+
+ localbus {
+ compatible = "intel,sa1110-localbus";
+ #address-cells = <2>;
+ #size-cells = <1>;
+
+ ranges = <
+ 0x0 0x0 0x00000000 0x08000000
+ 0x1 0x0 0x08000000 0x08000000
+ 0x2 0x0 0x10000000 0x08000000
+ 0x3 0x0 0x18000000 0x08000000
+ 0x4 0x0 0x40000000 0x08000000
+ 0x5 0x0 0x48000000 0x08000000
+ >;
+ };
+
+ soc {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ uart0: serial@0x80010000 {
+ compatible = "intel,sa1100-uart";
+ reg = <0x80010000 0x24>;
+ interrupts = <15>;
+ status = "disabled";
+ };
+
+ uart1: serial@0x80030000 {
+ compatible = "intel,sa1100-uart";
+ reg = <0x80030000 0x24>;
+ interrupts = <16>;
+ status = "disabled";
+ };
+
+ uart2: serial@0x80050000 {
+ compatible = "intel,sa1100-uart";
+ reg = <0x80050000 0x24>;
+ interrupts = <17>;
+ status = "disabled";
+ };
+
+ aic: interrupt-controller@0x90050000 {
+ compatible = "intel,sa1110-icr";
+ reg = <0x90050000 0x24>;
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ interrupt-parent;
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/simpad.dts b/arch/arm/boot/dts/simpad.dts
new file mode 100644
index 0000000..fdd7969
--- /dev/null
+++ b/arch/arm/boot/dts/simpad.dts
@@ -0,0 +1,49 @@
+/dts-v1/;
+/include/ "sa1110.dtsi"
+
+/ {
+ model = "SIEMENS, SIMpad";
+ compatible = "siemens,simpad";
+
+ aliases {
+ serial0 = &uart2;
+ serial1 = &uart0;
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0x0 0x08000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttySA0";
+ };
+
+ localbus {
+ flash@0,0 {
+ compatible = "cfi-flash";
+ reg = <0 0 0x08000000>;
+ bank-width = <1>;
+ #size-cells = <1>;
+ #address-cells = <1>;
+ };
+
+ flash@1,0 {
+ compatible = "cfi-flash";
+ reg = <1 0 0x08000000>;
+ bank-width = <1>;
+ #size-cells = <1>;
+ #address-cells = <1>;
+ };
+ };
+
+ soc {
+ uart0: serial@0x80010000 {
+ status = "okay";
+ };
+
+ uart2: serial@0x80050000 {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm/mach-sa1100/Kconfig b/arch/arm/mach-sa1100/Kconfig
index 42625e4..31238c3 100644
--- a/arch/arm/mach-sa1100/Kconfig
+++ b/arch/arm/mach-sa1100/Kconfig
@@ -157,6 +157,19 @@ config SA1100_SIMPAD
like CL4 in additional it has a PCMCIA-Slot. For more information
visit <http://www.usa.siemens.com/> or <http://www.siemens.ch/>.
+config SA1100_SIMPAD_DT
+ bool "Simpad with device tree support"
+ select CPU_FREQ_SA1110
+ select SA1100_SIMPAD
+ select USE_OF
+ help
+ The SIEMENS webpad SIMpad is based on the StrongARM 1110. There
+ are two different versions CL4 and SL4. CL4 has 32MB RAM and 16MB
+ FLASH. The SL4 version got 64 MB RAM and 32 MB FLASH and a
+ PCMCIA-Slot. The version for the Germany Telecom (DTAG) is the same
+ like CL4 in additional it has a PCMCIA-Slot. For more information
+ visit <http://www.usa.siemens.com/> or <http://www.siemens.ch/>.
+
config SA1100_SSP
tristate "Generic PIO SSP"
help
diff --git a/arch/arm/mach-sa1100/Makefile.boot b/arch/arm/mach-sa1100/Makefile.boot
index 5a616f6..1d17767 100644
--- a/arch/arm/mach-sa1100/Makefile.boot
+++ b/arch/arm/mach-sa1100/Makefile.boot
@@ -6,3 +6,4 @@ endif
params_phys-y := 0xc0000100
initrd_phys-y := 0xc0800000
+dtb-$(CONFIG_SA1100_SIMPAD_DT) += simpad.dtb
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c
index d3c9d2b..9d6f663 100644
--- a/arch/arm/mach-sa1100/simpad.c
+++ b/arch/arm/mach-sa1100/simpad.c
@@ -10,6 +10,7 @@
#include <linux/string.h>
#include <linux/pm.h>
#include <linux/platform_device.h>
+#include <linux/of_platform.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/io.h>
@@ -211,8 +212,9 @@ static void __init simpad_map_io(void)
sa1100_register_uart_fns(&simpad_port_fns);
sa1100_register_uart(0, 3); /* serial interface */
+#ifndef CONFIG_OF
sa1100_register_uart(1, 1); /* DECT */
-
+#endif
// Reassign UART 1 pins
GAFR |= GPIO_UART_TXD | GPIO_UART_RXD;
GPDR |= GPIO_UART_TXD | GPIO_LDD13 | GPIO_LDD15;
@@ -392,6 +394,31 @@ static int __init simpad_init(void)
arch_initcall(simpad_init);
+#ifdef CONFIG_OF
+const struct of_device_id simpad_bus_match_table[] = {
+ { .compatible = "simple-bus", },
+ { .compatible = "intel,sa1110-localbus", },
+ {} /* Empty terminated list */
+};
+
+static void __init simpad_dt_device_init(void)
+{
+ of_platform_populate(NULL, simpad_bus_match_table, NULL, NULL);
+}
+
+static const char *simpad_dt_board_compat[] __initdata = {
+ "siemens,simpad",
+ NULL
+};
+
+DT_MACHINE_START(simpad_dt, "SIMpad")
+ .timer = &sa1100_timer,
+ .map_io = simpad_map_io,
+ .init_irq = sa1100_init_irq,
+ .init_machine = simpad_dt_device_init,
+ .dt_compat = simpad_dt_board_compat,
+MACHINE_END
+#endif
MACHINE_START(SIMPAD, "Simpad")
/* Maintainer: Holger Freyther */
--
1.7.7.3
next reply other threads:[~2011-11-20 20:37 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-20 20:37 Jochen Friedrich [this message]
2011-11-20 20:37 ` [PATCH] Initial DT support for SIMpad devices Jochen Friedrich
2011-11-21 9:50 ` Jamie Iles
2011-11-21 9:50 ` Jamie Iles
2011-11-21 14:32 ` Jochen Friedrich
2011-11-21 14:32 ` Jochen Friedrich
2011-11-21 14:47 ` Jamie Iles
2011-11-21 14:47 ` Jamie Iles
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1321821470-32396-1-git-send-email-jochen@scram.de \
--to=jochen@scram.de \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.