summaryrefslogtreecommitdiffstats
path: root/package/base-files
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2022-09-30 19:19:51 +0200
committerFelix Fietkau <nbd@nbd.name>2022-10-14 13:12:30 +0200
commit7f9d3a00d8d41f2bf9fe35b30cd689b9992e7ff9 (patch)
treea153526bccec92e298689fa9c5bae5f4606ce4bd /package/base-files
parent0a4a0c71937b3251fb9cfc0ccb16b3c41092050b (diff)
downloadopenwrt-7f9d3a00d8d41f2bf9fe35b30cd689b9992e7ff9.tar.gz
openwrt-7f9d3a00d8d41f2bf9fe35b30cd689b9992e7ff9.tar.bz2
openwrt-7f9d3a00d8d41f2bf9fe35b30cd689b9992e7ff9.zip
base-files: add helper functions for adding wlan device entries to board.json
These will be used to give WLAN PHYs a specific name based on path specified in board.json. The platform board.d script can assign a specific order based on available slots (PCIe slots, WMAC device) and device tree configuration. This helps with maintaining config compatibility in case the device path changes due to kernel upgrades. Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/base-files')
-rw-r--r--package/base-files/files/lib/functions/system.sh4
-rw-r--r--package/base-files/files/lib/functions/uci-defaults.sh15
2 files changed, 19 insertions, 0 deletions
diff --git a/package/base-files/files/lib/functions/system.sh b/package/base-files/files/lib/functions/system.sh
index 22eb00c515..29de2e5dd6 100644
--- a/package/base-files/files/lib/functions/system.sh
+++ b/package/base-files/files/lib/functions/system.sh
@@ -283,3 +283,7 @@ macaddr_canonicalize() {
printf "%02x:%02x:%02x:%02x:%02x:%02x" 0x${canon// / 0x} 2>/dev/null
}
+
+dt_is_enabled() {
+ grep -q okay "/proc/device-tree/$1/status"
+}
diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh
index 86f16b5125..a37e8cf824 100644
--- a/package/base-files/files/lib/functions/uci-defaults.sh
+++ b/package/base-files/files/lib/functions/uci-defaults.sh
@@ -646,6 +646,21 @@ ucidef_set_ntpserver() {
json_select ..
}
+ucidef_add_wlan() {
+ local path="$1"; shift
+
+ ucidef_wlan_idx=${ucidef_wlan_idx:-0}
+
+ json_select_object wlan
+ json_select_object "wl$ucidef_wlan_idx"
+ json_add_string path "$path"
+ json_add_fields "$@"
+ json_select ..
+ json_select ..
+
+ ucidef_wlan_idx="$((ucidef_wlan_idx + 1))"
+}
+
board_config_update() {
json_init
[ -f ${CFG} ] && json_load "$(cat ${CFG})"