ipq40xx: OpenMesh A42 overhaul
authorChristian Lamparter <chunkeey@gmail.com>
Sat, 10 Mar 2018 08:55:18 +0000 (09:55 +0100)
committerMathias Kresin <dev@kresin.me>
Wed, 14 Mar 2018 18:04:51 +0000 (19:04 +0100)
Sort the soc entries in the dts by address and use dtc labels whenever
possible.

Adjust the DTS files, the OpenMesh A42 is actually an IPQ4018 and not an
IPQ4019.

Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-a42.dts [new file with mode: 0644]
target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-a42.dts [deleted file]
target/linux/ipq40xx/image/Makefile
target/linux/ipq40xx/patches-4.14/069-arm-boot-add-dts-files.patch

diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-a42.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-a42.dts
new file mode 100644 (file)
index 0000000..772465c
--- /dev/null
@@ -0,0 +1,237 @@
+/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017, Sven Eckelmann <sven.eckelmann@openmesh.com>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+#include "qcom-ipq4019.dtsi"
+#include "qcom-ipq4019-bus.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+       model = "OpenMesh A42";
+       compatible = "openmesh,a42", "qcom,ipq4019";
+
+       reserved-memory {
+               #address-cells = <0x1>;
+               #size-cells = <0x1>;
+               ranges;
+
+               rsvd1@87000000 {
+                       reg = <0x87000000 0x500000>;
+                       no-map;
+               };
+
+               wifi_dump@87500000 {
+                       reg = <0x87500000 0x600000>;
+                       no-map;
+               };
+
+               rsvd2@87B00000 {
+                       reg = <0x87b00000 0x500000>;
+                       no-map;
+               };
+       };
+
+       soc {
+               mdio@90000 {
+                       status = "okay";
+               };
+
+               ess-psgmii@98000 {
+                       status = "okay";
+               };
+
+               tcsr@194b000 {
+                       /* select hostmode */
+                       compatible = "qcom,tcsr";
+                       reg = <0x194b000 0x100>;
+                       qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
+                       status = "ok";
+               };
+
+               tcsr@1949000 {
+                       compatible = "qcom,tcsr";
+                       reg = <0x1949000 0x100>;
+                       qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
+               };
+
+               ess_tcsr@1953000 {
+                       compatible = "qcom,tcsr";
+                       reg = <0x1953000 0x1000>;
+                       qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
+               };
+
+               tcsr@1957000 {
+                       compatible = "qcom,tcsr";
+                       reg = <0x1957000 0x100>;
+                       qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
+               };
+
+               usb2: usb2@60f8800 {
+                       status = "ok";
+               };
+
+               serial@78af000 {
+                       pinctrl-0 = <&serial_pins>;
+                       pinctrl-names = "default";
+                       status = "ok";
+               };
+
+               crypto@8e3a000 {
+                       status = "ok";
+               };
+
+               watchdog@b017000 {
+                       status = "ok";
+               };
+
+               ess-switch@c000000 {
+                       status = "okay";
+               };
+
+               edma@c080000 {
+                       status = "okay";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       gpios = <&tlmm 59 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+       };
+
+       aliases {
+               led-boot = &power;
+               led-failsafe = &power;
+               led-running = &power;
+               led-upgrade = &power;
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               red {
+                       label = "a42:red:status";
+                       gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+
+               power: green {
+                       label = "a42:green:status";
+                       gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>;
+               };
+
+               blue {
+                       label = "a42:blue:status";
+                       gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-off";
+               };
+       };
+
+       watchdog {
+               compatible = "linux,wdt-gpio";
+               gpios = <&tlmm 5 GPIO_ACTIVE_LOW>;
+               hw_algo = "toggle";
+               /* hw_margin_ms is actually 300s but driver limits it to 60s */
+               hw_margin_ms = <60000>;
+               always-running;
+       };
+};
+
+&tlmm {
+       serial_pins: serial_pinmux {
+               mux {
+                       pins = "gpio60", "gpio61";
+                       function = "blsp_uart0";
+                       bias-disable;
+               };
+       };
+
+       spi_0_pins: spi_0_pinmux {
+               pin {
+                       function = "blsp_spi0";
+                       pins = "gpio55", "gpio56", "gpio57";
+                       drive-strength = <12>;
+                       bias-disable;
+               };
+               pin_cs {
+                       function = "gpio";
+                       pins = "gpio54";
+                       drive-strength = <2>;
+                       bias-disable;
+                       output-high;
+               };
+       };
+};
+
+&blsp_dma {
+       status = "ok";
+};
+
+&spi_0 {
+       pinctrl-0 = <&spi_0_pins>;
+       pinctrl-names = "default";
+       status = "ok";
+       cs-gpios = <&tlmm 54 0>;
+
+       m25p80@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <24000000>;
+               /* partitions are passed via bootloader */
+       };
+};
+
+&cryptobam {
+       status = "ok";
+};
+
+&gmac0 {
+       qcom,phy_mdio_addr = <4>;
+       qcom,poll_required = <1>;
+       qcom,forced_speed = <1000>;
+       qcom,forced_duplex = <1>;
+       vlan_tag = <2 0x20>;
+};
+
+&gmac1 {
+       qcom,phy_mdio_addr = <3>;
+       qcom,poll_required = <1>;
+       qcom,forced_speed = <1000>;
+       qcom,forced_duplex = <1>;
+       vlan_tag = <1 0x10>;
+};
+
+&usb2_hs_phy {
+       status = "ok";
+};
+
+&wifi0 {
+       status = "okay";
+       qcom,ath10k-calibration-variant = "OM-A42";
+};
+
+&wifi1 {
+       status = "okay";
+       qcom,ath10k-calibration-variant = "OM-A42";
+};
diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-a42.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-a42.dts
deleted file mode 100644 (file)
index 887be99..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
- * Copyright (c) 2017, Sven Eckelmann <sven.eckelmann@openmesh.com>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
-
-#include "qcom-ipq4019.dtsi"
-#include "qcom-ipq4019-bus.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/soc/qcom,tcsr.h>
-
-/ {
-       model = "OpenMesh A42";
-       compatible = "openmesh,a42", "qcom,ipq4019";
-
-       reserved-memory {
-               #address-cells = <0x1>;
-               #size-cells = <0x1>;
-               ranges;
-
-               rsvd1@87000000 {
-                       reg = <0x87000000 0x500000>;
-                       no-map;
-               };
-
-               wifi_dump@87500000 {
-                       reg = <0x87500000 0x600000>;
-                       no-map;
-               };
-
-               rsvd2@87B00000 {
-                       reg = <0x87b00000 0x500000>;
-                       no-map;
-               };
-       };
-
-       soc {
-               tcsr@194b000 {
-                       /* select hostmode */
-                       compatible = "qcom,tcsr";
-                       reg = <0x194b000 0x100>;
-                       qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
-                       status = "ok";
-               };
-
-               ess_tcsr@1953000 {
-                       compatible = "qcom,tcsr";
-                       reg = <0x1953000 0x1000>;
-                       qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
-               };
-
-               tcsr@1949000 {
-                       compatible = "qcom,tcsr";
-                       reg = <0x1949000 0x100>;
-                       qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
-               };
-
-               tcsr@1957000 {
-                       compatible = "qcom,tcsr";
-                       reg = <0x1957000 0x100>;
-                       qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
-               };
-
-               pinctrl@1000000 {
-                       serial_pins: serial_pinmux {
-                               mux {
-                                       pins = "gpio60", "gpio61";
-                                       function = "blsp_uart0";
-                                       bias-disable;
-                               };
-                       };
-
-                       spi_0_pins: spi_0_pinmux {
-                               pinmux {
-                                       function = "blsp_spi0";
-                                       pins = "gpio55", "gpio56", "gpio57";
-                               };
-                               pinmux_cs {
-                                       function = "gpio";
-                                       pins = "gpio54";
-                               };
-                               pinconf {
-                                       pins = "gpio55", "gpio56", "gpio57";
-                                       drive-strength = <12>;
-                                       bias-disable;
-                               };
-                               pinconf_cs {
-                                       pins = "gpio54";
-                                       drive-strength = <2>;
-                                       bias-disable;
-                                       output-high;
-                               };
-                       };
-               };
-
-               blsp_dma: dma@7884000 {
-                       status = "ok";
-               };
-
-               spi_0: spi@78b5000 {
-                       pinctrl-0 = <&spi_0_pins>;
-                       pinctrl-names = "default";
-                       status = "ok";
-                       cs-gpios = <&tlmm 54 0>;
-
-                       m25p80@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               compatible = "jedec,spi-nor";
-                               reg = <0>;
-                               spi-max-frequency = <24000000>;
-
-                               /* partitions are passed via bootloader */
-                       };
-               };
-
-               serial@78af000 {
-                       pinctrl-0 = <&serial_pins>;
-                       pinctrl-names = "default";
-                       status = "ok";
-               };
-
-               cryptobam: dma@8e04000 {
-                       status = "ok";
-               };
-
-               crypto@8e3a000 {
-                       status = "ok";
-               };
-
-               watchdog@b017000 {
-                       status = "ok";
-               };
-
-               usb2_hs_phy: hsphy@a8000 {
-                       status = "ok";
-               };
-
-               usb2: usb2@60f8800 {
-                       status = "ok";
-               };
-
-               mdio@90000 {
-                       status = "okay";
-               };
-
-               ess-switch@c000000 {
-                       status = "okay";
-               };
-
-               ess-psgmii@98000 {
-                       status = "okay";
-               };
-
-               edma@c080000 {
-                       status = "okay";
-               };
-
-               wifi@a000000 {
-                       status = "okay";
-                       qcom,ath10k-calibration-variant = "OM-A42";
-               };
-
-               wifi@a800000 {
-                       status = "okay";
-                       qcom,ath10k-calibration-variant = "OM-A42";
-               };
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               reset {
-                       label = "reset";
-                       gpios = <&tlmm 59 GPIO_ACTIVE_LOW>;
-                       linux,code = <KEY_RESTART>;
-               };
-       };
-
-       aliases {
-               led-boot = &power;
-               led-failsafe = &power;
-               led-running = &power;
-               led-upgrade = &power;
-       };
-
-       gpio-leds {
-               compatible = "gpio-leds";
-
-               red {
-                       label = "a42:red:status";
-                       gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "default-off";
-               };
-
-               power: green {
-                       label = "a42:green:status";
-                       gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>;
-               };
-
-               blue {
-                       label = "a42:blue:status";
-                       gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "default-off";
-               };
-       };
-
-       watchdog {
-               compatible = "linux,wdt-gpio";
-               gpios = <&tlmm 5 GPIO_ACTIVE_LOW>;
-               hw_algo = "toggle";
-               /* hw_margin_ms is actually 300s but driver limits it to 60s */
-               hw_margin_ms = <60000>;
-               always-running;
-       };
-};
-
-&gmac0 {
-       qcom,phy_mdio_addr = <4>;
-       qcom,poll_required = <1>;
-       qcom,forced_speed = <1000>;
-       qcom,forced_duplex = <1>;
-       vlan_tag = <2 0x20>;
-};
-
-&gmac1 {
-       qcom,phy_mdio_addr = <3>;
-       qcom,poll_required = <1>;
-       qcom,forced_speed = <1000>;
-       qcom,forced_duplex = <1>;
-       vlan_tag = <1 0x10>;
-};
index e584b6fb1a261f99c28f58aeb1e836810d123378..eb26082be7aec9331367a142316db077035c41f4 100644 (file)
@@ -61,7 +61,7 @@ TARGET_DEVICES += glinet_gl-b1300
 
 define Device/openmesh_a42
        $(call Device/FitImageLzma)
-       DEVICE_DTS := qcom-ipq4019-a42
+       DEVICE_DTS := qcom-ipq4018-a42
        BLOCKSIZE := 64k
        SUPPORTED_DEVICES := openmesh,a42
        DEVICE_TITLE := OpenMesh A42
index e830565c8452d4b9116153b39ad18165f17c184d..128669f7c4c12afe81a9c25eeb61ca284e09c5ff 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
        qcom-apq8074-dragonboard.dtb \
        qcom-apq8084-ifc6540.dtb \
        qcom-apq8084-mtp.dtb \
-+      qcom-ipq4019-a42.dtb \
++      qcom-ipq4018-a42.dtb \
        qcom-ipq4019-ap.dk01.1-c1.dtb \
 +      qcom-ipq4019-ap.dk04.1-c1.dtb \
 +      qcom-ipq4019-fritz4040.dtb \