Import SolidRun Cubox-i device tree files from Linux 5.4 to allow the
use of Driver Model and Device Tree.

Signed-off-by: Walter Lozano <[email protected]>
---
 arch/arm/dts/Makefile                 |   2 +
 arch/arm/dts/imx6dl-cubox-i.dts       |  51 +++++
 arch/arm/dts/imx6q-cubox-i.dts        |  59 ++++++
 arch/arm/dts/imx6qdl-cubox-i.dtsi     | 269 ++++++++++++++++++++++++++
 arch/arm/dts/imx6qdl-sr-som-brcm.dtsi | 144 ++++++++++++++
 arch/arm/dts/imx6qdl-sr-som-emmc.dtsi |  70 +++++++
 arch/arm/dts/imx6qdl-sr-som-ti.dtsi   | 170 ++++++++++++++++
 arch/arm/dts/imx6qdl-sr-som.dtsi      | 121 ++++++++++++
 8 files changed, 886 insertions(+)
 create mode 100644 arch/arm/dts/imx6dl-cubox-i.dts
 create mode 100644 arch/arm/dts/imx6q-cubox-i.dts
 create mode 100644 arch/arm/dts/imx6qdl-cubox-i.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-sr-som-brcm.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-sr-som-emmc.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-sr-som-ti.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-sr-som.dtsi

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 62da168ef8..b37673d6aa 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -560,6 +560,7 @@ dtb-$(CONFIG_MX6Q) += \
        imx6q-tbs2910.dtb
 
 dtb-$(CONFIG_MX6QDL) += \
+       imx6dl-cubox-i.dtb \
        imx6dl-dhcom-pdk2.dtb \
        imx6dl-icore.dtb \
        imx6dl-icore-mipi.dtb \
@@ -569,6 +570,7 @@ dtb-$(CONFIG_MX6QDL) += \
        imx6dl-sabresd.dtb \
        imx6dl-wandboard-revb1.dtb \
        imx6q-cm-fx6.dtb \
+       imx6q-cubox-i.dtb \
        imx6q-dhcom-pdk2.dtb \
        imx6q-icore.dtb \
        imx6q-icore-mipi.dtb \
diff --git a/arch/arm/dts/imx6dl-cubox-i.dts b/arch/arm/dts/imx6dl-cubox-i.dts
new file mode 100644
index 0000000000..2b1b3e193f
--- /dev/null
+++ b/arch/arm/dts/imx6dl-cubox-i.dts
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2014 Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+/dts-v1/;
+
+#include "imx6dl.dtsi"
+#include "imx6qdl-sr-som.dtsi"
+#include "imx6qdl-sr-som-brcm.dtsi"
+#include "imx6qdl-cubox-i.dtsi"
+
+/ {
+       model = "SolidRun Cubox-i Solo/DualLite";
+       compatible = "solidrun,cubox-i/dl", "fsl,imx6dl";
+};
diff --git a/arch/arm/dts/imx6q-cubox-i.dts b/arch/arm/dts/imx6q-cubox-i.dts
new file mode 100644
index 0000000000..1c7b262e37
--- /dev/null
+++ b/arch/arm/dts/imx6q-cubox-i.dts
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2014 Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-sr-som.dtsi"
+#include "imx6qdl-sr-som-brcm.dtsi"
+#include "imx6qdl-cubox-i.dtsi"
+
+/ {
+       model = "SolidRun Cubox-i Dual/Quad";
+       compatible = "solidrun,cubox-i/q", "fsl,imx6q";
+};
+
+&sata {
+       status = "okay";
+       fsl,transmit-level-mV = <1104>;
+       fsl,transmit-boost-mdB = <0>;
+       fsl,transmit-atten-16ths = <9>;
+       fsl,no-spread-spectrum;
+};
diff --git a/arch/arm/dts/imx6qdl-cubox-i.dtsi 
b/arch/arm/dts/imx6qdl-cubox-i.dtsi
new file mode 100644
index 0000000000..e3be453d8a
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-cubox-i.dtsi
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2014 Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       /* Will be filled by the bootloader */
+       memory@10000000 {
+               device_type = "memory";
+               reg = <0x10000000 0>;
+       };
+
+       ir_recv: ir-receiver {
+               compatible = "gpio-ir-receiver";
+               gpios = <&gpio3 9 1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_cubox_i_ir>;
+       };
+
+       pwmleds {
+               compatible = "pwm-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_cubox_i_pwm1>;
+
+               front {
+                       active-low;
+                       label = "imx6:red:front";
+                       max-brightness = <248>;
+                       pwms = <&pwm1 0 50000>;
+               };
+       };
+
+       v_5v0: regulator-v-5v0 {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "v_5v0";
+       };
+
+       v_usb2: regulator-v-usb2 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_cubox_i_usbh1_vbus>;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "v_usb2";
+               vin-supply = <&v_5v0>;
+       };
+
+       v_usb1: regulator-v-usb1 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_cubox_i_usbotg_vbus>;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "v_usb1";
+               vin-supply = <&v_5v0>;
+       };
+
+       sound-spdif {
+               compatible = "fsl,imx-audio-spdif";
+               model = "Integrated SPDIF";
+               /* IMX6 doesn't implement this yet */
+               spdif-controller = <&spdif>;
+               spdif-out;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&pinctrl_gpio_key>;
+               pinctrl-names = "default";
+
+               button_0 {
+                       label = "Button 0";
+                       gpios = <&gpio3 8 GPIO_ACTIVE_LOW>;
+                       linux,code = <BTN_0>;
+               };
+       };
+};
+
+&hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_cubox_i_hdmi>;
+       ddc-i2c-bus = <&i2c2>;
+       status = "okay";
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_cubox_i_i2c2>;
+       status = "okay";
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_cubox_i_i2c3>;
+
+       status = "okay";
+
+       rtc@68 {
+               compatible = "nxp,pcf8523";
+               reg = <0x68>;
+       };
+};
+
+&iomuxc {
+       cubox_i {
+               pinctrl_cubox_i_hdmi: cubox-i-hdmi {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
+                       >;
+               };
+
+               pinctrl_cubox_i_i2c2: cubox-i-i2c2 {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
+                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
+                       >;
+               };
+
+               pinctrl_cubox_i_i2c3: cubox-i-i2c3 {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
+                               MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
+                       >;
+               };
+
+               pinctrl_cubox_i_ir: cubox-i-ir {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000
+                       >;
+               };
+
+               pinctrl_cubox_i_pwm1: cubox-i-pwm1-front-led {
+                       fsl,pins = <MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0>;
+               };
+
+               pinctrl_cubox_i_spdif: cubox-i-spdif {
+                       fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
+               };
+
+               pinctrl_cubox_i_usbh1: cubox-i-usbh1 {
+                       fsl,pins = <MX6QDL_PAD_GPIO_3__USB_H1_OC 0x1b0b0>;
+               };
+
+               pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus {
+                       fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x4001b0b0>;
+               };
+
+               pinctrl_cubox_i_usbotg: cubox-i-usbotg {
+                       /*
+                        * The Cubox-i pulls ID low, but as it's pointless
+                        * leaving it as a pull-up, even if it is just 10uA.
+                        */
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059
+                               MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
+                       >;
+               };
+
+               pinctrl_cubox_i_usbotg_vbus: cubox-i-usbotg-vbus {
+                       fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x4001b0b0>;
+               };
+
+               pinctrl_cubox_i_usdhc2_aux: cubox-i-usdhc2-aux {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_4__GPIO1_IO04    0x1f071
+                               MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b071
+                       >;
+               };
+
+               pinctrl_cubox_i_usdhc2: cubox-i-usdhc2 {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD2_CMD__SD2_CMD    0x17059
+                               MX6QDL_PAD_SD2_CLK__SD2_CLK    0x10059
+                               MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
+                               MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
+                               MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
+                               MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059
+                       >;
+               };
+
+               pinctrl_gpio_key: gpio-key {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_DA8__GPIO3_IO08  0x17059
+                       >;
+               };
+       };
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&spdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_cubox_i_spdif>;
+       status = "okay";
+};
+
+&usbh1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_cubox_i_usbh1>;
+       vbus-supply = <&v_usb2>;
+       status = "okay";
+};
+
+&usbotg {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_cubox_i_usbotg>;
+       vbus-supply = <&v_usb1>;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_cubox_i_usdhc2_aux &pinctrl_cubox_i_usdhc2>;
+       vmmc-supply = <&vcc_3v3>;
+       cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&vcc_3v3 {
+       vin-supply = <&v_5v0>;
+};
diff --git a/arch/arm/dts/imx6qdl-sr-som-brcm.dtsi 
b/arch/arm/dts/imx6qdl-sr-som-brcm.dtsi
new file mode 100644
index 0000000000..b55af61dfe
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-sr-som-brcm.dtsi
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2013,2014 Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+#include <dt-bindings/gpio/gpio.h>
+/ {
+       clk_brcm: brcm-clock {
+               compatible = "gpio-gate-clock";
+               #clock-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_microsom_brcm_osc>;
+               enable-gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
+       };
+
+       reg_brcm: brcm-reg {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio3 19 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_microsom_brcm_reg>;
+               regulator-name = "brcm_reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <200000>;
+       };
+
+       usdhc1_pwrseq: usdhc1_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio5 26 GPIO_ACTIVE_LOW>,
+                             <&gpio6 0 GPIO_ACTIVE_LOW>;
+               clocks = <&clk_brcm>;
+               clock-names = "ext_clock";
+       };
+};
+
+&iomuxc {
+       microsom {
+               pinctrl_microsom_brcm_bt: microsom-brcm-bt {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00       
0x40013070
+                               MX6QDL_PAD_CSI0_DAT15__GPIO6_IO01       
0x40013070
+                               MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04       
0x40013070
+                       >;
+               };
+
+               pinctrl_microsom_brcm_osc: microsom-brcm-osc {
+                       fsl,pins = <
+                               MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05      
0x40013070
+                       >;
+               };
+
+               pinctrl_microsom_brcm_reg: microsom-brcm-reg {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D19__GPIO3_IO19          
0x40013070
+                       >;
+               };
+
+               pinctrl_microsom_brcm_wifi: microsom-brcm-wifi {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_8__XTALOSC_REF_CLK_32K  0x1b0b0
+                               MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20     
0x40013070
+                               MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26        
0x40013070
+                               MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27        
0x40013070
+                       >;
+               };
+
+               pinctrl_microsom_uart4: microsom-uart4 {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
+                               MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
+                               MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
+                               MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
+                       >;
+               };
+
+               pinctrl_microsom_usdhc1: microsom-usdhc1 {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD1_CMD__SD1_CMD    0x17059
+                               MX6QDL_PAD_SD1_CLK__SD1_CLK    0x10059
+                               MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059
+                               MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059
+                               MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059
+                               MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059
+                       >;
+               };
+       };
+};
+
+/* UART4 - Connected to optional BRCM Wifi/BT/FM */
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_microsom_brcm_bt &pinctrl_microsom_uart4>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+/* USDHC1 - Connected to optional BRCM Wifi/BT/FM */
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_microsom_brcm_wifi &pinctrl_microsom_usdhc1>;
+       bus-width = <4>;
+       mmc-pwrseq = <&usdhc1_pwrseq>;
+       keep-power-in-suspend;
+       no-1-8-v;
+       non-removable;
+       vmmc-supply = <&reg_brcm>;
+       status = "okay";
+};
diff --git a/arch/arm/dts/imx6qdl-sr-som-emmc.dtsi 
b/arch/arm/dts/imx6qdl-sr-som-emmc.dtsi
new file mode 100644
index 0000000000..5f3b8baab2
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-sr-som-emmc.dtsi
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2013,2014 Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+&iomuxc {
+       microsom {
+               pinctrl_microsom_usdhc3: microsom-usdhc3 {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD3_CMD__SD3_CMD    0x17059
+                               MX6QDL_PAD_SD3_CLK__SD3_CLK    0x10059
+                               MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
+                               MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
+                               MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
+                               MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
+                               MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
+                               MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
+                               MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
+                               MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
+                               MX6QDL_PAD_SD3_RST__SD3_RESET  0x17059
+                       >;
+               };
+       };
+};
+
+/* USDHC3 - eMMC */
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_microsom_usdhc3>;
+       bus-width = <8>;
+       non-removable;
+       vmmc-supply = <&vcc_3v3>;
+       status = "okay";
+};
diff --git a/arch/arm/dts/imx6qdl-sr-som-ti.dtsi 
b/arch/arm/dts/imx6qdl-sr-som-ti.dtsi
new file mode 100644
index 0000000000..44a97ba93a
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-sr-som-ti.dtsi
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2013,2014 Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       nvcc_sd1: regulator-nvcc-sd1 {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-name = "nvcc_sd1";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_3v3>;
+       };
+
+       clk_ti_wifi: ti-wifi-clock {
+               /* This is a hack around the kernel - using "fixed clock"
+                * results in the "pinctrl" properties being ignored, and
+                * the clock not being output.  Instead, use a gated clock
+                * and the unrouted WL_XTAL_PU gpio.
+                */
+               compatible = "gpio-gate-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_microsom_ti_clk>;
+               enable-gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
+       };
+
+       pwrseq_ti_wifi: ti-wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_microsom_ti_wifi_en>;
+               reset-gpios = <&gpio5 26 GPIO_ACTIVE_LOW>;
+               post-power-on-delay-ms = <200>;
+               clocks = <&clk_ti_wifi>;
+               clock-names = "ext_clock";
+       };
+};
+
+&iomuxc {
+       microsom {
+               pinctrl_microsom_ti_bt: microsom-ti-bt {
+                       fsl,pins = <
+                               /* BT_EN_SOC */
+                               MX6QDL_PAD_CSI0_DAT14__GPIO6_IO00       
0x40013070
+                       >;
+               };
+
+               pinctrl_microsom_ti_clk: microsom-ti-clk {
+                       fsl,pins = <
+                               /* EXT_32K */
+                               MX6QDL_PAD_GPIO_8__XTALOSC_REF_CLK_32K  0x1b0b0
+                               /* WL_XTAL_PU (unrouted) */
+                               MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x40013070
+                       >;
+               };
+
+               pinctrl_microsom_ti_wifi_en: microsom-ti-wifi-en {
+                       fsl,pins = <
+                               /* WLAN_EN_SOC */
+                               MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26        
0x40013070
+                       >;
+               };
+
+               pinctrl_microsom_ti_wifi_irq: microsom-ti-wifi-irq {
+                       fsl,pins = <
+                               /* WLAN_IRQ */
+                               MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04       
0x40013070
+                       >;
+               };
+
+               pinctrl_microsom_uart4: microsom-uart4 {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
+                               MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
+                               MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
+                               MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
+                       >;
+               };
+
+               pinctrl_microsom_usdhc1: microsom-usdhc1 {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD1_CMD__SD1_CMD    0x17059
+                               MX6QDL_PAD_SD1_CLK__SD1_CLK    0x10059
+                               MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059
+                               MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059
+                               MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059
+                               MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059
+                       >;
+               };
+       };
+};
+
+/* UART4 - Connected to optional TI Wi-Fi/BT/FM */
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_microsom_uart4>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "ti,wl1837-st";
+               clocks = <&clk_ti_wifi>;
+               clock-names = "ext_clock";
+               enable-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_microsom_ti_bt>;
+       };
+};
+
+/* USDHC1 - Connected to optional TI Wi-Fi/BT/FM */
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_microsom_usdhc1>;
+       bus-width = <4>;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&pwrseq_ti_wifi>;
+       non-removable;
+       vmmc-supply = <&vcc_3v3>;
+       /* vqmmc-supply = <&nvcc_sd1>; - MMC layer doesn't like it! */
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       wlcore@2 {
+               compatible = "ti,wl1837";
+               reg = <2>;
+               interrupts-extended = <&gpio6 4 IRQ_TYPE_LEVEL_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_microsom_ti_wifi_irq>;
+       };
+};
diff --git a/arch/arm/dts/imx6qdl-sr-som.dtsi b/arch/arm/dts/imx6qdl-sr-som.dtsi
new file mode 100644
index 0000000000..6d7f6b9035
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-sr-som.dtsi
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2013,2014 Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       vcc_3v3: regulator-vcc-3v3 {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-name = "vcc_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_microsom_enet_ar8035>;
+       phy-mode = "rgmii-id";
+       phy-reset-duration = <2>;
+       phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&iomuxc {
+       microsom {
+               pinctrl_microsom_enet_ar8035: microsom-enet-ar8035 {
+                       fsl,pins = <
+                               MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b8b0
+                               MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
+                               /* AR8035 reset */
+                               MX6QDL_PAD_KEY_ROW4__GPIO4_IO15         0x130b0
+                               /* AR8035 interrupt */
+                               MX6QDL_PAD_DI0_PIN2__GPIO4_IO18         0x1b0b0
+                               /* GPIO16 -> AR8035 25MHz */
+                               MX6QDL_PAD_GPIO_16__ENET_REF_CLK        
0x4001b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x13030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
+                               /* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
+                               MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x0a0b1
+                               /* AR8035 pin strapping: IO voltage: pull up */
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               /* AR8035 pin strapping: PHYADDR#0: pull down */
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x13030
+                               /* AR8035 pin strapping: PHYADDR#1: pull down */
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x13030
+                               /* AR8035 pin strapping: MODE#1: pull up */
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               /* AR8035 pin strapping: MODE#3: pull up */
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               /* AR8035 pin strapping: MODE#0: pull down */
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x13030
+
+                               /*
+                                * As the RMII pins are also connected to RGMII
+                                * so that an AR8030 can be placed, set these
+                                * to high-z with the same pulls as above.
+                                * Use the GPIO settings to avoid changing the
+                                * input select registers.
+                                */
+                               MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25      0x03000
+                               MX6QDL_PAD_ENET_RXD0__GPIO1_IO27        0x03000
+                               MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x03000
+                       >;
+               };
+
+               pinctrl_microsom_uart1: microsom-uart1 {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA    0x1b0b1
+                               MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA    0x1b0b1
+                       >;
+               };
+       };
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_microsom_uart1>;
+       status = "okay";
+};
-- 
2.20.1

_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to