From d4c460648dc28a7e8f2082101159971f6858c743 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Sat, 12 Nov 2022 12:13:46 +0000 Subject: ipq40xx: add support for Mikrotik wAP R ac / LTE / LTE6 The Mikrotik wAP R AC is an outdoor, dual band, dual radio (802.11ac) AP with a miniPCIe slot for a LTE modem. The wAP R AC is similar to the wAP AC but with the miniPCIe slot. The wAP R AC requires installing a LTE modem. The wAP LTE and wAP LTE6 comes with a LTE modem installed. See https://mikrotik.com/product/wap_r_ac for more info. Specifications: - SoC: Qualcomm Atheros IPQ4018 - CPU: 4x ARM Cortex A7 - RAM: 128MB - Storage: 16MB NOR flash - Wireless: - Built-in IPQ4018 (SoC) 802.11b/g/n 2x2:2, internal antenna - Built-in IPQ4018 (SoC) 802.11a/n/ac 2x2:2, internal antenna - Ethernet: Built-in IPQ4018 (SoC, QCA8075) , 2x 1000/100/10 ports one with 802.3af/at PoE in - 1x Mini PCI-E port (USB2) Installation: Boot the initramfs image via TFTP, then flash the sysupgrade image using sysupgrade. Details at https://openwrt.org/toh/mikrotik/common. Signed-off-by: Alexander Couzens --- .../arch/arm/boot/dts/qcom-ipq4018-wap-ac-lte.dts | 45 +++++ .../arch/arm/boot/dts/qcom-ipq4018-wap-ac.dts | 211 +------------------- .../arch/arm/boot/dts/qcom-ipq4018-wap-ac.dtsi | 215 +++++++++++++++++++++ .../arch/arm/boot/dts/qcom-ipq4018-wap-r-ac.dts | 45 +++++ 4 files changed, 306 insertions(+), 210 deletions(-) create mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac-lte.dts create mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac.dtsi create mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-r-ac.dts (limited to 'target/linux/ipq40xx/files') diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac-lte.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac-lte.dts new file mode 100644 index 0000000000..8ff18d92b7 --- /dev/null +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac-lte.dts @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2022, Alexander Couzens */ + +#include "qcom-ipq4018-wap-ac.dtsi" + +/ { + model = "MikroTik wAP ac LTE"; + compatible = "mikrotik,wap-ac-lte"; + + soc { + tcsr@194b000 { + /* select hostmode */ + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + status = "okay"; + }; + + usb3@8af8800 { + status = "okay"; + + dwc3@8a00000 { + phys = <&usb3_hs_phy>; + phy-names = "usb2-phy"; + }; + }; + }; +}; + +&tlmm { + enable-usb-power { + gpio-hog; + gpios = <2 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "enable USB power"; + }; +}; + +&usb3_hs_phy { + status = "okay"; +}; + +&usb3 { + status = "okay"; +}; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac.dts index ecbdfac15f..1bfcbf1e33 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac.dts @@ -1,218 +1,9 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT /* Copyright (c) 2020, Robert Marko */ -#include "qcom-ipq4019.dtsi" -#include -#include -#include +#include "qcom-ipq4018-wap-ac.dtsi" / { model = "MikroTik wAP ac"; compatible = "mikrotik,wap-ac"; - - memory { - device_type = "memory"; - reg = <0x80000000 0x08000000>; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - - aliases { - led-boot = &led_user; - led-failsafe = &led_user; - led-running = &led_user; - led-upgrade = &led_user; - }; - - soc { - counter@4a1000 { - compatible = "qcom,qca-gcnt"; - reg = <0x4a1000 0x4>; - }; - - tcsr@1949000 { - compatible = "qcom,tcsr"; - reg = <0x1949000 0x100>; - qcom,wifi_glb_cfg = ; - }; - - ess_tcsr@1953000 { - compatible = "qcom,tcsr"; - reg = <0x1953000 0x1000>; - qcom,ess-interface-select = ; - }; - - tcsr@1957000 { - compatible = "qcom,tcsr"; - reg = <0x1957000 0x100>; - qcom,wifi_noc_memtype_m0_m2 = ; - }; - }; - - keys { - compatible = "gpio-keys"; - - reset { - label = "reset"; - gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - }; - - leds { - compatible = "gpio-leds"; - - power { - label = "blue:power"; - gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; - default-state = "keep"; - }; - - led_user: user { - label = "green:user"; - gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; - panic-indicator; - }; - }; -}; - -&prng { - status = "okay"; -}; - -&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 = <2>; - bias-disable; - }; - pin_cs { - function = "gpio"; - pins = "gpio54"; - drive-strength = <2>; - bias-disable; - output-high; - }; - }; -}; - -&blsp_dma { - status = "okay"; -}; - -&blsp1_spi1 { - status = "okay"; - - pinctrl-0 = <&spi_0_pins>; - pinctrl-names = "default"; - cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; - - flash@0 { - reg = <0>; - compatible = "jedec,spi-nor"; - spi-max-frequency = <40000000>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "Qualcomm"; - reg = <0x0 0x80000>; - read-only; - }; - - partition@80000 { - compatible = "mikrotik,routerboot-partitions"; - #address-cells = <1>; - #size-cells = <1>; - label = "RouterBoot"; - reg = <0x80000 0x80000>; - - hard_config { - read-only; - size = <0x2000>; - }; - - dtb_config { - read-only; - }; - - soft_config { - }; - }; - - partition@100000 { - compatible = "mikrotik,minor"; - label = "firmware"; - reg = <0x100000 0xf00000>; - }; - }; - }; -}; - -&blsp1_uart1 { - status = "okay"; - - pinctrl-0 = <&serial_pins>; - pinctrl-names = "default"; -}; - -&cryptobam { - status = "okay"; -}; - -&crypto { - status = "okay"; -}; - -&watchdog { - status = "okay"; -}; - -&mdio { - status = "okay"; -}; - -&gmac { - status = "okay"; -}; - -&switch { - status = "okay"; -}; - -&swport4 { - status = "okay"; - label = "sw-eth2"; -}; - -&swport5 { - status = "okay"; - label = "sw-eth1"; -}; - -&wifi0 { - status = "okay"; - - qcom,ath10k-calibration-variant = "MikroTik-wAP-ac"; -}; - -&wifi1 { - status = "okay"; - - qcom,ath10k-calibration-variant = "MikroTik-wAP-ac"; }; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac.dtsi b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac.dtsi new file mode 100644 index 0000000000..777f46e3af --- /dev/null +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac.dtsi @@ -0,0 +1,215 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2020, Robert Marko */ + +#include "qcom-ipq4019.dtsi" +#include +#include +#include + +/ { + memory { + device_type = "memory"; + reg = <0x80000000 0x08000000>; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + aliases { + led-boot = &led_user; + led-failsafe = &led_user; + led-running = &led_user; + led-upgrade = &led_user; + }; + + soc { + counter@4a1000 { + compatible = "qcom,qca-gcnt"; + reg = <0x4a1000 0x4>; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + power { + label = "blue:power"; + gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; + default-state = "keep"; + }; + + led_user: user { + label = "green:user"; + gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; + panic-indicator; + }; + }; +}; + +&prng { + status = "okay"; +}; + +&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 = <2>; + bias-disable; + }; + pin_cs { + function = "gpio"; + pins = "gpio54"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; +}; + +&blsp_dma { + status = "okay"; +}; + +&blsp1_spi1 { + status = "okay"; + + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; + + flash@0 { + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <40000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "Qualcomm"; + reg = <0x0 0x80000>; + read-only; + }; + + partition@80000 { + compatible = "mikrotik,routerboot-partitions"; + #address-cells = <1>; + #size-cells = <1>; + label = "RouterBoot"; + reg = <0x80000 0x80000>; + + hard_config { + read-only; + size = <0x2000>; + }; + + dtb_config { + read-only; + }; + + soft_config { + }; + }; + + partition@100000 { + compatible = "mikrotik,minor"; + label = "firmware"; + reg = <0x100000 0xf00000>; + }; + }; + }; +}; + +&blsp1_uart1 { + status = "okay"; + + pinctrl-0 = <&serial_pins>; + pinctrl-names = "default"; +}; + +&cryptobam { + status = "okay"; +}; + +&crypto { + status = "okay"; +}; + +&watchdog { + status = "okay"; +}; + +&mdio { + status = "okay"; +}; + +&gmac { + status = "okay"; +}; + +&switch { + status = "okay"; +}; + +&swport4 { + status = "okay"; + label = "sw-eth2"; +}; + +&swport5 { + status = "okay"; + label = "sw-eth1"; +}; + +&wifi0 { + status = "okay"; + + qcom,ath10k-calibration-variant = "MikroTik-wAP-ac"; +}; + +&wifi1 { + status = "okay"; + + qcom,ath10k-calibration-variant = "MikroTik-wAP-ac"; +}; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-r-ac.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-r-ac.dts new file mode 100644 index 0000000000..e7f28f23cf --- /dev/null +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-r-ac.dts @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2022, Alexander Couzens */ + +#include "qcom-ipq4018-wap-ac.dtsi" + +/ { + model = "MikroTik wAP R ac"; + compatible = "mikrotik,wap-r-ac"; + + soc { + tcsr@194b000 { + /* select hostmode */ + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + status = "okay"; + }; + + usb3@8af8800 { + status = "okay"; + + dwc3@8a00000 { + phys = <&usb3_hs_phy>; + phy-names = "usb2-phy"; + }; + }; + }; +}; + +&tlmm { + enable-usb-power { + gpio-hog; + gpios = <2 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "enable USB power"; + }; +}; + +&usb3_hs_phy { + status = "okay"; +}; + +&usb3 { + status = "okay"; +}; -- cgit v1.2.3