MLK-17147 arm64: dts: imx8mq: Add DDR3l and DDR4 ARM2 boards support
authorYe Li <ye.li@nxp.com>
Mon, 4 Dec 2017 06:05:28 +0000 (00:05 -0600)
committerNitin Garg <nitin.garg@nxp.com>
Tue, 20 Mar 2018 19:51:09 +0000 (14:51 -0500)
Add two DTS files for supporting DDR3l and DDR4 ARM2 boards. Basic
nodes like UART, SD/eMMC, i2c, Ethernet are added.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/fsl-imx8mq-ddr3l-arm2.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/fsl-imx8mq-ddr4-arm2.dts [new file with mode: 0644]

index 3d87497..e9089f6 100644 (file)
@@ -47,7 +47,9 @@ dtb-$(CONFIG_ARCH_FSL_IMX8QXP) += fsl-imx8qxp-lpddr4-arm2.dtb \
                                  fsl-imx8qxp-lpddr4-arm2-wm8962.dtb \
                                  fsl-imx8qxp-lpddr4-arm2-dsi-adv7535.dtb \
                                  fsl-imx8qxp-lpddr4-arm2-dsi-rm67191.dtb
-dtb-$(CONFIG_ARCH_FSL_IMX8MQ) += fsl-imx8mq-evk.dtb \
+dtb-$(CONFIG_ARCH_FSL_IMX8MQ) += fsl-imx8mq-ddr3l-arm2.dtb \
+                                fsl-imx8mq-ddr4-arm2.dtb \
+                                fsl-imx8mq-evk.dtb \
                                 fsl-imx8mq-evk-m4.dtb \
                                 fsl-imx8mq-evk-pcie1-m2.dtb \
                                 fsl-imx8mq-evk-lcdif-adv7535.dtb \
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8mq-ddr3l-arm2.dts b/arch/arm64/boot/dts/freescale/fsl-imx8mq-ddr3l-arm2.dts
new file mode 100644 (file)
index 0000000..4d0c4c9
--- /dev/null
@@ -0,0 +1,369 @@
+/*
+ * Copyright 2017 NXP
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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.
+ */
+
+/dts-v1/;
+
+#include "fsl-imx8mq.dtsi"
+
+/ {
+       model = "Freescale i.MX8MQ DDR3L ARM2";
+       compatible = "fsl,imx8mq-evk", "fsl,imx8mq";
+
+       chosen {
+               bootargs = "console=ttymxc0,115200 earlycon=ec_imx6q,0x30860000,115200";
+               stdout-path = &uart1;
+       };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               reg_usdhc2_vmmc: usdhc2_vmmc {
+                       compatible = "regulator-fixed";
+                       regulator-name = "VSD_3V3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+       };
+
+       busfreq {
+               status = "disabled";
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+
+       imx8mq-arm2 {
+               pinctrl_fec1: fec1grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC         0x3
+                               MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO       0x23
+                               MX8MQ_IOMUXC_ENET_TD2_ENET1_TX_CLK      0x4000001f
+                               MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1   0x56
+                               MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0   0x56
+                               MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1   0x56
+                               MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0   0x56
+                               MX8MQ_IOMUXC_ENET_RXC_ENET1_RX_ER       0x56
+                               MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x56
+                               MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x56
+                       >;
+               };
+
+               pinctrl_i2c1: i2c1grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL                  0x4000007f
+                               MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA                  0x4000007f
+                       >;
+               };
+
+               pinctrl_i2c2: i2c2grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL                  0x4000007f
+                               MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA                  0x4000007f
+                       >;
+               };
+
+
+               pinctrl_qspi: qspigrp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_NAND_ALE_QSPI_A_SCLK       0x82
+                               MX8MQ_IOMUXC_NAND_CLE_QSPI_B_SCLK       0x82
+                               MX8MQ_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B    0x82
+                               MX8MQ_IOMUXC_NAND_CE2_B_QSPI_B_SS0_B    0x82
+                               MX8MQ_IOMUXC_NAND_DATA00_QSPI_A_DATA0   0x82
+                               MX8MQ_IOMUXC_NAND_DATA01_QSPI_A_DATA1   0x82
+                               MX8MQ_IOMUXC_NAND_DATA02_QSPI_A_DATA2   0x82
+                               MX8MQ_IOMUXC_NAND_DATA03_QSPI_A_DATA3   0x82
+                               MX8MQ_IOMUXC_NAND_DATA04_QSPI_B_DATA0   0x82
+                               MX8MQ_IOMUXC_NAND_DATA05_QSPI_B_DATA1   0x82
+                               MX8MQ_IOMUXC_NAND_DATA06_QSPI_B_DATA2   0x82
+                               MX8MQ_IOMUXC_NAND_DATA07_QSPI_B_DATA3   0x82
+
+                       >;
+               };
+
+               pinctrl_uart1: uart1grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX             0x79
+                               MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX             0x79
+                       >;
+               };
+
+               pinctrl_usdhc1: usdhc1grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x83
+                               MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xc3
+                               MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xc3
+                               MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x83
+                               MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
+                       >;
+               };
+
+               pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x85
+                               MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xc5
+                               MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xc5
+                               MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x85
+                               MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
+                       >;
+               };
+
+               pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x87
+                               MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xc7
+                               MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xc7
+                               MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x87
+                               MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
+                       >;
+               };
+
+               pinctrl_usdhc2_gpio: usdhc2grpgpio {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12        0x41
+                               MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19     0x41
+                       >;
+               };
+
+               pinctrl_usdhc2: usdhc2grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK                 0x83
+                               MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD                 0xc3
+                               MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0             0xc3
+                               MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1             0xc3
+                               MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2             0xc3
+                               MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3             0xc3
+                               MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0xc1
+                       >;
+               };
+
+               pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK                 0x85
+                               MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD                 0xc5
+                               MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0             0xc5
+                               MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1             0xc5
+                               MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2             0xc5
+                               MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3             0xc5
+                               MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0xc1
+                       >;
+               };
+
+               pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK                 0x87
+                               MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD                 0xc7
+                               MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0             0xc7
+                               MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1             0xc7
+                               MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2             0xc7
+                               MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3             0xc7
+                               MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0xc1
+                       >;
+               };
+
+       };
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy0>;
+       fsl,magic-packet;
+       assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>,
+                               <&clk IMX8MQ_SYS2_PLL_100M>,
+                               <&clk IMX8MQ_SYS2_PLL_50M>;
+       assigned-clock-rates = <0>, <0>, <50000000>, <100000000>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <3>;
+               };
+       };
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       pmic: pfuze100@08 {
+               compatible = "fsl,pfuze100";
+               reg = <0x08>;
+
+               regulators {
+                       sw1a_reg: sw1ab {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-always-on;
+                       };
+
+                       sw1c_reg: sw1c {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-always-on;
+                       };
+
+                       sw2_reg: sw2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       sw3a_reg: sw3ab {
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1975000>;
+                               regulator-always-on;
+                       };
+
+                       sw4_reg: sw4 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       swbst_reg: swbst {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5150000>;
+                       };
+
+                       snvs_reg: vsnvs {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                       };
+
+                       vref_reg: vrefddr {
+                               regulator-always-on;
+                       };
+
+                       vgen1_reg: vgen1 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       vgen2_reg: vgen2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                               regulator-always-on;
+                       };
+
+                       vgen3_reg: vgen3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen4_reg: vgen4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen5_reg: vgen5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen6_reg: vgen6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&uart1 { /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       assigned-clocks = <&clk IMX8MQ_CLK_UART1_SRC>;
+       assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
+       status = "okay";
+};
+
+&qspi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_qspi>;
+       status = "disabled";
+
+       flash0: n25q256a@0 {
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "micron,n25q256a";
+               spi-max-frequency = <29000000>;
+               spi-nor,ddr-quad-read-dummy = <6>;
+       };
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       bus-width = <4>;
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8mq-ddr4-arm2.dts b/arch/arm64/boot/dts/freescale/fsl-imx8mq-ddr4-arm2.dts
new file mode 100644 (file)
index 0000000..bc299c7
--- /dev/null
@@ -0,0 +1,350 @@
+/*
+ * Copyright 2017 NXP
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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.
+ */
+
+/dts-v1/;
+
+#include "fsl-imx8mq.dtsi"
+
+/ {
+       model = "Freescale i.MX8MQ DDR4 ARM2";
+       compatible = "fsl,imx8mq-evk", "fsl,imx8mq";
+
+       chosen {
+               bootargs = "console=ttymxc0,115200 earlycon=ec_imx6q,0x30860000,115200";
+               stdout-path = &uart1;
+       };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               reg_usdhc2_vmmc: usdhc2_vmmc {
+                       compatible = "regulator-fixed";
+                       regulator-name = "VSD_3V3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+       };
+
+       busfreq {
+               status = "disabled";
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+
+       imx8mq-arm2 {
+               pinctrl_fec1: fec1grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC         0x3
+                               MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO       0x23
+                               MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3   0x1f
+                               MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2   0x1f
+                               MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1   0x1f
+                               MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0   0x1f
+                               MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3   0x91
+                               MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2   0x91
+                               MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1   0x91
+                               MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0   0x91
+                               MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC   0x1f
+                               MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC   0x91
+                               MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x91
+                               MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x1f
+                               MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9       0x19
+                       >;
+               };
+
+               pinctrl_i2c1: i2c1grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL                  0x4000007f
+                               MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA                  0x4000007f
+                       >;
+               };
+
+               pinctrl_i2c2: i2c2grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL                  0x4000007f
+                               MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA                  0x4000007f
+                       >;
+               };
+
+               pinctrl_uart1: uart1grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX             0x79
+                               MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX             0x79
+                       >;
+               };
+
+               pinctrl_usdhc1: usdhc1grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x83
+                               MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xc3
+                               MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xc3
+                               MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xc3
+                               MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x83
+                               MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
+                       >;
+               };
+
+               pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x85
+                               MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xc5
+                               MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xc5
+                               MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xc5
+                               MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x85
+                               MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
+                       >;
+               };
+
+               pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x87
+                               MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xc7
+                               MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xc7
+                               MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xc7
+                               MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x87
+                               MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
+                       >;
+               };
+
+               pinctrl_usdhc2_gpio: usdhc2grpgpio {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12        0x41
+                               MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19     0x41
+                       >;
+               };
+
+               pinctrl_usdhc2: usdhc2grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK                 0x83
+                               MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD                 0xc3
+                               MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0             0xc3
+                               MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1             0xc3
+                               MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2             0xc3
+                               MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3             0xc3
+                               MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0xc1
+                       >;
+               };
+
+               pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK                 0x85
+                               MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD                 0xc5
+                               MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0             0xc5
+                               MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1             0xc5
+                               MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2             0xc5
+                               MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3             0xc5
+                               MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0xc1
+                       >;
+               };
+
+               pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK                 0x87
+                               MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD                 0xc7
+                               MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0             0xc7
+                               MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1             0xc7
+                               MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2             0xc7
+                               MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3             0xc7
+                               MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0xc1
+                       >;
+               };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
+                       >;
+               };
+       };
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy0>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       at803x,led-act-blind-workaround;
+                       at803x,eee-disabled;
+               };
+       };
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       pmic: pfuze100@08 {
+               compatible = "fsl,pfuze100";
+               reg = <0x08>;
+
+               regulators {
+                       sw1a_reg: sw1ab {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-always-on;
+                       };
+
+                       sw1c_reg: sw1c {
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-always-on;
+                       };
+
+                       sw2_reg: sw2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       sw3a_reg: sw3ab {
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1975000>;
+                               regulator-always-on;
+                       };
+
+                       sw4_reg: sw4 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       swbst_reg: swbst {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5150000>;
+                       };
+
+                       snvs_reg: vsnvs {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                       };
+
+                       vref_reg: vrefddr {
+                               regulator-always-on;
+                       };
+
+                       vgen1_reg: vgen1 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       vgen2_reg: vgen2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                               regulator-always-on;
+                       };
+
+                       vgen3_reg: vgen3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen4_reg: vgen4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen5_reg: vgen5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen6_reg: vgen6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&uart1 { /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       assigned-clocks = <&clk IMX8MQ_CLK_UART1_SRC>;
+       assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       bus-width = <4>;
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};