Skip to content

Commit

Permalink
mediatek: add support for Ubiquiti UniFi 6 LR v3
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
dangowrt committed Aug 28, 2023
1 parent fff4441 commit a0f4ead
Show file tree
Hide file tree
Showing 7 changed files with 316 additions and 27 deletions.
25 changes: 25 additions & 0 deletions target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v1.dtsi
Original file line number Diff line number Diff line change
@@ -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>;
Expand Down
26 changes: 26 additions & 0 deletions target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v2.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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>;
};
};
};

84 changes: 84 additions & 0 deletions target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3-ubootmod.dts
Original file line number Diff line number Diff line change
@@ -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>;
};
};
100 changes: 100 additions & 0 deletions target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dts
Original file line number Diff line number Diff line change
@@ -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>;
};
};
50 changes: 50 additions & 0 deletions target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-v3.dtsi
Original file line number Diff line number Diff line change
@@ -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>;
};
};
};
25 changes: 0 additions & 25 deletions target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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>;
Expand Down
33 changes: 31 additions & 2 deletions target/linux/mediatek/image/mt7622.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit a0f4ead

Please sign in to comment.