mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: support per-band MAC addresses from OF child nodes
With dual-band-dual-congruent front-ends which appear as two independent
radios it is desirable to assign a per-band MAC address from device-tree,
eg. using nvmem-cells.
Support specifying MAC-address related properties in band-specific child
nodes, e.g.
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
#addr-cells = <1>;
#size-cells = <0>;
band@0 {
/* 2.4 GHz */
reg = <0>;
nvmem-cells = <&macaddr 2>;
nvmem-cell-names = "mac-address";
};
band@1 {
/* 5 GHz */
reg = <1>;
nvmem-cells = <&macaddr 3>;
nvmem-cell-names = "mac-address";
};
};
Signed-off-by: Daniel Golle <[email protected]>
Tested-by: Shiji Yang <[email protected]>
Link: https://patch.msgid.link/c69fec6bd0b6e4e8a2a776cbc860fceb977fa4b6.1690841657.git.daniel@makrotopia.org
This commit is contained in:
committed by
Felix Fietkau
parent
a897606f7c
commit
65cc3daf2a
@@ -163,8 +163,23 @@ void
|
||||
mt76_eeprom_override(struct mt76_phy *phy)
|
||||
{
|
||||
struct mt76_dev *dev = phy->dev;
|
||||
struct device_node *np = dev->dev->of_node;
|
||||
struct device_node *np = dev->dev->of_node, *band_np;
|
||||
bool found_mac = false;
|
||||
u32 reg;
|
||||
int ret;
|
||||
|
||||
for_each_child_of_node(np, band_np) {
|
||||
ret = of_property_read_u32(band_np, "reg", ®);
|
||||
if (ret)
|
||||
continue;
|
||||
|
||||
if (reg == phy->band_idx) {
|
||||
found_mac = !of_get_mac_address(band_np, phy->macaddr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!found_mac)
|
||||
of_get_mac_address(np, phy->macaddr);
|
||||
|
||||
if (!is_valid_ether_addr(phy->macaddr)) {
|
||||
|
||||
Reference in New Issue
Block a user