[PATCH 14/14] ARM: SPEAr320: DT: Add SPEAr 320 HMI board support
Viresh Kumar
viresh.kumar at linaro.org
Sat Nov 10 23:39:36 EST 2012
From: Shiraz Hashim <shiraz.hashim at st.com>
This adds support for SPEAr320-HMI board.
Signed-off-by: Shiraz Hashim <shiraz.hashim at st.com>
Signed-off-by: Viresh Kumar <viresh.kumar at linaro.org>
---
arch/arm/boot/dts/Makefile | 3 +-
arch/arm/boot/dts/spear320-hmi.dts | 305 +++++++++++++++++++++++++++++++++++++
arch/arm/mach-spear3xx/spear320.c | 1 +
3 files changed, 308 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/spear320-hmi.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b994045..c3295b2 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -84,7 +84,8 @@ dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \
spear1340-evb.dtb
dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \
spear310-evb.dtb \
- spear320-evb.dtb
+ spear320-evb.dtb \
+ spear320-hmi.dtb
dtb-$(CONFIG_ARCH_SPEAR6XX)+= spear600-evb.dtb
dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
tegra20-medcom-wide.dtb \
diff --git a/arch/arm/boot/dts/spear320-hmi.dts b/arch/arm/boot/dts/spear320-hmi.dts
new file mode 100644
index 0000000..3075d2d
--- /dev/null
+++ b/arch/arm/boot/dts/spear320-hmi.dts
@@ -0,0 +1,305 @@
+/*
+ * DTS file for SPEAr320 Evaluation Baord
+ *
+ * Copyright 2012 Shiraz Hashim <shiraz.hashim at st.com>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "spear320.dtsi"
+
+/ {
+ model = "ST SPEAr320 HMI Board";
+ compatible = "st,spear320-hmi", "st,spear320";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ memory {
+ reg = <0 0x40000000>;
+ };
+
+ ahb {
+ pinmux at b3000000 {
+ st,pinmux-mode = <4>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ i2c0 {
+ st,pins = "i2c0_grp";
+ st,function = "i2c0";
+ };
+ ssp0 {
+ st,pins = "ssp0_grp";
+ st,function = "ssp0";
+ };
+ uart0 {
+ st,pins = "uart0_grp";
+ st,function = "uart0";
+ };
+ clcd {
+ st,pins = "clcd_grp";
+ st,function = "clcd";
+ };
+ fsmc {
+ st,pins = "fsmc_8bit_grp";
+ st,function = "fsmc";
+ };
+ sdhci {
+ st,pins = "sdhci_cd_12_grp";
+ st,function = "sdhci";
+ };
+ i2s {
+ st,pins = "i2s_grp";
+ st,function = "i2s";
+ };
+ uart1 {
+ st,pins = "uart1_grp";
+ st,function = "uart1";
+ };
+ uart2 {
+ st,pins = "uart2_grp";
+ st,function = "uart2";
+ };
+ can0 {
+ st,pins = "can0_grp";
+ st,function = "can0";
+ };
+ can1 {
+ st,pins = "can1_grp";
+ st,function = "can1";
+ };
+ mii0_1 {
+ st,pins = "rmii0_1_grp";
+ st,function = "mii0_1";
+ };
+ pwm0_1 {
+ st,pins = "pwm0_1_pin_37_38_grp";
+ st,function = "pwm0_1";
+ };
+ pwm2 {
+ st,pins = "pwm2_pin_34_grp";
+ st,function = "pwm2";
+ };
+ };
+ };
+
+ clcd at 90000000 {
+ status = "okay";
+ };
+
+ dma at fc400000 {
+ status = "okay";
+ };
+
+ ehci at e1800000 {
+ status = "okay";
+ };
+
+ fsmc: flash at 4c000000 {
+ status = "okay";
+
+ partition at 0 {
+ label = "xloader";
+ reg = <0x0 0x80000>;
+ };
+ partition at 80000 {
+ label = "u-boot";
+ reg = <0x80000 0x140000>;
+ };
+ partition at 1C0000 {
+ label = "environment";
+ reg = <0x1C0000 0x40000>;
+ };
+ partition at 200000 {
+ label = "dtb";
+ reg = <0x200000 0x40000>;
+ };
+ partition at 240000 {
+ label = "linux";
+ reg = <0x240000 0xC00000>;
+ };
+ partition at E40000 {
+ label = "rootfs";
+ reg = <0xE40000 0x0>;
+ };
+ };
+
+ gpio_keys {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ button at 1 {
+ label = "user button 1";
+ linux,code = <0x100>;
+ gpios = <&stmpegpio 3 0x4>;
+ debounce-interval = <20>;
+ gpio-key,wakeup = <1>;
+ };
+
+ button at 2 {
+ label = "user button 2";
+ linux,code = <0x200>;
+ gpios = <&stmpegpio 2 0x4>;
+ debounce-interval = <20>;
+ gpio-key,wakeup = <1>;
+ };
+ };
+
+ ohci at e1900000 {
+ status = "okay";
+ };
+
+ ohci at e2100000 {
+ status = "okay";
+ };
+
+ pwm: pwm at a8000000 {
+ status = "okay";
+ };
+
+ sdhci at 70000000 {
+ power-gpio = <&gpiopinctrl 50 1>;
+ power_always_enb;
+ status = "okay";
+ };
+
+ smi: flash at fc000000 {
+ status = "okay";
+ clock-rate=<50000000>;
+
+ flash at f8000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0xf8000000 0x800000>;
+ st,smi-fast-mode;
+
+ partition at 0 {
+ label = "xloader";
+ reg = <0x0 0x10000>;
+ };
+ partition at 10000 {
+ label = "u-boot";
+ reg = <0x10000 0x50000>;
+ };
+ partition at 60000 {
+ label = "environment";
+ reg = <0x60000 0x10000>;
+ };
+ partition at 70000 {
+ label = "dtb";
+ reg = <0x70000 0x10000>;
+ };
+ partition at 80000 {
+ label = "linux";
+ reg = <0x80000 0x310000>;
+ };
+ partition at 390000 {
+ label = "rootfs";
+ reg = <0x390000 0x0>;
+ };
+ };
+ };
+
+ spi0: spi at d0100000 {
+ status = "okay";
+ };
+
+ spi1: spi at a5000000 {
+ status = "okay";
+ };
+
+ spi2: spi at a6000000 {
+ status = "okay";
+ };
+
+ usbd at e1100000 {
+ status = "okay";
+ };
+
+ apb {
+ gpio0: gpio at fc980000 {
+ status = "okay";
+ };
+
+ gpio at b3000000 {
+ status = "okay";
+ };
+
+ i2c0: i2c at d0180000 {
+ status = "okay";
+
+ stmpe811 at 41 {
+ compatible = "st,stmpe811";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0x41>;
+ irq-over-gpio;
+ irq-gpios = <&gpiopinctrl 29 0x4>;
+ id = <0>;
+ blocks = <0x5>;
+ irq-trigger = <0x1>;
+
+ stmpegpio: stmpe-gpio {
+ compatible = "stmpe,gpio";
+ reg = <0>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio,norequest-mask = <0xF3>;
+ };
+
+ stmpe610-ts {
+ compatible = "stmpe,ts";
+ reg = <0>;
+ ts,sample-time = <4>;
+ ts,mod-12b = <1>;
+ ts,ref-sel = <0>;
+ ts,adc-freq = <1>;
+ ts,ave-ctrl = <1>;
+ ts,touch-det-delay = <3>;
+ ts,settling = <4>;
+ ts,fraction-z = <7>;
+ ts,i-drive = <1>;
+ };
+ };
+ };
+
+ i2c1: i2c at a7000000 {
+ status = "okay";
+ };
+
+ rtc at fc900000 {
+ status = "okay";
+ };
+
+ serial at d0000000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <>;
+ };
+
+ serial at a3000000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <>;
+ };
+
+ serial at a4000000 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <>;
+ };
+
+ wdt at fc880000 {
+ status = "okay";
+ };
+ };
+ };
+};
diff --git a/arch/arm/mach-spear3xx/spear320.c b/arch/arm/mach-spear3xx/spear320.c
index 707504b..66e3a0c 100644
--- a/arch/arm/mach-spear3xx/spear320.c
+++ b/arch/arm/mach-spear3xx/spear320.c
@@ -247,6 +247,7 @@ static void __init spear320_dt_init(void)
static const char * const spear320_dt_board_compat[] = {
"st,spear320",
"st,spear320-evb",
+ "st,spear320-hmi",
NULL,
};
--
1.7.12.rc2.18.g61b472e
More information about the linux-arm-kernel
mailing list