arm: ls1021aqds: Convert to driver model and enable serial support
authorYork Sun <york.sun@nxp.com>
Mon, 8 Feb 2016 21:04:17 +0000 (13:04 -0800)
committerYork Sun <york.sun@nxp.com>
Tue, 23 Feb 2016 16:08:15 +0000 (08:08 -0800)
Split duart configuration as device tree file. Move /chosen node
out of board commone device tree. Convert ls1021aqds nor and SD
configurations to driver model support (qspi already uses DM).
Enable ns16550 DM serial driver for nor configurations.

Signed-off-by: York Sun <york.sun@nxp.com>
CC: Alison Wang <alison.wang@nxp.com>
CC: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Alison Wang <alison.wang@nxp.com>
arch/arm/dts/Makefile
arch/arm/dts/ls1021a-qds-duart.dts [new file with mode: 0644]
arch/arm/dts/ls1021a-qds.dts [deleted file]
arch/arm/dts/ls1021a-qds.dtsi [new file with mode: 0644]
configs/ls1021aqds_ddr4_nor_defconfig
configs/ls1021aqds_nor_defconfig
configs/ls1021aqds_qspi_defconfig
configs/ls1021aqds_sdcard_defconfig
include/configs/ls1021aqds.h

index b574284262036fa38b8603bcf2008ef7fa0756a8..7af45bb20f3a943acfef877398f32d91f4946f0d 100644 (file)
@@ -96,7 +96,7 @@ dtb-$(CONFIG_TARGET_DRA7XX_EVM) += dra72-evm.dtb dra7-evm.dtb
 dtb-$(CONFIG_TARGET_BEAGLE_X15) += am57xx-beagle-x15.dtb
 dtb-$(CONFIG_TARGET_STV0991) += stv0991.dtb
 
-dtb-$(CONFIG_LS102XA) += ls1021a-qds.dtb \
+dtb-$(CONFIG_LS102XA) += ls1021a-qds-duart.dtb \
        ls1021a-twr-duart.dtb ls1021a-twr-lpuart.dtb
 dtb-$(CONFIG_FSL_LSCH3) += fsl-ls2080a-qds.dtb \
        fsl-ls2080a-rdb.dtb
diff --git a/arch/arm/dts/ls1021a-qds-duart.dts b/arch/arm/dts/ls1021a-qds-duart.dts
new file mode 100644 (file)
index 0000000..bc56867
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ * Freescale ls1021a QDS board common device tree source
+ *
+ * Copyright 2013-2015 Freescale Semiconductor, Inc.
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+/dts-v1/;
+#include "ls1021a-qds.dtsi"
+
+/ {
+       chosen {
+               stdout-path = &uart0;
+       };
+};
diff --git a/arch/arm/dts/ls1021a-qds.dts b/arch/arm/dts/ls1021a-qds.dts
deleted file mode 100644 (file)
index e634292..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Freescale ls1021a QDS board device tree source
- *
- * Copyright 2013-2015 Freescale Semiconductor, Inc.
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-/dts-v1/;
-#include "ls1021a.dtsi"
-
-/ {
-       model = "LS1021A QDS Board";
-
-       aliases {
-               enet0_rgmii_phy = &rgmii_phy1;
-               enet1_rgmii_phy = &rgmii_phy2;
-               enet2_rgmii_phy = &rgmii_phy3;
-               enet0_sgmii_phy = &sgmii_phy1c;
-               enet1_sgmii_phy = &sgmii_phy1d;
-               spi0 = &qspi;
-               spi1 = &dspi0;
-       };
-};
-
-&dspi0 {
-       bus-num = <0>;
-       status = "okay";
-
-       dspiflash: at45db021d@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "atmel,dataflash";
-               spi-max-frequency = <16000000>;
-               spi-cpol;
-               spi-cpha;
-               reg = <0>;
-       };
-};
-
-&qspi {
-       bus-num = <0>;
-       status = "okay";
-
-       qflash0: s25fl128s@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "spi-flash";
-               spi-max-frequency = <20000000>;
-               reg = <0>;
-       };
-};
-
-&i2c0 {
-       status = "okay";
-
-       pca9547: mux@77 {
-               reg = <0x77>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               i2c@0 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0x0>;
-
-                       ds3232: rtc@68 {
-                               compatible = "dallas,ds3232";
-                               reg = <0x68>;
-                               interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
-                       };
-               };
-
-               i2c@2 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0x2>;
-
-                       ina220@40 {
-                               compatible = "ti,ina220";
-                               reg = <0x40>;
-                               shunt-resistor = <1000>;
-                       };
-
-                       ina220@41 {
-                               compatible = "ti,ina220";
-                               reg = <0x41>;
-                               shunt-resistor = <1000>;
-                       };
-               };
-
-               i2c@3 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0x3>;
-
-                       eeprom@56 {
-                               compatible = "atmel,24c512";
-                               reg = <0x56>;
-                       };
-
-                       eeprom@57 {
-                               compatible = "atmel,24c512";
-                               reg = <0x57>;
-                       };
-
-                       adt7461a@4c {
-                               compatible = "adi,adt7461a";
-                               reg = <0x4c>;
-                       };
-               };
-       };
-};
-
-&ifc {
-       #address-cells = <2>;
-       #size-cells = <1>;
-       /* NOR, NAND Flashes and FPGA on board */
-       ranges = <0x0 0x0 0x60000000 0x08000000
-                 0x2 0x0 0x7e800000 0x00010000
-                 0x3 0x0 0x7fb00000 0x00000100>;
-       status = "okay";
-
-       nor@0,0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "cfi-flash";
-               reg = <0x0 0x0 0x8000000>;
-               bank-width = <2>;
-               device-width = <1>;
-       };
-
-       fpga: board-control@3,0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "simple-bus";
-               reg = <0x3 0x0 0x0000100>;
-               bank-width = <1>;
-               device-width = <1>;
-               ranges = <0 3 0 0x100>;
-
-               mdio-mux-emi1 {
-                       compatible = "mdio-mux-mmioreg";
-                       mdio-parent-bus = <&mdio0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0x54 1>; /* BRDCFG4 */
-                       mux-mask = <0xe0>; /* EMI1[2:0] */
-
-                       /* Onboard PHYs */
-                       ls1021amdio0: mdio@0 {
-                               reg = <0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               rgmii_phy1: ethernet-phy@1 {
-                                       reg = <0x1>;
-                               };
-                       };
-
-                       ls1021amdio1: mdio@20 {
-                               reg = <0x20>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               rgmii_phy2: ethernet-phy@2 {
-                                       reg = <0x2>;
-                               };
-                       };
-
-                       ls1021amdio2: mdio@40 {
-                               reg = <0x40>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               rgmii_phy3: ethernet-phy@3 {
-                                       reg = <0x3>;
-                               };
-                       };
-
-                       ls1021amdio3: mdio@60 {
-                               reg = <0x60>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               sgmii_phy1c: ethernet-phy@1c {
-                                       reg = <0x1c>;
-                               };
-                       };
-
-                       ls1021amdio4: mdio@80 {
-                               reg = <0x80>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               sgmii_phy1d: ethernet-phy@1d {
-                                       reg = <0x1d>;
-                               };
-                       };
-               };
-       };
-};
-
-&lpuart0 {
-       status = "okay";
-};
-
-&mdio0 {
-       tbi0: tbi-phy@8 {
-               reg = <0x8>;
-               device_type = "tbi-phy";
-       };
-};
-
-&uart0 {
-       status = "okay";
-};
-
-&uart1 {
-       status = "okay";
-};
diff --git a/arch/arm/dts/ls1021a-qds.dtsi b/arch/arm/dts/ls1021a-qds.dtsi
new file mode 100644 (file)
index 0000000..ca9e835
--- /dev/null
@@ -0,0 +1,215 @@
+/*
+ * Freescale ls1021a QDS board common device tree source
+ *
+ * Copyright 2013-2015 Freescale Semiconductor, Inc.
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include "ls1021a.dtsi"
+
+/ {
+       model = "LS1021A QDS Board";
+
+       aliases {
+               enet0_rgmii_phy = &rgmii_phy1;
+               enet1_rgmii_phy = &rgmii_phy2;
+               enet2_rgmii_phy = &rgmii_phy3;
+               enet0_sgmii_phy = &sgmii_phy1c;
+               enet1_sgmii_phy = &sgmii_phy1d;
+               spi0 = &qspi;
+               spi1 = &dspi0;
+       };
+};
+
+&dspi0 {
+       bus-num = <0>;
+       status = "okay";
+
+       dspiflash: at45db021d@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "atmel,dataflash";
+               spi-max-frequency = <16000000>;
+               spi-cpol;
+               spi-cpha;
+               reg = <0>;
+       };
+};
+
+&qspi {
+       bus-num = <0>;
+       status = "okay";
+
+       qflash0: s25fl128s@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "spi-flash";
+               spi-max-frequency = <20000000>;
+               reg = <0>;
+       };
+};
+
+&i2c0 {
+       status = "okay";
+
+       pca9547: mux@77 {
+               reg = <0x77>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0>;
+
+                       ds3232: rtc@68 {
+                               compatible = "dallas,ds3232";
+                               reg = <0x68>;
+                               interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x2>;
+
+                       ina220@40 {
+                               compatible = "ti,ina220";
+                               reg = <0x40>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       ina220@41 {
+                               compatible = "ti,ina220";
+                               reg = <0x41>;
+                               shunt-resistor = <1000>;
+                       };
+               };
+
+               i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x3>;
+
+                       eeprom@56 {
+                               compatible = "atmel,24c512";
+                               reg = <0x56>;
+                       };
+
+                       eeprom@57 {
+                               compatible = "atmel,24c512";
+                               reg = <0x57>;
+                       };
+
+                       adt7461a@4c {
+                               compatible = "adi,adt7461a";
+                               reg = <0x4c>;
+                       };
+               };
+       };
+};
+
+&ifc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       /* NOR, NAND Flashes and FPGA on board */
+       ranges = <0x0 0x0 0x60000000 0x08000000
+                 0x2 0x0 0x7e800000 0x00010000
+                 0x3 0x0 0x7fb00000 0x00000100>;
+       status = "okay";
+
+       nor@0,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "cfi-flash";
+               reg = <0x0 0x0 0x8000000>;
+               bank-width = <2>;
+               device-width = <1>;
+       };
+
+       fpga: board-control@3,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               reg = <0x3 0x0 0x0000100>;
+               bank-width = <1>;
+               device-width = <1>;
+               ranges = <0 3 0 0x100>;
+
+               mdio-mux-emi1 {
+                       compatible = "mdio-mux-mmioreg";
+                       mdio-parent-bus = <&mdio0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x54 1>; /* BRDCFG4 */
+                       mux-mask = <0xe0>; /* EMI1[2:0] */
+
+                       /* Onboard PHYs */
+                       ls1021amdio0: mdio@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               rgmii_phy1: ethernet-phy@1 {
+                                       reg = <0x1>;
+                               };
+                       };
+
+                       ls1021amdio1: mdio@20 {
+                               reg = <0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               rgmii_phy2: ethernet-phy@2 {
+                                       reg = <0x2>;
+                               };
+                       };
+
+                       ls1021amdio2: mdio@40 {
+                               reg = <0x40>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               rgmii_phy3: ethernet-phy@3 {
+                                       reg = <0x3>;
+                               };
+                       };
+
+                       ls1021amdio3: mdio@60 {
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               sgmii_phy1c: ethernet-phy@1c {
+                                       reg = <0x1c>;
+                               };
+                       };
+
+                       ls1021amdio4: mdio@80 {
+                               reg = <0x80>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               sgmii_phy1d: ethernet-phy@1d {
+                                       reg = <0x1d>;
+                               };
+                       };
+               };
+       };
+};
+
+&lpuart0 {
+       status = "okay";
+};
+
+&mdio0 {
+       tbi0: tbi-phy@8 {
+               reg = <0x8>;
+               device_type = "tbi-phy";
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
index 2f16339d18b085f9f555b95bd13df98f2845b7ea..842f645d6cac7a0926e3c6ba132b4d9c0fc1edf2 100644 (file)
@@ -1,7 +1,11 @@
 CONFIG_ARM=y
 CONFIG_TARGET_LS1021AQDS=y
 CONFIG_SYS_EXTRA_OPTIONS="SYS_FSL_DDR4"
+CONFIG_DM_SERIAL=y
+CONFIG_DEFAULT_DEVICE_TREE="ls1021a-qds-duart"
 # CONFIG_CMD_SETEXPR is not set
+CONFIG_OF_CONTROL=y
+CONFIG_DM=y
 CONFIG_NETDEVICES=y
 CONFIG_E1000=y
 CONFIG_SYS_NS16550=y
index 6878df4980dcf7c876d978907781844a139d7c35..f4c81e2ae0e596b80592a30f56e45327f9e2300a 100644 (file)
@@ -1,6 +1,10 @@
 CONFIG_ARM=y
 CONFIG_TARGET_LS1021AQDS=y
+CONFIG_DM_SERIAL=y
+CONFIG_DEFAULT_DEVICE_TREE="ls1021a-qds-duart"
 # CONFIG_CMD_SETEXPR is not set
+CONFIG_OF_CONTROL=y
+CONFIG_DM=y
 CONFIG_NETDEVICES=y
 CONFIG_E1000=y
 CONFIG_SYS_NS16550=y
index 0f740fd902d5d1947a6bee20f10e2266431d00a6..2e98d6c28b2278f8cd27b045581f001a9e9217be 100644 (file)
@@ -1,7 +1,7 @@
 CONFIG_ARM=y
 CONFIG_TARGET_LS1021AQDS=y
 CONFIG_DM_SPI=y
-CONFIG_DEFAULT_DEVICE_TREE="ls1021a-qds"
+CONFIG_DEFAULT_DEVICE_TREE="ls1021a-qds-duart"
 CONFIG_SYS_EXTRA_OPTIONS="QSPI_BOOT"
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_SETEXPR is not set
index 3249b4884fb5e0fcb831448a56d26cbaa77fd39f..e283f696299674f8352e1c2fc2885512bebf400a 100644 (file)
@@ -1,8 +1,11 @@
 CONFIG_ARM=y
 CONFIG_TARGET_LS1021AQDS=y
+CONFIG_DEFAULT_DEVICE_TREE="ls1021a-qds-duart"
 CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="RAMBOOT_PBL,SPL_FSL_PBL,SD_BOOT"
 # CONFIG_CMD_SETEXPR is not set
+CONFIG_OF_CONTROL=y
+CONFIG_DM=y
 CONFIG_NETDEVICES=y
 CONFIG_E1000=y
 CONFIG_SYS_NS16550=y
index f6efc55059aa190e8e09df166f7073cb2c5b1a17..5bdc124475b4f1b6108feaf3f985844bf98460cc 100644 (file)
@@ -375,7 +375,9 @@ unsigned long get_board_ddr_clk(void);
 #else
 #define CONFIG_CONS_INDEX              1
 #define CONFIG_SYS_NS16550_SERIAL
+#ifndef CONFIG_DM_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE    1
+#endif
 #define CONFIG_SYS_NS16550_CLK         get_serial_clock()
 #endif