From d6d90566d1cd1cd6b7971064750b7ed05b8b524b Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Fri, 14 Jun 2024 11:30:31 -0700 Subject: [PATCH] ath79: engenius,eXXX: use nvmem Userspace handling is deprecated. Move calibration for pcie node out of dtsi. calibration size for ath10k and ath9k differs. Signed-off-by: Rosen Penev Link: https://github.com/openwrt/openwrt/pull/16231 Signed-off-by: Robert Marko --- .../ath79/dts/qca9557_engenius_esr1200.dts | 18 ++++++++++----- .../ath79/dts/qca9558_engenius_epg5000.dts | 18 ++++++++++----- .../ath79/dts/qca9558_engenius_esr1750.dts | 18 ++++++++++----- .../ath79/dts/qca9558_engenius_esr900.dts | 22 ++++++++++--------- .../ath79/dts/qca955x_senao_router-dual.dtsi | 22 +++++++++++++------ .../generic/base-files/etc/board.d/02_network | 1 - .../etc/hotplug.d/ieee80211/10_fix_wifi_mac | 6 ----- .../base-files/lib/preinit/10_fix_eth_mac.sh | 6 ----- 8 files changed, 66 insertions(+), 45 deletions(-) diff --git a/target/linux/ath79/dts/qca9557_engenius_esr1200.dts b/target/linux/ath79/dts/qca9557_engenius_esr1200.dts index fd805fa13f6..5faf3277fab 100644 --- a/target/linux/ath79/dts/qca9557_engenius_esr1200.dts +++ b/target/linux/ath79/dts/qca9557_engenius_esr1200.dts @@ -73,12 +73,20 @@ status = "okay"; }; +&nvmem { + calibration_art_5000: calibration@5000 { + reg = <0x5000 0x844>; + }; +}; + &wmac { - nvmem-cells = <&calibration_art_1000>; - nvmem-cell-names = "calibration"; + nvmem-cells = <&calibration_art_1000>, <&macaddr_uboot_eth 1>; + nvmem-cell-names = "calibration", "mac-address"; }; -&ath10k_0 { - nvmem-cells = <&calibration_art_5000>; - nvmem-cell-names = "calibration"; +&wifi0 { + compatible = "qcom,ath10k"; + + nvmem-cells = <&calibration_art_5000>, <&macaddr_uboot_eth 0>; + nvmem-cell-names = "calibration", "mac-address"; }; diff --git a/target/linux/ath79/dts/qca9558_engenius_epg5000.dts b/target/linux/ath79/dts/qca9558_engenius_epg5000.dts index 52708f3c6b2..560436b0df9 100644 --- a/target/linux/ath79/dts/qca9558_engenius_epg5000.dts +++ b/target/linux/ath79/dts/qca9558_engenius_epg5000.dts @@ -73,12 +73,20 @@ status = "okay"; }; +&nvmem { + calibration_art_5000: calibration@5000 { + reg = <0x5000 0x844>; + }; +}; + &wmac { - nvmem-cells = <&calibration_art_1000>; - nvmem-cell-names = "calibration"; + nvmem-cells = <&calibration_art_1000>, <&macaddr_uboot_eth 1>; + nvmem-cell-names = "calibration", "mac-address"; }; -&ath10k_0 { - nvmem-cells = <&calibration_art_5000>; - nvmem-cell-names = "calibration"; +&wifi0 { + compatible = "qcom,ath10k"; + + nvmem-cells = <&calibration_art_5000>, <&macaddr_uboot_eth 0>; + nvmem-cell-names = "calibration", "mac-address"; }; diff --git a/target/linux/ath79/dts/qca9558_engenius_esr1750.dts b/target/linux/ath79/dts/qca9558_engenius_esr1750.dts index 0aae9b5187c..52075d24813 100644 --- a/target/linux/ath79/dts/qca9558_engenius_esr1750.dts +++ b/target/linux/ath79/dts/qca9558_engenius_esr1750.dts @@ -73,12 +73,20 @@ status = "okay"; }; +&nvmem { + calibration_art_5000: calibration@5000 { + reg = <0x5000 0x844>; + }; +}; + &wmac { - nvmem-cells = <&calibration_art_1000>; - nvmem-cell-names = "calibration"; + nvmem-cells = <&calibration_art_1000>, <&macaddr_uboot_eth 1>; + nvmem-cell-names = "calibration", "mac-address"; }; -&ath10k_0 { - nvmem-cells = <&calibration_art_5000>; - nvmem-cell-names = "calibration"; +&wifi0 { + compatible = "qcom,ath10k"; + + nvmem-cells = <&calibration_art_5000>, <&macaddr_uboot_eth 0>; + nvmem-cell-names = "calibration", "mac-address"; }; diff --git a/target/linux/ath79/dts/qca9558_engenius_esr900.dts b/target/linux/ath79/dts/qca9558_engenius_esr900.dts index 39a0790f121..9ceacb0199b 100644 --- a/target/linux/ath79/dts/qca9558_engenius_esr900.dts +++ b/target/linux/ath79/dts/qca9558_engenius_esr900.dts @@ -73,18 +73,20 @@ status = "okay"; }; +&nvmem { + calibration_art_5000: calibration@5000 { + reg = <0x5000 0x440>; + }; +}; + &wmac { - nvmem-cells = <&calibration_art_1000>; - nvmem-cell-names = "calibration"; + nvmem-cells = <&calibration_art_1000>, <&macaddr_uboot_eth 0>; + nvmem-cell-names = "calibration", "mac-address"; }; -&pcie0 { - status = "okay"; +&wifi0 { + compatible = "pci168c,0033"; - wifi@0,0 { - compatible = "pci168c,0033"; - reg = <0x0000 0 0 0 0>; - nvmem-cells = <&calibration_art_5000>; - nvmem-cell-names = "calibration"; - }; + nvmem-cells = <&calibration_art_5000>, <&macaddr_uboot_eth 1>; + nvmem-cell-names = "calibration", "mac-address"; }; diff --git a/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi b/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi index ece2f5d6fba..b8680772ce1 100644 --- a/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi +++ b/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi @@ -30,6 +30,9 @@ phy-handle = <&phy0>; pll-data = <0xa6000000 0x00000101 0x00001616>; + + nvmem-cells = <&macaddr_uboot_eth 0>; + nvmem-cell-names = "mac-address"; }; &mdio0 { @@ -43,8 +46,7 @@ &pcie0 { status = "okay"; - ath10k_0: wifi@0,0 { - compatible = "qcom,ath10k"; + wifi0: wifi@0,0 { reg = <0x0000 0 0 0 0>; }; }; @@ -72,6 +74,16 @@ label = "u-boot-env"; reg = <0x030000 0x010000>; read-only; + + nvmem-layout { + compatible = "u-boot,env"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_uboot_eth: ethaddr { + #nvmem-cell-cells = <1>; + }; + }; }; partition@40000 { @@ -103,7 +115,7 @@ reg = <0xff0000 0x010000>; read-only; - nvmem-layout { + nvmem: nvmem-layout { compatible = "fixed-layout"; #address-cells = <1>; #size-cells = <1>; @@ -111,10 +123,6 @@ calibration_art_1000: calibration@1000 { reg = <0x1000 0x440>; }; - - calibration_art_5000: calibration@5000 { - reg = <0x5000 0x844>; - }; }; }; }; diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network index 48787f0f9bc..f01da50c084 100644 --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network @@ -737,7 +737,6 @@ ath79_setup_macs() engenius,esr1200|\ engenius,esr1750|\ engenius,esr900) - lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr) wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr) ;; engenius,ews511ap) diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac index ed8cc447831..291241b6ee3 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac @@ -52,12 +52,6 @@ case "$board" in [ "$PHYNBR" -eq 0 ] && \ mtd_get_mac_ascii u-boot-env athaddr > /sys${DEVPATH}/macaddress ;; - engenius,epg5000|\ - engenius,esr1200|\ - engenius,esr1750|\ - engenius,esr900) - macaddr_add "$(mtd_get_mac_ascii u-boot-env ethaddr)" "$PHYNBR" > /sys${DEVPATH}/macaddress - ;; engenius,ews511ap) [ "$PHYNBR" -eq 0 ] && \ macaddr_add $(cat /sys/class/net/eth0/address) 1 > /sys${DEVPATH}/macaddress diff --git a/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh b/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh index 4b6cb7b6ede..1126a1eefc0 100644 --- a/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh +++ b/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh @@ -12,12 +12,6 @@ preinit_set_mac_address() { ip link set dev eth0 address $(mtd_get_mac_ascii bdcfg "lanmac") ip link set dev eth1 address $(mtd_get_mac_ascii bdcfg "wanmac") ;; - engenius,epg5000|\ - engenius,esr1200|\ - engenius,esr1750|\ - engenius,esr900) - ip link set dev eth0 address $(mtd_get_mac_ascii u-boot-env ethaddr) - ;; siemens,ws-ap3610) ip link set dev eth0 address $(mtd_get_mac_ascii cfg1 ethaddr) ;; -- 2.47.3