ath9k0: wifi@0,11 { /* 2.4 GHz */
compatible = "pci168c,0029";
mtd-mac-address = <&hwinfo 0x1c>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
reg = <0x8800 0 0 0 0>;
#gpio-cells = <2>;
gpio-controller;
ath9k1: wifi@0,12 { /* 5 GHz */
compatible = "pci168c,0029";
mtd-mac-address = <&hwinfo 0x1c>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
reg = <0x9000 0 0 0 0>;
#gpio-cells = <2>;
gpio-controller;
status = "okay";
mtd-mac-address = <&art 0x520c>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
phy-handle = <&phy4>;
};
reg = <0x8800 0 0 0 0>;
qca,no-eeprom;
mtd-mac-address = <&config 0x66>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
#gpio-cells = <2>;
gpio-controller;
};
reg = <0x9000 0 0 0 0>;
qca,no-eeprom;
mtd-mac-address = <&config 0x66>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
#gpio-cells = <2>;
gpio-controller;
};
status = "okay";
mtd-mac-address = <&art 0x120c>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&pcie {
compatible = "pci168c,002b";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
compatible = "pci168c,002b";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
ð0 {
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
ð1 {
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&ath9k {
compatible = "pci168c,002e";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
compatible = "pci168c,002e";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
ð1 {
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
ð1 {
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
compatible = "pci168c,002a";
reg = <0x0 0 0 0 0>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
compatible = "pci168c,002a";
reg = <0x0 0 0 0 0>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
mtd-mac-address = <&config 0x66>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
status = "okay";
mtd-mac-address = <&art 0x1002>;
- mtd-mac-address-increment-byte = <3>;
- mtd-mac-address-increment = <0x40>;
+ mac-address-increment-byte = <3>;
+ mac-address-increment = <0x40>;
};
&mdio1 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
gmac-config {
device = <&gmac>;
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&pinmux {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&usb {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
gmac-config {
device = <&gmac>;
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&wmac {
phy-handle = <&swphy0>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
phy-handle = <&swphy0>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
ð1 {
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&hw_info 0x0>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
};
status = "okay";
mtd-mac-address = <&hw_info 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&nand {
pll-data = <0x02000000 0x00000101 0x00001616>;
mtd-mac-address = <&art 0x1002>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
phy-mode = "rgmii";
phy-handle = <&phy0>;
ð0 {
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
};
&pcie {
&wmac {
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&pcie {
wifi@0,0,0 {
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
};
};
&wmac {
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&pcie {
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <8>;
+ mac-address-increment = <8>;
};
};
compatible = "168c,0030";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
mtd-cal-data = <&art 0x5000>;
qca,no-eeprom;
qca,disable-5ghz;
qca,disable-2ghz;
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&mdio0 {
phy-handle = <&swphy4>;
mtd-mac-address = <&pridata 0x400>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
phy-handle = <&swphy4>;
mtd-mac-address = <&pridata 0x400>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
phy-handle = <&swphy0>;
mtd-mac-address = <&art 0x1002>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
gmac-config {
device = <&gmac>;
phy-handle = <&swphy4>;
mtd-mac-address = <&config 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
phy-handle = <&swphy4>;
mtd-mac-address = <&config 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&config 0x0>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
&pinmux {
&ath9k {
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&wmac {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
gmac-config {
device = <&gmac>;
phy-handle = <&swphy4>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
&wmac {
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&mdio0 {
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
mtd-mac-address = <&addr 0x0>;
- mtd-mac-address-increment = <0x10>;
+ mac-address-increment = <0x10>;
#gpio-cells = <2>;
gpio-controller;
};
pll-data = <0xe000000 0x04000101 0x04001313>;
mtd-mac-address = <&addr 0x0>;
- mtd-mac-address-increment = <0x21>;
+ mac-address-increment = <0x21>;
phy-mode = "rgmii-rxid";
phy-handle = <&phy4>;
ð0 {
mtd-mac-address = <&art 0x1002>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
};
ð1 {
mtd-mac-address = <&art 0x1002>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&pcie0 {
ð0 {
mtd-mac-address = <&art 0x1002>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
ð1 {
ð0 {
mtd-mac-address = <&art 0x1002>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
};
ð1 {
compatible = "qca,qca9530-eth", "syscon", "simple-mfd";
mtd-mac-address = <&art 0x1002>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&gpio_export {
phy-handle = <&swphy4>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <10>;
+ mac-address-increment = <10>;
};
phy-handle = <&swphy4>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <3>;
+ mac-address-increment = <3>;
};
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <10>;
+ mac-address-increment = <10>;
};
ð1 {
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&wmac {
ð1 {
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&wmac {
ð1 {
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&wmac {
phy-handle = <&swphy4>;
mtd-mac-address = <&pridata 0x400>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
phy-handle = <&swphy4>;
mtd-mac-address = <&romfile 0xf100>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
phy-handle = <&swphy4>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
phy-handle = <&swphy0>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&wmac {
phy-handle = <&swphy4>;
mtd-mac-address = <&info 0x8>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
compatible = "qca,qca9530-eth", "syscon", "simple-mfd";
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&wmac {
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
phy-handle = <&swphy4>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
phy-handle = <&swphy4>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
phy-handle = <&swphy4>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
phy-handle = <&swphy4>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
status = "okay";
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
phy-handle = <&phy2>;
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
+ qca-no-eeprom;
};
status = "okay";
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
pll-data = <0x03000101 0x00000101 0x00001616>;
fixed-link {
status = "okay";
mtd-mac-address = <&art 0x00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
phy-handle = <&phy1>;
pll-data = <0x03000101 0x00000101 0x00001313>;
status = "okay";
mtd-mac-address = <&art 0x00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
phy-handle = <&phy1>;
pll-data = <0x03000101 0x00000101 0x00001313>;
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x00>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
};
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&pcie0 {
compatible = "pci168c,0033";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <16>;
+ mac-address-increment = <16>;
};
};
compatible = "pci168c,0033";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <16>;
+ mac-address-increment = <16>;
};
};
phy-handle = <&phy0>;
mtd-mac-address = <&pridata 0x400>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
phy-handle = <&phy0>;
pll-data = <0x56000000 0x00000101 0x00001616>;
ð0 {
mtd-mac-address = <&romfs 0xf100>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
ð0 {
mtd-mac-address = <&romfs 0xf100>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&info 0x8>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
compatible = "pci168c,0033";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
phy-handle = <&phy0>;
pll-data = <0x56000000 0x00000101 0x00001616>;
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
pll-data = <0x56000000 0x00000101 0x00001616>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
phy-handle = <&phy0>;
};
status = "okay";
mtd-mac-address = <&info 0x8>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&wmac {
phy-handle = <&swphy0>;
mtd-mac-address = <&info 0x8>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
gmac-config {
device = <&gmac>;
phy-handle = <&swphy4>;
mtd-mac-address = <&info 0x8>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
pll-data = <0x03000101 0x00000101 0x00001919>;
mtd-mac-address = <&art 0x1002>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
phy-mode = "sgmii";
phy-handle = <&phy0>;
};
ð1 {
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
phy-handle = <&swphy4>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ð1 {
-From: John Crispin <blogic@openwrt.org>
-Subject: NET: add mtd-mac-address support to of_get_mac_address()
+From 6f8e5369ae054ec6c9265581d5a7e39738a5cd84 Mon Sep 17 00:00:00 2001
+From: Ansuel Smith <ansuelsmth@gmail.com>
+Date: Tue, 30 Mar 2021 13:16:38 +0200
+Subject: [PATCH 1/2] NET: add mtd-mac-address support to of_get_mac_address()
Many embedded devices have information such as mac addresses stored inside mtd
devices. This patch allows us to add a property inside a node describing a
Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
+Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
- drivers/of/of_net.c | 37 +++++++++++++++++++++++++++++++++++++
- include/linux/of_net.h | 1 +
- 2 files changed, 38 insertions(+)
+ drivers/of/of_net.c | 75 ++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 74 insertions(+), 1 deletion(-)
+diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c
+index 6e411821583e..f072e2509cc9 100644
--- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c
@@ -11,6 +11,7 @@
/**
* of_get_phy_mode - Get phy mode for given device_node
-@@ -45,7 +46,7 @@ int of_get_phy_mode(struct device_node *
+@@ -45,7 +46,7 @@ int of_get_phy_mode(struct device_node *np, phy_interface_t *interface)
}
EXPORT_SYMBOL_GPL(of_get_phy_mode);
{
struct property *pp = of_find_property(np, name, NULL);
-@@ -78,6 +79,79 @@ static const void *of_get_mac_addr_nvmem
+@@ -78,6 +79,70 @@ static const void *of_get_mac_addr_nvmem(struct device_node *np)
return mac;
}
+ const char *part;
+ const __be32 *list;
+ phandle phandle;
-+ u32 mac_inc = 0;
+ u8 mac[ETH_ALEN];
+ void *addr;
-+ u32 inc_idx;
+
+ list = of_get_property(np, "mtd-mac-address", &size);
+ if (!list || (size != (2 * sizeof(*list))))
+ ret = mtd_read(mtd, be32_to_cpup(list), 6, &retlen, mac);
+ put_mtd_device(mtd);
+
-+ if (of_property_read_u32(np, "mtd-mac-address-increment-byte", &inc_idx))
-+ inc_idx = 5;
-+ if (inc_idx > 5)
-+ return NULL;
-+
-+ if (!of_property_read_u32(np, "mtd-mac-address-increment", &mac_inc))
-+ mac[inc_idx] += mac_inc;
-+
+ if (!is_valid_ether_addr(mac))
+ return NULL;
+
+#endif
+ return NULL;
+}
++
+
/**
* Search the device tree for the best MAC address to use. 'mac-address' is
* checked first, because that is supposed to contain to "most recent" MAC
-@@ -98,12 +172,20 @@ static const void *of_get_mac_addr_nvmem
+@@ -98,6 +163,10 @@ static const void *of_get_mac_addr_nvmem(struct device_node *np)
* this case, the real MAC is in 'local-mac-address', and 'mac-address' exists
* but is all zeros.
*
* Return: Will be a valid pointer on success and ERR_PTR in case of error.
*/
const void *of_get_mac_address(struct device_node *np)
- {
- const void *addr;
+@@ -116,6 +185,10 @@ const void *of_get_mac_address(struct device_node *np)
+ if (addr)
+ return addr;
+ addr = of_get_mac_address_mtd(np);
+ if (addr)
+ return addr;
+
- addr = of_get_mac_addr(np, "mac-address");
- if (addr)
- return addr;
+ return of_get_mac_addr_nvmem(np);
+ }
+ EXPORT_SYMBOL(of_get_mac_address);
+--
+2.30.2
+
--- /dev/null
+From 639dba857aa554f2a78572adc4cf3c32de9ec2e2 Mon Sep 17 00:00:00 2001
+From: Ansuel Smith <ansuelsmth@gmail.com>
+Date: Tue, 30 Mar 2021 18:21:14 +0200
+Subject: [PATCH 2/2] of_net: add mac-address-increment support
+
+Lots of embedded devices use the mac-address of other interface
+extracted from nvmem cells and increments it by one or two. Add two
+bindings to integrate this and directly use the right mac-address for
+the interface. Some example are some routers that use the gmac
+mac-address stored in the art partition and increments it by one for the
+wifi. mac-address-increment-byte bindings is used to tell what byte of
+the mac-address has to be increased (if not defined the last byte is
+increased) and mac-address-increment tells how much the byte decided
+early has to be increased.
+
+Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
+---
+ drivers/of/of_net.c | 59 ++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 45 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c
+index f072e2509cc9..0dbd1f7ef396 100644
+--- a/drivers/of/of_net.c
++++ b/drivers/of/of_net.c
+@@ -55,31 +55,36 @@ static void *of_get_mac_addr(struct device_node *np, const char *name)
+ return NULL;
+ }
+
+-static const void *of_get_mac_addr_nvmem(struct device_node *np)
++static void *of_get_mac_addr_nvmem(struct device_node *np, int *err)
+ {
+ int ret;
+- const void *mac;
++ void *mac;
+ u8 nvmem_mac[ETH_ALEN];
+ struct platform_device *pdev = of_find_device_by_node(np);
+
+- if (!pdev)
+- return ERR_PTR(-ENODEV);
++ if (!pdev) {
++ *err = -ENODEV;
++ return NULL;
++ }
+
+ ret = nvmem_get_mac_address(&pdev->dev, &nvmem_mac);
+ if (ret) {
+ put_device(&pdev->dev);
+- return ERR_PTR(ret);
++ *err = ret;
++ return NULL;
+ }
+
+ mac = devm_kmemdup(&pdev->dev, nvmem_mac, ETH_ALEN, GFP_KERNEL);
+ put_device(&pdev->dev);
+- if (!mac)
+- return ERR_PTR(-ENOMEM);
++ if (!mac) {
++ *err = -ENOMEM;
++ return NULL;
++ }
+
+ return mac;
+ }
+
+-static const void *of_get_mac_address_mtd(struct device_node *np)
++static void *of_get_mac_address_mtd(struct device_node *np)
+ {
+ #ifdef CONFIG_MTD
+ struct device_node *mtd_np = NULL;
+@@ -167,28 +172,54 @@ static const void *of_get_mac_address_mtd(struct device_node *np)
+ * If a mtd-mac-address property exists, try to fetch the MAC address from the
+ * specified mtd device, and store it as a 'mac-address' property
+ *
++ * DT can tell the system to increment the mac-address after is extracted by
++ * using:
++ * - mac-address-increment-byte to decide what byte to increase
++ * (if not defined is increased the last byte)
++ * - mac-address-increment to decide how much to increase. The value will
++ * not overflow to other bytes if the increment is over 255.
++ * (example 00:01:02:03:04:ff + 1 == 00:01:02:03:04:00)
++ *
+ * Return: Will be a valid pointer on success and ERR_PTR in case of error.
+ */
+ const void *of_get_mac_address(struct device_node *np)
+ {
+- const void *addr;
++ u32 inc_idx, mac_inc;
++ int ret = 0;
++ u8 *addr;
++
++ /* Check first if the increment byte is present and valid.
++ * If not set assume to increment the last byte if found.
++ */
++ if (of_property_read_u32(np, "mac-address-increment-byte", &inc_idx))
++ inc_idx = 5;
++ if (inc_idx < 3 || inc_idx > 5)
++ return ERR_PTR(-EINVAL);
+
+ addr = of_get_mac_addr(np, "mac-address");
+ if (addr)
+- return addr;
++ goto found;
+
+ addr = of_get_mac_addr(np, "local-mac-address");
+ if (addr)
+- return addr;
++ goto found;
+
+ addr = of_get_mac_addr(np, "address");
+ if (addr)
+- return addr;
++ goto found;
+
+ addr = of_get_mac_address_mtd(np);
+ if (addr)
+- return addr;
++ goto found;
++
++ addr = of_get_mac_addr_nvmem(np, &ret);
++ if (ret)
++ return ERR_PTR(ret);
++
++found:
++ if (!of_property_read_u32(np, "mac-address-increment", &mac_inc))
++ addr[inc_idx] += mac_inc;
+
+- return of_get_mac_addr_nvmem(np);
++ return addr;
+ }
+ EXPORT_SYMBOL(of_get_mac_address);
+--
+2.30.2
+
-From: John Crispin <blogic@openwrt.org>
-Subject: NET: add mtd-mac-address support to of_get_mac_address()
+From 6f8e5369ae054ec6c9265581d5a7e39738a5cd84 Mon Sep 17 00:00:00 2001
+From: Ansuel Smith <ansuelsmth@gmail.com>
+Date: Tue, 30 Mar 2021 13:16:38 +0200
+Subject: [PATCH 1/2] NET: add mtd-mac-address support to of_get_mac_address()
Many embedded devices have information such as mac addresses stored inside mtd
devices. This patch allows us to add a property inside a node describing a
Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
+Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
- drivers/of/of_net.c | 37 +++++++++++++++++++++++++++++++++++++
- include/linux/of_net.h | 1 +
- 2 files changed, 38 insertions(+)
+ drivers/of/of_net.c | 75 ++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 74 insertions(+), 1 deletion(-)
+diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c
+index 6e411821583e..f072e2509cc9 100644
--- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c
@@ -11,6 +11,7 @@
/**
* of_get_phy_mode - Get phy mode for given device_node
-@@ -39,7 +40,7 @@ int of_get_phy_mode(struct device_node *
+@@ -45,7 +46,7 @@ int of_get_phy_mode(struct device_node *np, phy_interface_t *interface)
}
EXPORT_SYMBOL_GPL(of_get_phy_mode);
{
struct property *pp = of_find_property(np, name, NULL);
-@@ -72,6 +73,79 @@ static const void *of_get_mac_addr_nvmem
+@@ -78,6 +79,70 @@ static const void *of_get_mac_addr_nvmem(struct device_node *np)
return mac;
}
+ const char *part;
+ const __be32 *list;
+ phandle phandle;
-+ u32 mac_inc = 0;
+ u8 mac[ETH_ALEN];
+ void *addr;
-+ u32 inc_idx;
+
+ list = of_get_property(np, "mtd-mac-address", &size);
+ if (!list || (size != (2 * sizeof(*list))))
+ ret = mtd_read(mtd, be32_to_cpup(list), 6, &retlen, mac);
+ put_mtd_device(mtd);
+
-+ if (of_property_read_u32(np, "mtd-mac-address-increment-byte", &inc_idx))
-+ inc_idx = 5;
-+ if (inc_idx > 5)
-+ return NULL;
-+
-+ if (!of_property_read_u32(np, "mtd-mac-address-increment", &mac_inc))
-+ mac[inc_idx] += mac_inc;
-+
+ if (!is_valid_ether_addr(mac))
+ return NULL;
+
+#endif
+ return NULL;
+}
++
+
/**
* Search the device tree for the best MAC address to use. 'mac-address' is
* checked first, because that is supposed to contain to "most recent" MAC
-@@ -92,12 +166,20 @@ static const void *of_get_mac_addr_nvmem
+@@ -98,6 +163,10 @@ static const void *of_get_mac_addr_nvmem(struct device_node *np)
* this case, the real MAC is in 'local-mac-address', and 'mac-address' exists
* but is all zeros.
*
* Return: Will be a valid pointer on success and ERR_PTR in case of error.
*/
const void *of_get_mac_address(struct device_node *np)
- {
- const void *addr;
+@@ -116,6 +185,10 @@ const void *of_get_mac_address(struct device_node *np)
+ if (addr)
+ return addr;
+ addr = of_get_mac_address_mtd(np);
+ if (addr)
+ return addr;
+
- addr = of_get_mac_addr(np, "mac-address");
- if (addr)
- return addr;
+ return of_get_mac_addr_nvmem(np);
+ }
+ EXPORT_SYMBOL(of_get_mac_address);
+--
+2.30.2
+
--- /dev/null
+From 639dba857aa554f2a78572adc4cf3c32de9ec2e2 Mon Sep 17 00:00:00 2001
+From: Ansuel Smith <ansuelsmth@gmail.com>
+Date: Tue, 30 Mar 2021 18:21:14 +0200
+Subject: [PATCH 2/2] of_net: add mac-address-increment support
+
+Lots of embedded devices use the mac-address of other interface
+extracted from nvmem cells and increments it by one or two. Add two
+bindings to integrate this and directly use the right mac-address for
+the interface. Some example are some routers that use the gmac
+mac-address stored in the art partition and increments it by one for the
+wifi. mac-address-increment-byte bindings is used to tell what byte of
+the mac-address has to be increased (if not defined the last byte is
+increased) and mac-address-increment tells how much the byte decided
+early has to be increased.
+
+Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
+---
+ drivers/of/of_net.c | 59 ++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 45 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c
+index f072e2509cc9..0dbd1f7ef396 100644
+--- a/drivers/of/of_net.c
++++ b/drivers/of/of_net.c
+@@ -55,31 +55,36 @@ static void *of_get_mac_addr(struct device_node *np, const char *name)
+ return NULL;
+ }
+
+-static const void *of_get_mac_addr_nvmem(struct device_node *np)
++static void *of_get_mac_addr_nvmem(struct device_node *np, int *err)
+ {
+ int ret;
+- const void *mac;
++ void *mac;
+ u8 nvmem_mac[ETH_ALEN];
+ struct platform_device *pdev = of_find_device_by_node(np);
+
+- if (!pdev)
+- return ERR_PTR(-ENODEV);
++ if (!pdev) {
++ *err = -ENODEV;
++ return NULL;
++ }
+
+ ret = nvmem_get_mac_address(&pdev->dev, &nvmem_mac);
+ if (ret) {
+ put_device(&pdev->dev);
+- return ERR_PTR(ret);
++ *err = ret;
++ return NULL;
+ }
+
+ mac = devm_kmemdup(&pdev->dev, nvmem_mac, ETH_ALEN, GFP_KERNEL);
+ put_device(&pdev->dev);
+- if (!mac)
+- return ERR_PTR(-ENOMEM);
++ if (!mac) {
++ *err = -ENOMEM;
++ return NULL;
++ }
+
+ return mac;
+ }
+
+-static const void *of_get_mac_address_mtd(struct device_node *np)
++static void *of_get_mac_address_mtd(struct device_node *np)
+ {
+ #ifdef CONFIG_MTD
+ struct device_node *mtd_np = NULL;
+@@ -167,28 +172,54 @@ static const void *of_get_mac_address_mtd(struct device_node *np)
+ * If a mtd-mac-address property exists, try to fetch the MAC address from the
+ * specified mtd device, and store it as a 'mac-address' property
+ *
++ * DT can tell the system to increment the mac-address after is extracted by
++ * using:
++ * - mac-address-increment-byte to decide what byte to increase
++ * (if not defined is increased the last byte)
++ * - mac-address-increment to decide how much to increase. The value will
++ * not overflow to other bytes if the increment is over 255.
++ * (example 00:01:02:03:04:ff + 1 == 00:01:02:03:04:00)
++ *
+ * Return: Will be a valid pointer on success and ERR_PTR in case of error.
+ */
+ const void *of_get_mac_address(struct device_node *np)
+ {
+- const void *addr;
++ u32 inc_idx, mac_inc;
++ int ret = 0;
++ u8 *addr;
++
++ /* Check first if the increment byte is present and valid.
++ * If not set assume to increment the last byte if found.
++ */
++ if (of_property_read_u32(np, "mac-address-increment-byte", &inc_idx))
++ inc_idx = 5;
++ if (inc_idx < 3 || inc_idx > 5)
++ return ERR_PTR(-EINVAL);
+
+ addr = of_get_mac_addr(np, "mac-address");
+ if (addr)
+- return addr;
++ goto found;
+
+ addr = of_get_mac_addr(np, "local-mac-address");
+ if (addr)
+- return addr;
++ goto found;
+
+ addr = of_get_mac_addr(np, "address");
+ if (addr)
+- return addr;
++ goto found;
+
+ addr = of_get_mac_address_mtd(np);
+ if (addr)
+- return addr;
++ goto found;
++
++ addr = of_get_mac_addr_nvmem(np, &ret);
++ if (ret)
++ return ERR_PTR(ret);
++
++found:
++ if (!of_property_read_u32(np, "mac-address-increment", &mac_inc))
++ addr[inc_idx] += mac_inc;
+
+- return of_get_mac_addr_nvmem(np);
++ return addr;
+ }
+ EXPORT_SYMBOL(of_get_mac_address);
+--
+2.30.2
+
pinctrl-names = "default";
mtd-mac-address = <&defaultmac 0x8>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
fixed-link {
speed = <1000>;
pinctrl-names = "default";
mtd-mac-address = <&defaultmac 0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
fixed-link {
speed = <1000>;
reg = <0x00010000 0 0 0 0>;
mtd-mac-address = <&art 6>;
- mtd-mac-address-increment = <(1)>;
+ mac-address-increment = <(1)>;
};
};
};
reg = <0x00010000 0 0 0 0>;
mtd-mac-address = <&art 6>;
- mtd-mac-address-increment = <(2)>;
+ mac-address-increment = <(2)>;
};
};
};
phy-mode = "rmii";
phy-handle = <&phy0>;
mtd-mac-address = <&ath9k_cal 0xa91>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
mdio-bus {
#address-cells = <1>;
&gsw {
phy-mode = "mii";
mtd-mac-address = <&ath9k_cal 0xa91>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
};
&gpio {
ralink,mtd-eeprom = <&boardconfig 0x410>;
ralink,mtd-eeprom-swap;
mtd-mac-address = <&boardconfig 0x16>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
reg = <0x7000 0 0 0 0>;
qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
mtd-mac-address = <&boardconfig 0x16>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
reg = <0x7000 0 0 0 0>;
qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
mtd-mac-address = <&art 0x16>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
ralink,mtd-eeprom = <&boardconfig 0x410>;
ralink,mtd-eeprom-swap;
mtd-mac-address = <&boardconfig 0x16>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
ð0 {
mtd-mac-address = <&boardconfig 0x16>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&gphy0 {
ralink,mtd-eeprom = <&boardconfig 0x410>;
ralink,mtd-eeprom-swap;
mtd-mac-address = <&boardconfig 0x16>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
ð0 {
mtd-mac-address = <&urlader 0xa91>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
};
&gphy0 {
qca,no-eeprom;
qca,disable-5ghz;
mtd-mac-address = <&ath9k_cal 0xf100>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
};
};
big-endian;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&romfile 0xf100>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
};
};
phy-handle = <&phy1>;
phy-connection-type = "rgmii-id";
mtd-mac-address = <&hwinfo 0>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
gpio0: gpio-controller@fc00 {
phy-mode = "sgmii";
phy-handle = <&phy5>;
mtd-mac-address = <&eeprom 0>;
- mtd-mac-address-increment = <(1)>;
+ mac-address-increment = <(1)>;
};
ethernet@2 {
phy-mode = "sgmii";
phy-handle = <&phy6>;
mtd-mac-address = <&eeprom 0>;
- mtd-mac-address-increment = <(2)>;
+ mac-address-increment = <(2)>;
};
ethernet@3 {
phy-mode = "sgmii";
phy-handle = <&phy7>;
mtd-mac-address = <&eeprom 0>;
- mtd-mac-address-increment = <(3)>;
+ mac-address-increment = <(3)>;
};
};
};
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&factory 0x28>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
};
mt76x0e@0,0 {
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&config 0xe490>;
- mtd-mac-address-increment = <(2)>;
+ mac-address-increment = <(2)>;
mediatek,mtd-eeprom = <&config 0xe05d>;
};
};
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&config 0xe496>;
- mtd-mac-address-increment = <(2)>;
+ mac-address-increment = <(2)>;
mediatek,mtd-eeprom = <&config 0xe083>;
led {
reg = <0x0000 0 0 0 0>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&config 0xe4a8>;
- mtd-mac-address-increment = <(2)>;
+ mac-address-increment = <(2)>;
led {
led-sources = <2>;
ieee80211-freq-limit = <5000000 6000000>;
mediatek,mtd-eeprom = <&config 0xe08e>;
mtd-mac-address = <&config 0xe50e>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
};
mt76x0e@0,0 {
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&config 0xe07e>;
- mtd-mac-address-increment = <(2)>;
+ mac-address-increment = <(2)>;
mediatek,mtd-eeprom = <&config 0xe08a>;
};
};
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&radio 0x8000>;
mtd-mac-address = <&rom 0xf100>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
};
pinctrl-0 = <&pa_pins>;
mtd-mac-address = <&rom 0xf100>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
};
&wifi {
mtd-mac-address = <&rom 0xf100>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&wifi {
mtd-mac-address = <&rom 0xf100>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
pinctrl-0 = <&pa_pins>;
mtd-mac-address = <&rom 0xf100>;
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
};
&wifi {
mtd-mac-address = <&rom 0xf100>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&radio 0x8000>;
mtd-mac-address = <&uboot 0x1fc00>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
ieee80211-freq-limit = <5000000 6000000>;
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe00c>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
port@2 {
&gmac0 {
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&switch0 {
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
mtd-mac-address = <&bdinfo 0xde00>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
ieee80211-freq-limit = <5000000 6000000>;
led {
status = "okay";
label = "wan";
mtd-mac-address = <&bdinfo 0xde00>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
&wifi0 {
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&wifi1 {
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
&wifi0 {
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&wifi1 {
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
&wifi0 {
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&wifi1 {
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x0>;
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
&wifi {
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&wifi {
mtd-mac-address = <&factory 0xe006>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
&gmac0 {
mtd-mac-address = <&factory 0x4000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&switch0 {
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
port@1 {
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
port@1 {
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0x5>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe006>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe006>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
mediatek,mtd-eeprom = <&radio 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&info 0x8>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&radio 0x0>;
mtd-mac-address = <&config 0x10008>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
mediatek,mtd-eeprom = <&radio 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&config 0x10008>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
};
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&radio 0x0>;
mtd-mac-address = <&config 0x10008>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
ieee80211-freq-limit = <2400000 2500000>;
};
};
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&radio 0x8000>;
mtd-mac-address = <&config 0x10008>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
ieee80211-freq-limit = <5000000 6000000>;
};
};
phy-handle = <&ephy7>;
phy-mode = "rgmii-rxid";
mtd-mac-address = <&factory 0x22>;
- mtd-mac-address-increment = <5>;
+ mac-address-increment = <5>;
};
};
};
status = "okay";
label = "eth1";
mtd-mac-address = <&factory 0x22>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
port@2 {
status = "okay";
label = "eth2";
mtd-mac-address = <&factory 0x22>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
port@3 {
status = "okay";
label = "eth3";
mtd-mac-address = <&factory 0x22>;
- mtd-mac-address-increment = <3>;
+ mac-address-increment = <3>;
};
port@4 {
status = "okay";
label = "eth4";
mtd-mac-address = <&factory 0x22>;
- mtd-mac-address-increment = <4>;
+ mac-address-increment = <4>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
port@1 {
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
status = "okay";
label = "wan";
mtd-mac-address = <&factory 0xe000>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
};
};
&wifi5 {
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <(2)>;
+ mac-address-increment = <(2)>;
};
};
&wmac {
- mtd-mac-address-increment = <(-2)>;
+ mac-address-increment = <(-2)>;
};
&esw {
mediatek,mtd-eeprom = <&factory 0x28000>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&factory 0xf100>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
};
mediatek,mtd-eeprom = <&radio 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&rom 0xf100>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
};
mediatek,mtd-eeprom = <&factory 0x28000>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&factory 0xf100>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
};
mediatek,mtd-eeprom = <&radio 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&rom 0xf100>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
};
mediatek,mtd-eeprom = <&radio 0x0>;
mtd-mac-address = <&config 0x2008>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
&pcie {
mediatek,mtd-eeprom = <&radio 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&config 0x2008>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
};
mediatek,mtd-eeprom = <&radio 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&config 0x10008>;
- mtd-mac-address-increment = <2>;
+ mac-address-increment = <2>;
};
};
mediatek,mtd-eeprom = <&radio 0x0>;
mtd-mac-address = <&config 0x10008>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ðernet {
mediatek,mtd-eeprom = <&factory 0x28000>;
ieee80211-freq-limit = <5000000 6000000>;
mtd-mac-address = <&factory 0xf100>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
};
ðernet {
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <(-1)>;
+ mac-address-increment = <(-1)>;
};
&esw {
ðernet {
status = "okay";
mtd-mac-address = <&factory 0x8004>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
port@0 {
phy-handle = <&phy0>;
ralink,mtd-eeprom = <&factory 0x0>;
ralink,5ghz = <0>;
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <1>;
+ mac-address-increment = <1>;
};
ralink,mtd-eeprom = <&factory 0x0>;
ralink,5ghz = <0>;
mtd-mac-address = <&factory 0x4>;
- mtd-mac-address-increment = <3>;
+ mac-address-increment = <3>;
};