aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2023-08-28 00:14:10 +0100
committerDaniel Golle <daniel@makrotopia.org>2023-09-04 23:00:34 +0100
commit230c09d2034995540aaec920466eb25387173e56 (patch)
tree335292a466fef2d7506da1764a71e9c24095698b
parentc8c18051002c7812bfa33c4572e94a0fd855bbeb (diff)
downloadupstream-230c09d2034995540aaec920466eb25387173e56.tar.gz
upstream-230c09d2034995540aaec920466eb25387173e56.tar.bz2
upstream-230c09d2034995540aaec920466eb25387173e56.zip
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@makrotopia.org> (cherry picked from commit a0f4eadf6a25fb54c189bde91425673e11125d35)
-rw-r--r--target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v1.dtsi25
-rw-r--r--target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v2.dtsi26
-rw-r--r--target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3-ubootmod.dts84
-rw-r--r--target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dts100
-rw-r--r--target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dtsi50
-rw-r--r--target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi25
-rw-r--r--target/linux/mediatek/image/mt7622.mk33
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@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@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@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@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@0 {
+ label = "bl2";
+ reg = <0x0 0x20000>;
+ };
+
+ partition@20000 {
+ label = "fip";
+ reg = <0x20000 0xa0000>;
+ };
+
+ partition@c0000 {
+ label = "u-boot-env";
+ reg = <0xc0000 0x10000>;
+ };
+
+ factory: partition@d0000 {
+ label = "factory";
+ reg = <0xd0000 0x40000>;
+ read-only;
+ };
+
+ eeprom: partition@110000 {
+ label = "eeprom";
+ reg = <0x110000 0x10000>;
+ read-only;
+ };
+
+ partition@120000 {
+ label = "recovery";
+ reg = <0x120000 0xee0000>;
+ };
+
+ partition@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@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@0 {
+ reg = <0x0 0x6>;
+ };
+
+ macaddr_eeprom_6: macaddr@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@0 {
+ label = "preloader";
+ reg = <0x0 0x40000>;
+ };
+
+ partition@40000 {
+ label = "atf";
+ reg = <0x40000 0x20000>;
+ };
+
+ partition@60000 {
+ label = "u-boot";
+ reg = <0x60000 0x60000>;
+ };
+
+ partition@c0000 {
+ label = "u-boot-env";
+ reg = <0xc0000 0x10000>;
+ };
+
+ factory: partition@d0000 {
+ label = "factory";
+ reg = <0xd0000 0x40000>;
+ read-only;
+ };
+
+ eeprom: partition@110000 {
+ label = "eeprom";
+ reg = <0x110000 0x10000>;
+ read-only;
+ };
+
+ partition@120000 {
+ label = "bs";
+ reg = <0x120000 0x10000>;
+ };
+
+ partition@130000 {
+ label = "cfg";
+ reg = <0x130000 0x100000>;
+ read-only;
+ };
+
+ partition@230000 {
+ compatible = "denx,fit";
+ label = "firmware";
+ reg = <0x230000 0x1ee0000>;
+ };
+
+ partition@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@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@0 {
+ reg = <0x0 0x6>;
+ };
+
+ macaddr_eeprom_6: macaddr@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@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@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@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@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@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