diff options
| author | John Klug <john.klug@multitech.com> | 2020-09-18 14:34:11 -0500 |
|---|---|---|
| committer | John Klug <john.klug@multitech.com> | 2020-09-18 14:34:11 -0500 |
| commit | 401251df79b7b22fcb3c04af82db5e1e1da3ce6c (patch) | |
| tree | 205ef83cf3172195fb30fd96f3eae5a2d35f5c20 /recipes-bsp/multitech/mt-dt-overlay | |
| parent | 4be1e14de42544d08ad7107bbe7208efc91d462d (diff) | |
| download | meta-multitech-401251df79b7b22fcb3c04af82db5e1e1da3ce6c.tar.gz meta-multitech-401251df79b7b22fcb3c04af82db5e1e1da3ce6c.tar.bz2 meta-multitech-401251df79b7b22fcb3c04af82db5e1e1da3ce6c.zip | |
Move overlay code from mts-io to mt-dt-overlay
Diffstat (limited to 'recipes-bsp/multitech/mt-dt-overlay')
| -rwxr-xr-x | recipes-bsp/multitech/mt-dt-overlay/init | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/recipes-bsp/multitech/mt-dt-overlay/init b/recipes-bsp/multitech/mt-dt-overlay/init new file mode 100755 index 0000000..748a470 --- /dev/null +++ b/recipes-bsp/multitech/mt-dt-overlay/init @@ -0,0 +1,91 @@ +#!/bin/bash +# This script must be run after mts-io +# to read the hw-version, +# but before anything else needs the +# device tree. +sysdir=/sys/devices/platform/mts-io + +i2c=/sys/bus/i2c/devices/ + +DEVTREE="/sys/kernel/config/device-tree/overlays/" +SYSFS="/usr/sbin/mts-io-sysfs" + +install_dtbo_dir() { + for f in *.dtbo ; do + if ! [[ -f $f ]] ; then + continue + fi + if ! [[ -d ${DEVTREE} ]] ; then + mount configfs + fi + # f2 is the extracted device name + base=$(basename $f .dtbo) + /bin/mkdir ${DEVTREE}/$base || true + /bin/cat $f >${DEVTREE}/$base/dtbo + done +} + +# Device tree format: +# [mach] +# [rev] +# [file1] [file2] [file3] capability +# [flag] +# [file1] [file2] [file3] +setdevtree() { + hw=$(${SYSFS} show hw-version) + mach=${hw/%-*} + rev=${hw/#*-/} + echo mach is $mach + echo rev is $rev + capd="${sysdir}/capability" + + # add device tree overlays, if they exist. + [[ -d /lib/dtoverlays ]] || return 1 + ( + cd /lib/dtoverlays + + cd ${mach} + + best="-1" + for d in * ; do + if awk "BEGIN{if ($d <= $rev)exit 1}" ; then + continue + fi + if awk "BEGIN{if ($d < $best)exit 1}" ; then + best="$d" + fi + done + cd $best + install_dtbo_dir + if [[ -d capability ]] ; then + cd capability + for d in * ; do + if [[ -f ${capd}/$d ]] ; then + if (($(cat ${capd}/$d) == 1)) ; then + echo "This device has capabilithy $d" + ( + cd $d + install_dtbo_dir + ) + fi # Install dtbo files for a capability + fi # Does a given capability flag exist in the mts-io platform + done # Loop over all capabilities for this machine and version overlays + fi # Is there a capability directory to be installed? + ) +} + +case $1 in + start) + /usr/bin/logger -t "mts-io" -p daemon.info -s "Loading device tree overlay" + setdevtree + ;; + + stop) + echo "Not implemented" + ;; + + *) + echo "Usage: $0 {start|stop}" + exit 2 + ;; +esac |
