diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 9188baf4a5..3c4d9af328 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -57,6 +57,7 @@ ALLWIFIBOARDS:= \ linksys_mx8500 \ linksys_spnmx56 \ linksys_whw03 \ + meraki_mr30h \ meraki_z3 \ netgear_lbr20 \ netgear_rax120v2 \ @@ -231,6 +232,7 @@ $(eval $(call generate-ipq-wifi-package,linksys_mx5500,Linksys MX5500)) $(eval $(call generate-ipq-wifi-package,linksys_mx8500,Linksys MX8500)) $(eval $(call generate-ipq-wifi-package,linksys_spnmx56,Linksys SPNMX56)) $(eval $(call generate-ipq-wifi-package,linksys_whw03,Linksys WHW03)) +$(eval $(call generate-ipq-wifi-package,meraki_mr30h,Meraki MR30H)) $(eval $(call generate-ipq-wifi-package,meraki_z3,Meraki Z3)) $(eval $(call generate-ipq-wifi-package,netgear_lbr20,Netgear LBR20)) $(eval $(call generate-ipq-wifi-package,netgear_rax120v2,Netgear RAX120v2)) diff --git a/target/linux/ipq40xx/base-files/etc/board.d/01_leds b/target/linux/ipq40xx/base-files/etc/board.d/01_leds index 96ad903244..2ab1b679ab 100644 --- a/target/linux/ipq40xx/base-files/etc/board.d/01_leds +++ b/target/linux/ipq40xx/base-files/etc/board.d/01_leds @@ -109,6 +109,16 @@ meraki,z3) ucidef_set_led_netdev "lan4_link" "LAN5 (link)" "green:lan-8" "lan5" "link" ucidef_set_led_netdev "lan4_act" "LAN5 (txrx)" "green:lan-9" "lan5" "tx rx" ;; +meraki,mr30h) + ucidef_set_led_netdev "lan1_link" "LAN1 (link)" "green:lan-0" "lan1" "link" + ucidef_set_led_netdev "lan1_act" "LAN1 (txrx)" "amber:lan-1" "lan1" "tx rx" + ucidef_set_led_netdev "lan2_link" "LAN2 (link)" "green:lan-2" "lan2" "link" + ucidef_set_led_netdev "lan2_act" "LAN2 (txrx)" "amber:lan-3" "lan2" "tx rx" + ucidef_set_led_netdev "lan3_link" "LAN3 (link)" "green:lan-4" "lan3" "link" + ucidef_set_led_netdev "lan3_act" "LAN3 (txrx)" "amber:lan-5" "lan3" "tx rx" + ucidef_set_led_netdev "lan4_link" "LAN4 (link)" "green:lan-6" "lan4" "link" + ucidef_set_led_netdev "lan4_act" "LAN4 (txrx)" "amber:lan-7" "lan4" "tx rx" + ;; netgear,ex6100v2 |\ netgear,ex6150v2) ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:router" "phy0tpt" diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network index af92401a30..a96bb64b4d 100644 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -138,6 +138,9 @@ ipq40xx_setup_interfaces() ucidef_set_interface_lan "lan1 lan2" ucidef_set_interface "wan" device "/dev/cdc-wdm0" protocol "qmi" ;; + meraki,mr30h) + ucidef_set_interface_lan "lan1 lan2 lan3 lan4 lan5" + ;; *) echo "Unsupported hardware. Network interfaces not initialized" ;; diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh index cea5b0ce69..bbf618716f 100644 --- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh @@ -178,6 +178,7 @@ platform_do_upgrade() { linksys,whw03) platform_do_upgrade_linksys_emmc "$1" ;; + meraki,mr30h |\ meraki,mr33 |\ meraki,mr74) CI_KERNPART="part.safe" diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr30h.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr30h.dts new file mode 100644 index 0000000000..1789646303 --- /dev/null +++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr30h.dts @@ -0,0 +1,155 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Device Tree Source for Meraki MR30H (Noisy Cricket) + +#include "qcom-ipq4029-wired-qca-common.dtsi" + +/ { + model = "Meraki MR30H"; + compatible = "meraki,mr30h"; + + soc { + /* for USB PHY, device has no USB port */ + tcsr@194b000 { + status = "disabled"; + }; + }; + + leds { + compatible = "gpio-leds"; + + power_orange: power { + color = ; + function = LED_FUNCTION_POWER; + gpios = <&tlmm 49 GPIO_ACTIVE_LOW>; + panic-indicator; + }; + + led-0 { + /* LAN 1 act */ + color = ; + function = LED_FUNCTION_ACTIVITY; + gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; + }; + + led-1 { + color = ; + function = LED_FUNCTION_LAN; + function-enumerator = <1>; + gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; + }; + + led-2 { + /* LAN 2 act */ + color = ; + function = LED_FUNCTION_ACTIVITY; + gpios = <&tlmm 27 GPIO_ACTIVE_HIGH>; + }; + + led-3 { + color = ; + function = LED_FUNCTION_LAN; + function-enumerator = <2>; + gpios = <&tlmm 26 GPIO_ACTIVE_LOW>; + }; + + led-4 { + /* LAN 3 act */ + color = ; + function = LED_FUNCTION_ACTIVITY; + gpios = <&tlmm 25 GPIO_ACTIVE_LOW>; + }; + + led-5 { + color = ; + function = LED_FUNCTION_LAN; + function-enumerator = <3>; + gpios = <&tlmm 24 GPIO_ACTIVE_LOW>; + }; + + led-6 { + /* LAN 4 act */ + color = ; + function = LED_FUNCTION_ACTIVITY; + gpios = <&tlmm 23 GPIO_ACTIVE_LOW>; + }; + + led-7 { + color = ; + function = LED_FUNCTION_LAN; + function-enumerator = <4>; + gpios = <&tlmm 22 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&usb2_hs_phy { + status = "disabled"; +}; + +&usb2 { + status = "disabled"; +}; + +&usb3_hs_phy { + status = "disabled"; +}; + +&usb3_ss_phy { + status = "disabled"; +}; + +&usb3 { + status = "disabled"; +}; + +&pcie0 { + status = "okay"; + perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; + wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; +}; + +&pcie_bridge0 { + wifi2: wifi@0,0 { + compatible = "qcom,ath10k"; + status = "okay"; + reg = <0x00010000 0 0 0 0>; + nvmem-cells = <&cal_factory_9000>; + nvmem-cell-names = "calibration"; + }; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "Meraki-MR30H"; +}; + +&wifi1 { + status = "okay"; + qcom,ath10k-calibration-variant = "Meraki-MR30H"; +}; + + +&swport1 { + label = "lan4"; + status = "okay"; +}; + +&swport2 { + label = "lan3"; + status = "okay"; +}; + +&swport3 { + label = "lan2"; + status = "okay"; +}; + +&swport4 { + label = "lan1"; + status = "okay"; +}; + +&swport5 { + label = "lan5"; + status = "okay"; +}; diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk index 648e73d030..7afe64b415 100644 --- a/target/linux/ipq40xx/image/generic.mk +++ b/target/linux/ipq40xx/image/generic.mk @@ -798,6 +798,7 @@ define Device/meraki_mr30h $(call Device/meraki_common) DEVICE_MODEL := MR30H DEVICE_DTS_CONFIG := config@2 + DEVICE_PACKAGES += ipq-wifi-meraki_mr30h endef TARGET_DEVICES += meraki_mr30h