summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2014-12-10 16:10:22 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2014-12-10 17:25:07 +0100
commit23b22e549ed6ede5b44a948824463daafb6745c3 (patch)
tree0d2fc15132713b6703a122536171264472b6a5d8
parent85f226ee20ede27e72bae20f1dc2ba12e016268b (diff)
rework the device-tree include structure to faciliate several device-tree's depending on HW version. Add a device tree imx6q-apalis-eval_v1_0.dtb for V1.0 HW, imx6q-apalis-eval.dtb working with V1.1 and newer HW.
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-eval.dts277
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-eval_v1_0.dts29
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis-eval.dtsi290
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis.dtsi9
5 files changed, 325 insertions, 281 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 81fedd18003a..928dadc4761c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -127,6 +127,7 @@ dtb-$(CONFIG_ARCH_MXC) += \
imx6dl-sabresd-ldo.dtb \
imx6dl-wandboard.dtb \
imx6q-apalis-eval.dtb \
+ imx6q-apalis-eval_v1_0.dtb \
imx6q-arm2.dtb \
imx6q-nitrogen6x.dtb \
imx6q-nitrogen6_max.dtb \
diff --git a/arch/arm/boot/dts/imx6q-apalis-eval.dts b/arch/arm/boot/dts/imx6q-apalis-eval.dts
index aa3df862454c..6ce793289114 100644
--- a/arch/arm/boot/dts/imx6q-apalis-eval.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-eval.dts
@@ -16,284 +16,9 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include "imx6q.dtsi"
#include "imx6qdl-apalis.dtsi"
+#include "imx6qdl-apalis-eval.dtsi"
/ {
model = "Toradex Apalis iMX6Q on Apalis Evaluation Board";
compatible = "toradex,apalis_imx6q-eval", "toradex,apalis_imx6q", "fsl,imx6q";
-
- aliases {
- rtc0 = &rtc_i2c;
- rtc1 = "/soc/aips-bus@02000000/snvs@020cc000/snvs-rtc-lp@34";
- };
-
- aliases {
- /* the following, together with kernel patches, forces a fixed assignment
- between device id and usdhc controller */
- /* i.e. the eMMC on usdhc3 will be /dev/mmcblk0 */
- mmc0 = &usdhc3; /* eMMC */
- mmc1 = &usdhc1; /* MMC1 8bit slot */
- mmc2 = &usdhc2; /* SD1 4bit slot */
- };
-
- gpio-keys {
- compatible = "gpio-keys";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_gpio_keys>;
-
- wakeup {
- label = "wakeup";
- gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
- linux,code = <KEY_WAKEUP>;
- debounce-interval = <10>;
- gpio-key,wakeup;
- };
- };
-
- pwmleds {
- compatible = "pwm-leds";
- ledpwm1 {
- label = "PWM1";
- pwms = <&pwm1 0 50000>;
- max-brightness = <255>;
- };
-
- ledpwm2 {
- label = "PWM2";
- pwms = <&pwm2 0 50000>;
- max-brightness = <255>;
- };
-
- ledpwm3 {
- label = "PWM3";
- pwms = <&pwm3 0 50000>;
- max-brightness = <255>;
- };
- };
-
- regulators {
- reg_usb_otg_vbus: usb_otg_vbus {
- status = "okay";
- };
-
- reg_usb_host_vbus: usb_host_vbus {
- status = "okay";
- };
- };
-};
-
-&backlight {
-#if 0
- /* PWM polarity: 1 is brightest */
- brightness-levels = <0 4 8 16 32 64 128 255>;
- default-brightness-level = <6>;
-#else
- /* PWM plarity: 0 is brightest */
- brightness-levels = <0 74 128 164 192 210 255>;
- default-brightness-level = <1>;
-#endif
- status = "okay";
-};
-
-/* Apalis SPI1 */
-&ecspi1 {
- status = "okay";
-
- spidev0: spidev@1 {
- compatible = "spidev";
- reg = <0>;
- spi-max-frequency = <50000000>;
- };
-};
-
-/* Apalis SPI2 */
-&ecspi2 {
- status = "okay";
-
- spidev1: spidev@2 {
- compatible = "spidev";
- reg = <0>;
- spi-max-frequency = <50000000>;
- };
-};
-
-&flexcan1 {
- status = "okay";
-};
-
-&flexcan2 {
- status = "okay";
-};
-
-&hdmi_audio {
- status = "okay";
-};
-
-&hdmi_cec {
- status = "okay";
-};
-
-&hdmi_core {
- status = "okay";
-};
-
-&hdmi_video {
- status = "okay";
-};
-
-/*
- * GEN1_I2C: I2C1_SDA/SCL on MXM3 pin 209/211 (e.g. RTC on carrier
- * board)
- */
-&i2c1 {
- status = "okay";
-
- pcap@10 {
- /* TouchRevolution Fusion 7 and 10 multi-touch controller */
- compatible = "touchrevolution,fusion-f0710a";
- reg = <0x10>;
- gpios = <&gpio6 10 0 /* MXM-11, Pen down interrupt */
- &gpio6 9 0 /* MXM-13, Reset */
- >;
- };
-
- pcie-switch@58 {
- compatible = "plx,pex8605";
- reg = <0x58>;
- };
-
- /* M41T0M6 real time clock on carrier board */
- rtc_i2c: rtc@68 {
- compatible = "st,m41t00";
- reg = <0x68>;
- };
-};
-
-/*
- * GEN2_I2C, CAM: I2C3_SDA/SCL on MXM3 pin 201/203 (unused)
- */
-&i2c3 {
- status = "okay";
-};
-
-/*
- * DDC_I2C: I2C2_SDA/SCL on MXM3 pin 205/207
- */
-&i2cddc {
- status = "okay";
-
- hdmi: edid@50 {
- compatible = "fsl,imx6-hdmi-i2c";
- reg = <0x50>;
- };
-};
-
-&iomuxc {
- /*
- * Mux the Apalis GPIOs, GPIO7 used for PCIe reset,
- * GPIO5, 6 used by optional fusion_F0710A kernel module
- */
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_apalis_gpio1 &pinctrl_apalis_gpio2
- &pinctrl_apalis_gpio3 &pinctrl_apalis_gpio4
- &pinctrl_apalis_gpio5 &pinctrl_apalis_gpio6
- &pinctrl_apalis_gpio7 &pinctrl_apalis_gpio8>;
-};
-
-&lcd {
- status = "okay";
-};
-
-&mxcfb1 {
- status = "okay";
-};
-
-&mxcfb2 {
- status = "okay";
-};
-
-&mxcfb3 {
- status = "okay";
-};
-
-&mxcfb4 {
- status = "okay";
-};
-
-&pcie {
- reset-gpio = <&gpio1 2 0>;
- reset-ep-gpio = <&gpio1 28 0>;
- status = "okay";
-};
-
-&pwm1 {
- status = "okay";
-};
-
-&pwm2 {
- status = "okay";
-};
-
-&pwm3 {
- status = "okay";
-};
-
-&pwm4 {
- status = "okay";
-};
-
-&sata {
- status = "okay";
-};
-
-&sound_hdmi {
- status = "okay";
-};
-
-&sound_spdif {
- status = "okay";
-};
-
-&spdif {
- status = "okay";
-};
-
-&uart1 {
- status = "okay";
-};
-
-&uart2 {
- status = "okay";
-#if 0
- linux,rs485-enabled-at-boot-time;
-#endif
-};
-
-&uart4 {
- status = "okay";
-};
-
-&uart5 {
- status = "okay";
-};
-
-&usbh1 {
- status = "okay";
-};
-
-&usbotg {
- status = "okay";
-};
-
-/* MMC1 */
-&usdhc1 {
- status = "okay";
-};
-
-/* SD1 */
-&usdhc2 {
- status = "okay";
-};
-
-&vdac {
- status = "okay";
};
diff --git a/arch/arm/boot/dts/imx6q-apalis-eval_v1_0.dts b/arch/arm/boot/dts/imx6q-apalis-eval_v1_0.dts
new file mode 100644
index 000000000000..277b8847f837
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-apalis-eval_v1_0.dts
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2014 Toradex AG
+ * Copyright 2012 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * 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 <dt-bindings/interrupt-controller/irq.h>
+#include "imx6q.dtsi"
+/* on HW V1.0 all RxD/TxD lines are routed in a DCE way, all control lines (RTS/...)
+ are then not routed as given in the module specification and thus unusable.
+ The following define configures the UARTs to RxD/TxD correctly */
+#define USE_UART_IN_DCE_MODE
+#include "imx6qdl-apalis.dtsi"
+#include "imx6qdl-apalis-eval.dtsi"
+
+/ {
+ model = "Toradex Apalis iMX6Q on Apalis Evaluation Board";
+ compatible = "toradex,apalis_imx6q-eval", "toradex,apalis_imx6q", "fsl,imx6q";
+};
diff --git a/arch/arm/boot/dts/imx6qdl-apalis-eval.dtsi b/arch/arm/boot/dts/imx6qdl-apalis-eval.dtsi
new file mode 100644
index 000000000000..6b5fee51c1d5
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-apalis-eval.dtsi
@@ -0,0 +1,290 @@
+/*
+ * Copyright 2014 Toradex AG
+ * Copyright 2012 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * 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
+ */
+
+/ {
+ aliases {
+ rtc0 = &rtc_i2c;
+ rtc1 = "/soc/aips-bus@02000000/snvs@020cc000/snvs-rtc-lp@34";
+ };
+
+ aliases {
+ /* the following, together with kernel patches, forces a fixed assignment
+ between device id and usdhc controller */
+ /* i.e. the eMMC on usdhc3 will be /dev/mmcblk0 */
+ mmc0 = &usdhc3; /* eMMC */
+ mmc1 = &usdhc1; /* MMC1 8bit slot */
+ mmc2 = &usdhc2; /* SD1 4bit slot */
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpio_keys>;
+
+ wakeup {
+ label = "wakeup";
+ gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WAKEUP>;
+ debounce-interval = <10>;
+ gpio-key,wakeup;
+ };
+ };
+
+ pwmleds {
+ compatible = "pwm-leds";
+ ledpwm1 {
+ label = "PWM1";
+ pwms = <&pwm1 0 50000>;
+ max-brightness = <255>;
+ };
+
+ ledpwm2 {
+ label = "PWM2";
+ pwms = <&pwm2 0 50000>;
+ max-brightness = <255>;
+ };
+
+ ledpwm3 {
+ label = "PWM3";
+ pwms = <&pwm3 0 50000>;
+ max-brightness = <255>;
+ };
+ };
+
+ regulators {
+ reg_usb_otg_vbus: usb_otg_vbus {
+ status = "okay";
+ };
+
+ reg_usb_host_vbus: usb_host_vbus {
+ status = "okay";
+ };
+ };
+};
+
+&backlight {
+#if 0
+ /* PWM polarity: 1 is brightest */
+ brightness-levels = <0 4 8 16 32 64 128 255>;
+ default-brightness-level = <6>;
+#else
+ /* PWM plarity: 0 is brightest */
+ brightness-levels = <0 74 128 164 192 210 255>;
+ default-brightness-level = <1>;
+#endif
+ status = "okay";
+};
+
+/* Apalis SPI1 */
+&ecspi1 {
+ status = "okay";
+
+ spidev0: spidev@1 {
+ compatible = "spidev";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+ };
+};
+
+/* Apalis SPI2 */
+&ecspi2 {
+ status = "okay";
+
+ spidev1: spidev@2 {
+ compatible = "spidev";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+ };
+};
+
+&flexcan1 {
+ status = "okay";
+};
+
+&flexcan2 {
+ status = "okay";
+};
+
+&hdmi_audio {
+ status = "okay";
+};
+
+&hdmi_cec {
+ status = "okay";
+};
+
+&hdmi_core {
+ status = "okay";
+};
+
+&hdmi_video {
+ status = "okay";
+};
+
+/*
+ * GEN1_I2C: I2C1_SDA/SCL on MXM3 pin 209/211 (e.g. RTC on carrier
+ * board)
+ */
+&i2c1 {
+ status = "okay";
+
+ pcap@10 {
+ /* TouchRevolution Fusion 7 and 10 multi-touch controller */
+ compatible = "touchrevolution,fusion-f0710a";
+ reg = <0x10>;
+ gpios = <&gpio6 10 0 /* MXM-11, Pen down interrupt */
+ &gpio6 9 0 /* MXM-13, Reset */
+ >;
+ };
+
+ pcie-switch@58 {
+ compatible = "plx,pex8605";
+ reg = <0x58>;
+ };
+
+ /* M41T0M6 real time clock on carrier board */
+ rtc_i2c: rtc@68 {
+ compatible = "st,m41t00";
+ reg = <0x68>;
+ };
+};
+
+/*
+ * GEN2_I2C, CAM: I2C3_SDA/SCL on MXM3 pin 201/203 (unused)
+ */
+&i2c3 {
+ status = "okay";
+};
+
+/*
+ * DDC_I2C: I2C2_SDA/SCL on MXM3 pin 205/207
+ */
+&i2cddc {
+ status = "okay";
+
+ hdmi: edid@50 {
+ compatible = "fsl,imx6-hdmi-i2c";
+ reg = <0x50>;
+ };
+};
+
+&iomuxc {
+ /*
+ * Mux the Apalis GPIOs, GPIO7 used for PCIe reset,
+ * GPIO5, 6 used by optional fusion_F0710A kernel module
+ */
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_apalis_gpio1 &pinctrl_apalis_gpio2
+ &pinctrl_apalis_gpio3 &pinctrl_apalis_gpio4
+ &pinctrl_apalis_gpio5 &pinctrl_apalis_gpio6
+ &pinctrl_apalis_gpio7 &pinctrl_apalis_gpio8>;
+};
+
+&lcd {
+ status = "okay";
+};
+
+&mxcfb1 {
+ status = "okay";
+};
+
+&mxcfb2 {
+ status = "okay";
+};
+
+&mxcfb3 {
+ status = "okay";
+};
+
+&mxcfb4 {
+ status = "okay";
+};
+
+&pcie {
+ reset-gpio = <&gpio1 2 0>;
+ reset-ep-gpio = <&gpio1 28 0>;
+ status = "okay";
+};
+
+&pwm1 {
+ status = "okay";
+};
+
+&pwm2 {
+ status = "okay";
+};
+
+&pwm3 {
+ status = "okay";
+};
+
+&pwm4 {
+ status = "okay";
+};
+
+&sata {
+ status = "okay";
+};
+
+&sound_hdmi {
+ status = "okay";
+};
+
+&sound_spdif {
+ status = "okay";
+};
+
+&spdif {
+ status = "okay";
+};
+
+&uart1 {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+#if 0
+ linux,rs485-enabled-at-boot-time;
+#endif
+};
+
+&uart4 {
+ status = "okay";
+};
+
+&uart5 {
+ status = "okay";
+};
+
+&usbh1 {
+ status = "okay";
+};
+
+&usbotg {
+ status = "okay";
+};
+
+/* MMC1 */
+&usdhc1 {
+ status = "okay";
+};
+
+/* SD1 */
+&usdhc2 {
+ status = "okay";
+};
+
+&vdac {
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index ade6d88a86a7..384bc7553b6a 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -773,10 +773,9 @@
status = "okay";
};
-#define USE_UART_IN_DTE_MODE /* on HW V1.1 */
&uart1 {
pinctrl-names = "default";
-#ifdef USE_UART_IN_DTE_MODE
+#ifndef USE_UART_IN_DCE_MODE
pinctrl-0 = <&pinctrl_uart1_t1 &pinctrl_uart1_t2>;
fsl,dte-mode;
fsl,uart-has-rtscts;
@@ -788,7 +787,7 @@
&uart2 {
pinctrl-names = "default";
-#ifdef USE_UART_IN_DTE_MODE
+#ifndef USE_UART_IN_DCE_MODE
pinctrl-0 = <&pinctrl_uart2_t2>;
fsl,dte-mode;
fsl,uart-has-rtscts;
@@ -800,7 +799,7 @@
&uart4 {
pinctrl-names = "default";
-#ifdef USE_UART_IN_DTE_MODE
+#ifndef USE_UART_IN_DCE_MODE
pinctrl-0 = <&pinctrl_uart4_t1>;
fsl,dte-mode;
#else
@@ -811,7 +810,7 @@
&uart5 {
pinctrl-names = "default";
-#ifdef USE_UART_IN_DTE_MODE
+#ifndef USE_UART_IN_DCE_MODE
pinctrl-0 = <&pinctrl_uart5_t2>;
fsl,dte-mode;
#else