[openwrt/openwrt] mediatek: add support for Ubiquiti UniFi 6 LR v3

LEDE Commits lede-commits at lists.infradead.org
Tue Sep 5 17:34:57 PDT 2023


dangole pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/230c09d2034995540aaec920466eb25387173e56

commit 230c09d2034995540aaec920466eb25387173e56
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Mon Aug 28 00:14:10 2023 +0100

    mediatek: add support for Ubiquiti UniFi 6 LR v3
    
    Some recent models of the Ubiquiti Networks UniFi 6 LR access point
    come with a RealTek RTL8211FS 1000M/100M/10M PHY instead of the
    Aquantia AQR112 2500M/1000M/100M/10M PHY used in both v1 and v2. Add
    build for this variant so we can support Ethernet with the PHY.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    (cherry picked from commit a0f4eadf6a25fb54c189bde91425673e11125d35)
---
 .../mediatek/dts/mt7622-ubnt-unifi-6-lr-v1.dtsi    |  25 ++++++
 .../mediatek/dts/mt7622-ubnt-unifi-6-lr-v2.dtsi    |  26 ++++++
 .../dts/mt7622-ubnt-unifi-6-lr-v3-ubootmod.dts     |  84 +++++++++++++++++
 .../mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dts     | 100 +++++++++++++++++++++
 .../mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dtsi    |  50 +++++++++++
 .../linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi |  25 ------
 target/linux/mediatek/image/mt7622.mk              |  33 ++++++-
 7 files changed, 316 insertions(+), 27 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v1.dtsi b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v1.dtsi
index b3299a988f..91719865dd 100644
--- a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v1.dtsi
+++ b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v1.dtsi
@@ -1,5 +1,30 @@
 #include "mt7622-ubnt-unifi-6-lr.dtsi"
 
+&eth {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&eth_pins>;
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+
+		phy-mode = "2500base-x";
+		phy-handle = <&phy0>;
+		phy-connection-type = "2500base-x";
+	};
+
+	mdio: mdio-bus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		phy0: ethernet-phy at 8 {
+			compatible = "ethernet-phy-ieee802.3-c45";
+			reg = <0x8>;
+		};
+	};
+};
+
 &i2c0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c0_pins>;
diff --git a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v2.dtsi b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v2.dtsi
index 4d278805d4..ab3c592925 100644
--- a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v2.dtsi
+++ b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v2.dtsi
@@ -22,3 +22,29 @@
 		};
 	};
 };
+
+&eth {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&eth_pins>;
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+
+		phy-mode = "2500base-x";
+		phy-handle = <&phy0>;
+		phy-connection-type = "2500base-x";
+	};
+
+	mdio: mdio-bus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		phy0: ethernet-phy at 8 {
+			compatible = "ethernet-phy-ieee802.3-c45";
+			reg = <0x8>;
+		};
+	};
+};
+
diff --git a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3-ubootmod.dts b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3-ubootmod.dts
new file mode 100644
index 0000000000..46faf8da30
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3-ubootmod.dts
@@ -0,0 +1,84 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7622-ubnt-unifi-6-lr-v3.dtsi"
+
+/ {
+	model = "Ubiquiti UniFi 6 LR v3 (U-Boot mod)";
+	compatible = "ubnt,unifi-6-lr-v3-ubootmod", "mediatek,mt7622";
+};
+
+&nor_partitions {
+	partition at 0 {
+		label = "bl2";
+		reg = <0x0 0x20000>;
+	};
+
+	partition at 20000 {
+		label = "fip";
+		reg = <0x20000 0xa0000>;
+	};
+
+	partition at c0000 {
+		label = "u-boot-env";
+		reg = <0xc0000 0x10000>;
+	};
+
+	factory: partition at d0000 {
+		label = "factory";
+		reg = <0xd0000 0x40000>;
+		read-only;
+	};
+
+	eeprom: partition at 110000 {
+		label = "eeprom";
+		reg = <0x110000 0x10000>;
+		read-only;
+	};
+
+	partition at 120000 {
+		label = "recovery";
+		reg = <0x120000 0xee0000>;
+	};
+
+	partition at 1000000 {
+		compatible = "denx,fit";
+		label = "firmware";
+		reg = <0x1000000 0x3000000>;
+	};
+};
+
+&wmac {
+	mediatek,mtd-eeprom = <&factory 0x0>;
+	nvmem-cells = <&macaddr_eeprom_0>;
+	nvmem-cell-names = "mac-address";
+	status = "okay";
+};
+
+&slot0 {
+	wifi at 0,0 {
+		reg = <0x0 0 0 0 0>;
+		mediatek,mtd-eeprom = <&factory 0x20000>;
+		nvmem-cells = <&macaddr_eeprom_6>;
+		nvmem-cell-names = "mac-address";
+		ieee80211-freq-limit = <5000000 6000000>;
+	};
+};
+
+&gmac0 {
+	nvmem-cells = <&macaddr_eeprom_0>;
+	nvmem-cell-names = "mac-address";
+};
+
+&eeprom {
+	compatible = "nvmem-cells";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	macaddr_eeprom_0: macaddr at 0 {
+		reg = <0x0 0x6>;
+	};
+
+	macaddr_eeprom_6: macaddr at 6 {
+		reg = <0x6 0x6>;
+	};
+};
diff --git a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dts b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dts
new file mode 100644
index 0000000000..34bdaa6254
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dts
@@ -0,0 +1,100 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7622-ubnt-unifi-6-lr-v3.dtsi"
+
+/ {
+	model = "Ubiquiti UniFi 6 LR v3";
+	compatible = "ubnt,unifi-6-lr-v3", "mediatek,mt7622";
+};
+
+&nor_partitions {
+	partition at 0 {
+		label = "preloader";
+		reg = <0x0 0x40000>;
+	};
+
+	partition at 40000 {
+		label = "atf";
+		reg = <0x40000 0x20000>;
+	};
+
+	partition at 60000 {
+		label = "u-boot";
+		reg = <0x60000 0x60000>;
+	};
+
+	partition at c0000 {
+		label = "u-boot-env";
+		reg = <0xc0000 0x10000>;
+	};
+
+	factory: partition at d0000 {
+		label = "factory";
+		reg = <0xd0000 0x40000>;
+		read-only;
+	};
+
+	eeprom: partition at 110000 {
+		label = "eeprom";
+		reg = <0x110000 0x10000>;
+		read-only;
+	};
+
+	partition at 120000 {
+		label = "bs";
+		reg = <0x120000 0x10000>;
+	};
+
+	partition at 130000 {
+		label = "cfg";
+		reg = <0x130000 0x100000>;
+		read-only;
+	};
+
+	partition at 230000 {
+		compatible = "denx,fit";
+		label = "firmware";
+		reg = <0x230000 0x1ee0000>;
+	};
+
+	partition at 2110000 {
+		label = "kernel1";
+		reg = <0x2110000 0x1ee0000>;
+	};
+};
+
+&wmac {
+	mediatek,mtd-eeprom = <&factory 0x0>;
+	nvmem-cells = <&macaddr_eeprom_0>;
+	nvmem-cell-names = "mac-address";
+	status = "okay";
+};
+
+&slot0 {
+	wifi at 0,0 {
+		reg = <0x0 0 0 0 0>;
+		mediatek,mtd-eeprom = <&factory 0x20000>;
+		nvmem-cells = <&macaddr_eeprom_6>;
+		nvmem-cell-names = "mac-address";
+		ieee80211-freq-limit = <5000000 6000000>;
+	};
+};
+
+&gmac0 {
+	nvmem-cells = <&macaddr_eeprom_0>;
+	nvmem-cell-names = "mac-address";
+};
+
+&eeprom {
+	compatible = "nvmem-cells";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	macaddr_eeprom_0: macaddr at 0 {
+		reg = <0x0 0x6>;
+	};
+
+	macaddr_eeprom_6: macaddr at 6 {
+		reg = <0x6 0x6>;
+	};
+};
diff --git a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dtsi b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dtsi
new file mode 100644
index 0000000000..c581bd7d90
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dtsi
@@ -0,0 +1,50 @@
+#include "mt7622-ubnt-unifi-6-lr.dtsi"
+
+/ {
+	aliases {
+		led-boot = &led_white;
+		led-failsafe = &led_white;
+		led-running = &led_blue;
+		led-upgrade = &led_blue;
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		led_white: dome_white {
+			label = "white:dome";
+			gpios = <&pio 0x43 GPIO_ACTIVE_LOW>;
+		};
+
+		led_blue: dome_blue {
+			label = "blue:dome";
+			gpios = <&pio 0x44 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&eth {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&eth_pins>;
+
+	gmac0: mac at 0 {
+		compatible = "mediatek,eth-mac";
+		reg = <0>;
+
+		phy-mode = "sgmii";
+		phy-handle = <&phy0>;
+		phy-connection-type = "sgmii";
+		managed = "in-band-status";
+	};
+
+	mdio: mdio-bus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		phy0: ethernet-phy at 0 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <0x0>;
+		};
+	};
+};
diff --git a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi
index 4231cc1f79..783b0c388e 100644
--- a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi
+++ b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi
@@ -151,31 +151,6 @@
 	status = "disabled";
 };
 
-&eth {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&eth_pins>;
-
-	gmac0: mac at 0 {
-		compatible = "mediatek,eth-mac";
-		reg = <0>;
-
-		phy-mode = "2500base-x";
-		phy-handle = <&phy0>;
-		phy-connection-type = "2500base-x";
-	};
-
-	mdio: mdio-bus {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		phy0: ethernet-phy at 8 {
-			compatible = "ethernet-phy-ieee802.3-c45";
-			reg = <0x8>;
-		};
-	};
-};
-
 &pwrap {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pmic_bus_pins>;
diff --git a/target/linux/mediatek/image/mt7622.mk b/target/linux/mediatek/image/mt7622.mk
index 040ef957db..d40eb54cb7 100644
--- a/target/linux/mediatek/image/mt7622.mk
+++ b/target/linux/mediatek/image/mt7622.mk
@@ -307,7 +307,7 @@ define Device/ubnt_unifi-6-lr-v1-ubootmod
   IMAGE/sysupgrade.itb := append-kernel | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | pad-rootfs | append-metadata
   ARTIFACTS := preloader.bin bl31-uboot.fip
   ARTIFACT/preloader.bin := bl2 nor-2ddr
-  ARTIFACT/bl31-uboot.fip := bl31-uboot ubnt_unifi-6-lr
+  ARTIFACT/bl31-uboot.fip := bl31-uboot ubnt_unifi-6-lr-v1
   SUPPORTED_DEVICES += ubnt,unifi-6-lr-ubootmod
 endef
 TARGET_DEVICES += ubnt_unifi-6-lr-v1-ubootmod
@@ -337,10 +337,39 @@ define Device/ubnt_unifi-6-lr-v2-ubootmod
   IMAGE/sysupgrade.itb := append-kernel | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | pad-rootfs | append-metadata
   ARTIFACTS := preloader.bin bl31-uboot.fip
   ARTIFACT/preloader.bin := bl2 nor-2ddr
-  ARTIFACT/bl31-uboot.fip := bl31-uboot ubnt_unifi-6-lr
+  ARTIFACT/bl31-uboot.fip := bl31-uboot ubnt_unifi-6-lr-v2
 endef
 TARGET_DEVICES += ubnt_unifi-6-lr-v2-ubootmod
 
+define Device/ubnt_unifi-6-lr-v3
+  DEVICE_VENDOR := Ubiquiti
+  DEVICE_MODEL := UniFi 6 LR
+  DEVICE_VARIANT := v3
+  DEVICE_DTS_CONFIG := config at 1
+  DEVICE_DTS := mt7622-ubnt-unifi-6-lr-v3
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_PACKAGES := kmod-mt7915-firmware
+endef
+TARGET_DEVICES += ubnt_unifi-6-lr-v3
+
+define Device/ubnt_unifi-6-lr-v3-ubootmod
+  DEVICE_VENDOR := Ubiquiti
+  DEVICE_MODEL := UniFi 6 LR
+  DEVICE_VARIANT := v3 U-Boot mod
+  DEVICE_DTS := mt7622-ubnt-unifi-6-lr-v3-ubootmod
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_PACKAGES := kmod-mt7915-firmware
+  KERNEL := kernel-bin | lzma
+  KERNEL_INITRAMFS_SUFFIX := -recovery.itb
+  KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  IMAGES := sysupgrade.itb
+  IMAGE/sysupgrade.itb := append-kernel | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | pad-rootfs | append-metadata
+  ARTIFACTS := preloader.bin bl31-uboot.fip
+  ARTIFACT/preloader.bin := bl2 nor-2ddr
+  ARTIFACT/bl31-uboot.fip := bl31-uboot ubnt_unifi-6-lr-v3
+endef
+TARGET_DEVICES += ubnt_unifi-6-lr-v3-ubootmod
+
 define Device/xiaomi_redmi-router-ax6s
   DEVICE_VENDOR := Xiaomi
   DEVICE_MODEL := Redmi Router AX6S




More information about the lede-commits mailing list