diff --git a/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network b/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network index 14c932a04..61b3d77b6 100755 --- a/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network +++ b/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network @@ -31,6 +31,9 @@ qcom_setup_interfaces() cig,wf194c|\ cig,wf194c4|\ edgecore,eap106|\ + indio,um-310ax-v1|\ + indio,um-510axp-v1|\ + indio,um-510axm-v1|\ qcom,ipq5018-mp03.3|\ yuncore,ax840|\ motorola,q14|\ @@ -99,6 +102,9 @@ qcom_setup_macs() ucidef_set_network_device_mac eth1 $lan_mac ucidef_set_label_macaddr $wan_mac ;; + indio,um-310ax-v1|\ + indio,um-510axp-v1|\ + indio,um-510axm-v1|\ yuncore,ax840) wan_mac=$(cat /sys/class/net/eth1/address) lan_mac=$(macaddr_add "$wan_mac" 1) diff --git a/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata index d61be8bcb..a39bf0cbd 100755 --- a/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata +++ b/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata @@ -86,6 +86,9 @@ case "$FIRMWARE" in cig,wf196|\ edgecore,eap102 |\ edgecore,eap106 |\ + indio,um-310ax-v1|\ + indio,um-510axp-v1|\ + indio,um-510axm-v1|\ qcom,ipq807x-hk01|\ qcom,ipq807x-hk14|\ tplink,ex227|\ @@ -173,6 +176,9 @@ ath11k-macs) yuncore,ax840|\ edgecore,eap102|\ edgecore,eap106|\ + indio,um-310ax-v1|\ + indio,um-510axp-v1|\ + indio,um-510axm-v1|\ cig,wf188n) ath11k_generate_macs ;; diff --git a/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh b/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh index 2ab5c4ad7..22531c43b 100755 --- a/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh +++ b/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh @@ -76,6 +76,9 @@ platform_check_image() { cybertan,eww622-a1|\ glinet,ax1800|\ glinet,axt1800|\ + indio,um-310ax-v1|\ + indio,um-510axp-v1|\ + indio,um-510axm-v1|\ wallys,dr6018|\ wallys,dr6018-v4|\ edgecore,eap101|\ @@ -120,6 +123,9 @@ platform_do_upgrade() { cybertan,eww622-a1|\ glinet,ax1800|\ glinet,axt1800|\ + indio,um-310ax-v1|\ + indio,um-510axp-v1|\ + indio,um-510axm-v1|\ qcom,ipq6018-cp01|\ qcom,ipq807x-hk01|\ qcom,ipq807x-hk14|\ diff --git a/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-indio-um-310ax-v1.dts b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-indio-um-310ax-v1.dts new file mode 100644 index 000000000..991f45c0f --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-indio-um-310ax-v1.dts @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2019, The Linux Foundation. All rights reserved. + * + * 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 "../../../arm64/boot/dts/qcom/qcom-ipq6018-indio-um-310ax-v1.dts" +#include "qcom-ipq6018.dtsi" diff --git a/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-indio-um-510axm-v1.dts b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-indio-um-510axm-v1.dts new file mode 100644 index 000000000..1305e0442 --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-indio-um-510axm-v1.dts @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2019, The Linux Foundation. All rights reserved. + * + * 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 "../../../arm64/boot/dts/qcom/qcom-ipq6018-indio-um-510axm-v1.dts" +#include "qcom-ipq6018.dtsi" diff --git a/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-indio-um-510axp-v1.dts b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-indio-um-510axp-v1.dts new file mode 100644 index 000000000..6e6a1397e --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-indio-um-510axp-v1.dts @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2019, The Linux Foundation. All rights reserved. + * + * 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 "../../../arm64/boot/dts/qcom/qcom-ipq6018-indio-um-510axp-v1.dts" +#include "qcom-ipq6018.dtsi" diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-indio-um-310ax-v1.dts b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-indio-um-310ax-v1.dts new file mode 100644 index 000000000..6fbd596b4 --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-indio-um-310ax-v1.dts @@ -0,0 +1,379 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "qcom-ipq6018.dtsi" +#include "qcom-ipq6018-rpm-regulator.dtsi" +#include "qcom-ipq6018-cpr-regulator.dtsi" +#include "qcom-ipq6018-cp-cpu.dtsi" +#include +#include + +/ { + model = "Indio UM-310AX V1"; + compatible = "indio,um-310ax-v1", "qcom,ipq6018-cp03", "qcom,ipq6018"; + + #address-cells = <0x2>; + #size-cells = <0x2>; + interrupt-parent = <&intc>; + + aliases { + /* Aliases as required by u-boot to patch MAC addresses */ + ethernet0 = "/soc/dp2"; + ethernet1 = "/soc/dp1"; + + serial0 = &blsp1_uart3; + serial1 = &blsp1_uart2; + + led-boot = &led_system; + led-failsafe = &led_system; + led-running = &led_system; + led-upgrade = &led_system; + }; + + chosen { + bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; + bootargs-append = " swiotlb=1 coherent_pool=2M"; + }; + +/* TZAPP is enabled only in default memory profile */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) + reserved-memory { + tzapp:tzapp@49B00000 { /* TZAPPS */ + no-map; + reg = <0x0 0x49B00000 0x0 0x00600000>; + }; + }; +#endif +}; + +&tlmm { + uart_pins: uart_pins { + mux { + pins = "gpio44", "gpio45"; + function = "blsp2_uart"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + spi_0_pins: spi_0_pins { + mux { + pins = "gpio38", "gpio39", "gpio40", "gpio41"; + function = "blsp0_spi"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + qpic_pins: qpic_pins { + data_0 { + pins = "gpio15"; + function = "qpic_pad0"; + drive-strength = <8>; + bias-pull-down; + }; + + data_1 { + pins = "gpio12"; + function = "qpic_pad1"; + drive-strength = <8>; + bias-pull-down; + }; + + data_2 { + pins = "gpio13"; + function = "qpic_pad2"; + drive-strength = <8>; + bias-pull-down; + }; + + data_3 { + pins = "gpio14"; + function = "qpic_pad3"; + drive-strength = <8>; + bias-pull-down; + }; + + data_4 { + pins = "gpio5"; + function = "qpic_pad4"; + drive-strength = <8>; + bias-pull-down; + }; + + data_5 { + pins = "gpio6"; + function = "qpic_pad5"; + drive-strength = <8>; + bias-pull-down; + }; + + data_6 { + pins = "gpio7"; + function = "qpic_pad6"; + drive-strength = <8>; + bias-pull-down; + }; + + data_7 { + pins = "gpio8"; + function = "qpic_pad7"; + drive-strength = <8>; + bias-pull-down; + }; + + qpic_pad { + pins = "gpio1", "gpio3", "gpio4", + "gpio10", "gpio11", "gpio17"; + function = "qpic_pad"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + button_pins: button_pins { + rst_button { + pins = "gpio19"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + mdio_pins: mdio_pinmux { + mux_0 { + pins = "gpio64"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_1 { + pins = "gpio65"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_2 { + pins = "gpio75"; + function = "gpio"; + bias-pull-up; + }; + }; + + modem_power_pins { + mux { + pins = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + output-high; + }; + }; + + leds_pins: leds_pins { + led_blue { + pins = "gpio35"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + led_green { + pins = "gpio37"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + led_red { + pins = "gpio32"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + }; +}; + +&soc { + mdio: mdio@90000 { + status = "ok"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 75 0>; + + ethernet-phy@0 { + reg = <0x03>; + }; + + ethernet-phy@1 { + reg = <0x04>; + }; + }; + + ess-switch@3a000000 { + switch_cpu_bmp = <0x01>; /* cpu port bitmap */ + switch_lan_bmp = <0x10>; /* lan port bitmap */ + switch_wan_bmp = <0x20>; /* wan port bitmap */ + switch_inner_bmp = <0x80>; /*inner port bitmap*/ + switch_mac_mode = <0x00>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ + + qcom,port_phyinfo { + port@3 { + port_id = <0x04>; + phy_address = <0x03>; + }; + + port@4 { + port_id = <0x05>; + phy_address = <0x04>; + }; + }; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <0x04>; + reg = <0x3a001600 0x200>; + qcom,mactype = <0x00>; + local-mac-address = [00 00 00 00 00 00]; + qcom,link-poll = <0x01>; + qcom,phy-mdio-addr = <0x03>; + phy-mode = "sgmii"; + }; + + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <0x05>; + reg = <0x3a001800 0x200>; + qcom,mactype = <0x00>; + local-mac-address = [00 00 00 00 00 00]; + qcom,link-poll = <0x01>; + qcom,phy-mdio-addr = <0x04>; + phy-mode = "sgmii"; + }; + + gpio_keys { + compatible = "gpio-keys"; + + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led_system: system { + label = "green:system"; + gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>; + }; + + wlan2g { + label = "blue:wlan2g"; + gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>; + }; + + wlan5g { + label = "red:wlan5g"; + gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&blsp1_uart3 { + pinctrl-0 = <&uart_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&spi_0 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-select = <0>; + status = "ok"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + compatible = "n25q128a11"; + linux,modalias = "m25p80", "n25q128a11"; + spi-max-frequency = <50000000>; + use-default-sizes; + }; +}; + +&qpic_bam { + status = "ok"; +}; + +&nand { + pinctrl-0 = <&qpic_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&nss_crypto { + status = "ok"; +}; + +&cpu0_opp_table { + compatible = "operating-points-v2"; + opp-shared; + + opp03 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <3>; + clock-latency-ns = <200000>; + }; + + /delete-node/ opp04; + /delete-node/ opp05; + /delete-node/ opp06; +}; + +/* TZAPP is enabled in default memory profile only */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) +&qseecom { + mem-start = <0x49B00000>; + mem-size = <0x600000>; + status = "ok"; +}; +#endif + +&ssphy_0 { + status = "ok"; +}; + +&qusb_phy_0 { + status = "ok"; +}; + +&qusb_phy_1 { + status = "ok"; +}; + +&usb2 { + status = "ok"; +}; + +&usb3 { + status = "ok"; +}; diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-indio-um-510axm-v1.dts b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-indio-um-510axm-v1.dts new file mode 100644 index 000000000..ef6764f67 --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-indio-um-510axm-v1.dts @@ -0,0 +1,379 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "qcom-ipq6018.dtsi" +#include "qcom-ipq6018-rpm-regulator.dtsi" +#include "qcom-ipq6018-cpr-regulator.dtsi" +#include "qcom-ipq6018-cp-cpu.dtsi" +#include +#include + +/ { + model = "Indio UM-510AXM V1"; + compatible = "indio,um-510axm-v1", "qcom,ipq6018-cp03", "qcom,ipq6018"; + + #address-cells = <0x2>; + #size-cells = <0x2>; + interrupt-parent = <&intc>; + + aliases { + /* Aliases as required by u-boot to patch MAC addresses */ + ethernet0 = "/soc/dp2"; + ethernet1 = "/soc/dp1"; + + serial0 = &blsp1_uart3; + serial1 = &blsp1_uart2; + + led-boot = &led_system; + led-failsafe = &led_system; + led-running = &led_system; + led-upgrade = &led_system; + }; + + chosen { + bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; + bootargs-append = " swiotlb=1 coherent_pool=2M"; + }; + +/* TZAPP is enabled only in default memory profile */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) + reserved-memory { + tzapp:tzapp@49B00000 { /* TZAPPS */ + no-map; + reg = <0x0 0x49B00000 0x0 0x00600000>; + }; + }; +#endif +}; + +&tlmm { + uart_pins: uart_pins { + mux { + pins = "gpio44", "gpio45"; + function = "blsp2_uart"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + spi_0_pins: spi_0_pins { + mux { + pins = "gpio38", "gpio39", "gpio40", "gpio41"; + function = "blsp0_spi"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + qpic_pins: qpic_pins { + data_0 { + pins = "gpio15"; + function = "qpic_pad0"; + drive-strength = <8>; + bias-pull-down; + }; + + data_1 { + pins = "gpio12"; + function = "qpic_pad1"; + drive-strength = <8>; + bias-pull-down; + }; + + data_2 { + pins = "gpio13"; + function = "qpic_pad2"; + drive-strength = <8>; + bias-pull-down; + }; + + data_3 { + pins = "gpio14"; + function = "qpic_pad3"; + drive-strength = <8>; + bias-pull-down; + }; + + data_4 { + pins = "gpio5"; + function = "qpic_pad4"; + drive-strength = <8>; + bias-pull-down; + }; + + data_5 { + pins = "gpio6"; + function = "qpic_pad5"; + drive-strength = <8>; + bias-pull-down; + }; + + data_6 { + pins = "gpio7"; + function = "qpic_pad6"; + drive-strength = <8>; + bias-pull-down; + }; + + data_7 { + pins = "gpio8"; + function = "qpic_pad7"; + drive-strength = <8>; + bias-pull-down; + }; + + qpic_pad { + pins = "gpio1", "gpio3", "gpio4", + "gpio10", "gpio11", "gpio17"; + function = "qpic_pad"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + button_pins: button_pins { + rst_button { + pins = "gpio19"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + mdio_pins: mdio_pinmux { + mux_0 { + pins = "gpio64"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_1 { + pins = "gpio65"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_2 { + pins = "gpio75"; + function = "gpio"; + bias-pull-up; + }; + }; + + modem_power_pins { + mux { + pins = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + output-high; + }; + }; + + leds_pins: leds_pins { + led_blue { + pins = "gpio35"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + led_green { + pins = "gpio37"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + led_red { + pins = "gpio32"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + }; +}; + +&soc { + mdio: mdio@90000 { + status = "ok"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 75 0>; + + ethernet-phy@0 { + reg = <0x03>; + }; + + ethernet-phy@1 { + reg = <0x04>; + }; + }; + + ess-switch@3a000000 { + switch_cpu_bmp = <0x01>; /* cpu port bitmap */ + switch_lan_bmp = <0x10>; /* lan port bitmap */ + switch_wan_bmp = <0x20>; /* wan port bitmap */ + switch_inner_bmp = <0x80>; /*inner port bitmap*/ + switch_mac_mode = <0x00>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ + + qcom,port_phyinfo { + port@3 { + port_id = <0x04>; + phy_address = <0x03>; + }; + + port@4 { + port_id = <0x05>; + phy_address = <0x04>; + }; + }; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <0x04>; + reg = <0x3a001600 0x200>; + qcom,mactype = <0x00>; + local-mac-address = [00 00 00 00 00 00]; + qcom,link-poll = <0x01>; + qcom,phy-mdio-addr = <0x03>; + phy-mode = "sgmii"; + }; + + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <0x05>; + reg = <0x3a001800 0x200>; + qcom,mactype = <0x00>; + local-mac-address = [00 00 00 00 00 00]; + qcom,link-poll = <0x01>; + qcom,phy-mdio-addr = <0x04>; + phy-mode = "sgmii"; + }; + + gpio_keys { + compatible = "gpio-keys"; + + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led_system: system { + label = "green:system"; + gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>; + }; + + wlan2g { + label = "blue:wlan2g"; + gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>; + }; + + wlan5g { + label = "red:wlan5g"; + gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&blsp1_uart3 { + pinctrl-0 = <&uart_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&spi_0 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-select = <0>; + status = "ok"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + compatible = "n25q128a11"; + linux,modalias = "m25p80", "n25q128a11"; + spi-max-frequency = <50000000>; + use-default-sizes; + }; +}; + +&qpic_bam { + status = "ok"; +}; + +&nand { + pinctrl-0 = <&qpic_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&nss_crypto { + status = "ok"; +}; + +&cpu0_opp_table { + compatible = "operating-points-v2"; + opp-shared; + + opp03 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <3>; + clock-latency-ns = <200000>; + }; + + /delete-node/ opp04; + /delete-node/ opp05; + /delete-node/ opp06; +}; + +/* TZAPP is enabled in default memory profile only */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) +&qseecom { + mem-start = <0x49B00000>; + mem-size = <0x600000>; + status = "ok"; +}; +#endif + +&ssphy_0 { + status = "ok"; +}; + +&qusb_phy_0 { + status = "ok"; +}; + +&qusb_phy_1 { + status = "ok"; +}; + +&usb2 { + status = "ok"; +}; + +&usb3 { + status = "ok"; +}; diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-indio-um-510axp-v1.dts b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-indio-um-510axp-v1.dts new file mode 100644 index 000000000..03c688e6a --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-indio-um-510axp-v1.dts @@ -0,0 +1,379 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "qcom-ipq6018.dtsi" +#include "qcom-ipq6018-rpm-regulator.dtsi" +#include "qcom-ipq6018-cpr-regulator.dtsi" +#include "qcom-ipq6018-cp-cpu.dtsi" +#include +#include + +/ { + model = "Indio UM-510AXP V1"; + compatible = "indio,um-510axp-v1", "qcom,ipq6018-cp03", "qcom,ipq6018"; + + #address-cells = <0x2>; + #size-cells = <0x2>; + interrupt-parent = <&intc>; + + aliases { + /* Aliases as required by u-boot to patch MAC addresses */ + ethernet0 = "/soc/dp2"; + ethernet1 = "/soc/dp1"; + + serial0 = &blsp1_uart3; + serial1 = &blsp1_uart2; + + led-boot = &led_system; + led-failsafe = &led_system; + led-running = &led_system; + led-upgrade = &led_system; + }; + + chosen { + bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; + bootargs-append = " swiotlb=1 coherent_pool=2M"; + }; + +/* TZAPP is enabled only in default memory profile */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) + reserved-memory { + tzapp:tzapp@49B00000 { /* TZAPPS */ + no-map; + reg = <0x0 0x49B00000 0x0 0x00600000>; + }; + }; +#endif +}; + +&tlmm { + uart_pins: uart_pins { + mux { + pins = "gpio44", "gpio45"; + function = "blsp2_uart"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + spi_0_pins: spi_0_pins { + mux { + pins = "gpio38", "gpio39", "gpio40", "gpio41"; + function = "blsp0_spi"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + qpic_pins: qpic_pins { + data_0 { + pins = "gpio15"; + function = "qpic_pad0"; + drive-strength = <8>; + bias-pull-down; + }; + + data_1 { + pins = "gpio12"; + function = "qpic_pad1"; + drive-strength = <8>; + bias-pull-down; + }; + + data_2 { + pins = "gpio13"; + function = "qpic_pad2"; + drive-strength = <8>; + bias-pull-down; + }; + + data_3 { + pins = "gpio14"; + function = "qpic_pad3"; + drive-strength = <8>; + bias-pull-down; + }; + + data_4 { + pins = "gpio5"; + function = "qpic_pad4"; + drive-strength = <8>; + bias-pull-down; + }; + + data_5 { + pins = "gpio6"; + function = "qpic_pad5"; + drive-strength = <8>; + bias-pull-down; + }; + + data_6 { + pins = "gpio7"; + function = "qpic_pad6"; + drive-strength = <8>; + bias-pull-down; + }; + + data_7 { + pins = "gpio8"; + function = "qpic_pad7"; + drive-strength = <8>; + bias-pull-down; + }; + + qpic_pad { + pins = "gpio1", "gpio3", "gpio4", + "gpio10", "gpio11", "gpio17"; + function = "qpic_pad"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + button_pins: button_pins { + rst_button { + pins = "gpio19"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + mdio_pins: mdio_pinmux { + mux_0 { + pins = "gpio64"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_1 { + pins = "gpio65"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_2 { + pins = "gpio75"; + function = "gpio"; + bias-pull-up; + }; + }; + + modem_power_pins { + mux { + pins = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + output-high; + }; + }; + + leds_pins: leds_pins { + led_blue { + pins = "gpio35"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + led_green { + pins = "gpio37"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + led_red { + pins = "gpio32"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + }; +}; + +&soc { + mdio: mdio@90000 { + status = "ok"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 75 0>; + + ethernet-phy@0 { + reg = <0x03>; + }; + + ethernet-phy@1 { + reg = <0x04>; + }; + }; + + ess-switch@3a000000 { + switch_cpu_bmp = <0x01>; /* cpu port bitmap */ + switch_lan_bmp = <0x10>; /* lan port bitmap */ + switch_wan_bmp = <0x20>; /* wan port bitmap */ + switch_inner_bmp = <0x80>; /*inner port bitmap*/ + switch_mac_mode = <0x00>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ + + qcom,port_phyinfo { + port@3 { + port_id = <0x04>; + phy_address = <0x03>; + }; + + port@4 { + port_id = <0x05>; + phy_address = <0x04>; + }; + }; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <0x04>; + reg = <0x3a001600 0x200>; + qcom,mactype = <0x00>; + local-mac-address = [00 00 00 00 00 00]; + qcom,link-poll = <0x01>; + qcom,phy-mdio-addr = <0x03>; + phy-mode = "sgmii"; + }; + + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <0x05>; + reg = <0x3a001800 0x200>; + qcom,mactype = <0x00>; + local-mac-address = [00 00 00 00 00 00]; + qcom,link-poll = <0x01>; + qcom,phy-mdio-addr = <0x04>; + phy-mode = "sgmii"; + }; + + gpio_keys { + compatible = "gpio-keys"; + + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led_system: system { + label = "green:system"; + gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>; + }; + + wlan2g { + label = "blue:wlan2g"; + gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>; + }; + + wlan5g { + label = "red:wlan5g"; + gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&blsp1_uart3 { + pinctrl-0 = <&uart_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&spi_0 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-select = <0>; + status = "ok"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + compatible = "n25q128a11"; + linux,modalias = "m25p80", "n25q128a11"; + spi-max-frequency = <50000000>; + use-default-sizes; + }; +}; + +&qpic_bam { + status = "ok"; +}; + +&nand { + pinctrl-0 = <&qpic_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&nss_crypto { + status = "ok"; +}; + +&cpu0_opp_table { + compatible = "operating-points-v2"; + opp-shared; + + opp03 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <3>; + clock-latency-ns = <200000>; + }; + + /delete-node/ opp04; + /delete-node/ opp05; + /delete-node/ opp06; +}; + +/* TZAPP is enabled in default memory profile only */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) +&qseecom { + mem-start = <0x49B00000>; + mem-size = <0x600000>; + status = "ok"; +}; +#endif + +&ssphy_0 { + status = "ok"; +}; + +&qusb_phy_0 { + status = "ok"; +}; + +&qusb_phy_1 { + status = "ok"; +}; + +&usb2 { + status = "ok"; +}; + +&usb3 { + status = "ok"; +}; diff --git a/feeds/ipq807x/ipq807x/image/ipq60xx.mk b/feeds/ipq807x/ipq807x/image/ipq60xx.mk index f998944f3..ff4fbd6e9 100644 --- a/feeds/ipq807x/ipq807x/image/ipq60xx.mk +++ b/feeds/ipq807x/ipq807x/image/ipq60xx.mk @@ -38,6 +38,33 @@ define Device/edgecore_eap101 endef TARGET_DEVICES += edgecore_eap101 +define Device/indio_um-310ax-v1 + DEVICE_TITLE := Indio UM-310AX V1 + DEVICE_DTS := qcom-ipq6018-indio-um-310ax-v1 + DEVICE_DTS_CONFIG := config@cp03-c1 + SUPPORTED_DEVICES := indio,um-310ax-v1 + DEVICE_PACKAGES := ath11k-wifi-indio-um-310ax-v1 uboot-env +endef +TARGET_DEVICES += indio_um-310ax-v1 + +define Device/indio_um-510axp-v1 + DEVICE_TITLE := Indio UM-510AXP V1 + DEVICE_DTS := qcom-ipq6018-indio-um-510axp-v1 + DEVICE_DTS_CONFIG := config@cp03-c1 + SUPPORTED_DEVICES := indio,um-510axp-v1 + DEVICE_PACKAGES := ath11k-wifi-indio-um-510axp-v1 uboot-env +endef +TARGET_DEVICES += indio_um-510axp-v1 + +define Device/indio_um-510axm-v1 + DEVICE_TITLE := Indio UM-510AXM V1 + DEVICE_DTS := qcom-ipq6018-indio-um-510axm-v1 + DEVICE_DTS_CONFIG := config@cp03-c1 + SUPPORTED_DEVICES := indio,um-510axm-v1 + DEVICE_PACKAGES := ath11k-wifi-indio-um-510axm-v1 uboot-env +endef +TARGET_DEVICES += indio_um-510axm-v1 + define Device/wallys_dr6018 DEVICE_TITLE := Wallys DR6018 DEVICE_DTS := qcom-ipq6018-wallys-dr6018 diff --git a/feeds/wifi-ax/ath11k-wifi/Makefile b/feeds/wifi-ax/ath11k-wifi/Makefile index 9d8751044..3798680d9 100644 --- a/feeds/wifi-ax/ath11k-wifi/Makefile +++ b/feeds/wifi-ax/ath11k-wifi/Makefile @@ -36,6 +36,9 @@ ALLWIFIBOARDS:= \ sercomm-wallaby \ edgecore-eap102 \ edgecore-eap104 \ + indio-um-310ax-v1 \ + indio-um-510axp-v1 \ + indio-um-510axm-v1 \ plasmacloud-pax1800 \ wallys-dr6018 \ wallys-dr6018-v4 \ @@ -240,6 +243,9 @@ $(eval $(call generate-ath11k-wifi-package,wallys-dr6018-v4,Wallys DR6018 V4)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap101,EdgeCore EAP101)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap102,Edgecore EAP102)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap104,Edgecore EAP104)) +$(eval $(call generate-ath11k-wifi-package,indio-um-310ax-v1,Indio UM-310AX V1)) +$(eval $(call generate-ath11k-wifi-package,indio-um-510axp-v1,Indio UM-510AXP V1)) +$(eval $(call generate-ath11k-wifi-package,indio-um-510axm-v1,Indio UM-510AXM V1)) $(eval $(call generate-ath11k-wifi-package,tplink-ex227,TP-Link EX227)) $(eval $(call generate-ath11k-wifi-package,tplink-ex447,TP-Link EX447)) $(eval $(call generate-ath11k-wifi-package,yuncore-ax840,YunCore AX840)) diff --git a/feeds/wifi-ax/ath11k-wifi/board-indio-um-310ax-v1.bin.IPQ6018 b/feeds/wifi-ax/ath11k-wifi/board-indio-um-310ax-v1.bin.IPQ6018 new file mode 100644 index 000000000..349d35304 Binary files /dev/null and b/feeds/wifi-ax/ath11k-wifi/board-indio-um-310ax-v1.bin.IPQ6018 differ diff --git a/feeds/wifi-ax/ath11k-wifi/board-indio-um-510axm-v1.bin.IPQ6018 b/feeds/wifi-ax/ath11k-wifi/board-indio-um-510axm-v1.bin.IPQ6018 new file mode 100644 index 000000000..349d35304 Binary files /dev/null and b/feeds/wifi-ax/ath11k-wifi/board-indio-um-510axm-v1.bin.IPQ6018 differ diff --git a/feeds/wifi-ax/ath11k-wifi/board-indio-um-510axp-v1.bin.IPQ6018 b/feeds/wifi-ax/ath11k-wifi/board-indio-um-510axp-v1.bin.IPQ6018 new file mode 100644 index 000000000..349d35304 Binary files /dev/null and b/feeds/wifi-ax/ath11k-wifi/board-indio-um-510axp-v1.bin.IPQ6018 differ diff --git a/profiles/indio_um-310ax-v1.yml b/profiles/indio_um-310ax-v1.yml new file mode 100644 index 000000000..d24f785ff --- /dev/null +++ b/profiles/indio_um-310ax-v1.yml @@ -0,0 +1,12 @@ +--- +profile: indio_um-310ax-v1 +target: ipq807x +subtarget: ipq60xx +description: Build image for the Indio UM-310AX V1 +image: bin/targets/ipq807x/ipq60xx/openwrt-ipq807x-indio-um-310ax-v1-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x +include: + - wifi-ax + - ucentral-ap diff --git a/profiles/indio_um-510axm-v1.yml b/profiles/indio_um-510axm-v1.yml new file mode 100644 index 000000000..4d077e694 --- /dev/null +++ b/profiles/indio_um-510axm-v1.yml @@ -0,0 +1,12 @@ +--- +profile: indio_um-510axm-v1 +target: ipq807x +subtarget: ipq60xx +description: Build image for the Indio UM-510AXM V1 +image: bin/targets/ipq807x/ipq60xx/openwrt-ipq807x-indio-um-510axm-v1-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x +include: + - wifi-ax + - ucentral-ap diff --git a/profiles/indio_um-510axp-v1.yml b/profiles/indio_um-510axp-v1.yml new file mode 100644 index 000000000..ba3b82e9d --- /dev/null +++ b/profiles/indio_um-510axp-v1.yml @@ -0,0 +1,12 @@ +--- +profile: indio_um-510axp-v1 +target: ipq807x +subtarget: ipq60xx +description: Build image for the Indio UM-510AXP V1 +image: bin/targets/ipq807x/ipq60xx/openwrt-ipq807x-indio-um-510axp-v1-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x +include: + - wifi-ax + - ucentral-ap