#!/bin/sh # B8A DT section only (rerun; fixes /proc/device-tree symlink for busybox find). Read-only. O=/tmp/b8a; mkdir -p $O h() { echo; echo "### $*"; } c() { echo; echo "\$ $*"; sh -c "$*" 2>&1; } PAT='wcnss|wlan|wifi|pronto|iris|wcn36|80211|rfkill' { h DT; c 'cat /proc/device-tree/model; echo; cat /proc/device-tree/compatible | tr "\0" " "; echo' h "DT nodes matching $PAT|remoteproc" find /proc/device-tree/ -iname '*' 2>/dev/null | grep -iE "$PAT|remoteproc|smp2p|smd|smsm|reserved-memory/" | sed "s#/proc/device-tree/*#/#" | sort for n in $(find /proc/device-tree/ -type d 2>/dev/null | grep -iE 'wcnss|remoteproc|pronto|iris|wifi|bluetooth|smp2p-wcnss|reserved-memory/(wcnss|mpss|mba)'); do h "node ${n#/proc/device-tree}" for p in compatible status reg reg-names interrupt-names interrupts interrupts-extended power-domain-names clock-names clocks label memory-region size alignment alloc-ranges qcom,smd-channels qcom,smd-edge qcom,remote-pid local-mac-address pinctrl-names firmware-name qcom,smem-state-names; do [ -f $n/$p ] || continue case $p in compatible|status|reg-names|interrupt-names|power-domain-names|clock-names|label|qcom,smd-channels|pinctrl-names|firmware-name|qcom,smem-state-names) printf ' %s = "%s"\n' $p "$(tr '\0' ',' < $n/$p)";; *) printf ' %s = %s\n' $p "$(hexdump -v -e '4/1 "%02x" " "' $n/$p)";; esac done done h aliases; c 'ls /proc/device-tree/aliases; for a in /proc/device-tree/aliases/*; do printf "%s=%s\n" ${a##*/} "$(cat $a)"; done' h "pinctrl wcss"; c 'ls /proc/device-tree/soc@0/pinctrl@1000000 2>/dev/null | grep -i wcss' h "DT full grep of string props"; c 'grep -rlaiE "wcnss|pronto|wcn36|iris" /proc/device-tree 2>/dev/null | sed "s#/proc/device-tree/*#/#"' } > $O/b8a-dt.txt echo "B8A-DT DONE"