summaryrefslogtreecommitdiff
path: root/recipes-bsp/multitech/mt-dt-overlay/init-mtcpmhs-sdmfg
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp/multitech/mt-dt-overlay/init-mtcpmhs-sdmfg')
-rw-r--r--recipes-bsp/multitech/mt-dt-overlay/init-mtcpmhs-sdmfg69
1 files changed, 69 insertions, 0 deletions
diff --git a/recipes-bsp/multitech/mt-dt-overlay/init-mtcpmhs-sdmfg b/recipes-bsp/multitech/mt-dt-overlay/init-mtcpmhs-sdmfg
new file mode 100644
index 0000000..2a0e03d
--- /dev/null
+++ b/recipes-bsp/multitech/mt-dt-overlay/init-mtcpmhs-sdmfg
@@ -0,0 +1,69 @@
+#!/bin/bash
+# This script must be run only to set up device tree on new devices
+# as part of manufacturing process when EEPROMs are empty
+
+
+DEVTREE="/sys/kernel/config/device-tree/overlays/"
+
+install_all_dtbo() {
+ for f in *.dtbo ; do
+ if ! [[ -f $f ]] ; then
+ continue
+ fi
+ # f2 is the extracted device name
+ base=$(basename $f .dtbo)
+ /bin/mkdir ${DEVTREE}/$base || true
+ /bin/cat $f >${DEVTREE}/$base/dtbo
+ done
+}
+
+load_overlay() {
+ if ! pushd /lib/dtoverlays ; then
+ echo "Can't find device tree overlays"
+ return 1
+ fi
+
+ # Detect PCA9557 I2C GPIO at 0x19 on I2C bus 1
+ RES_="$(/usr/sbin/i2cdetect -r -y 1 0x19 0x19)"
+ if [[ "$RES_" =~ .*(^10:[[:blank:]]+19).* ]]; then
+ if ! pushd MTCDT3/0.2 ; then
+ echo "Can't find MTCDT3/0.2 direcotry"
+ popd
+ return 1
+ fi
+ echo "Loading device tree overlay for MTCDT3 v 0.2"
+ install_all_dtbo
+ popd
+ fi
+
+ # Detect MCP23008 I2C GPIO at 0x21 on I2C bus 1
+ RES_="$(/usr/sbin/i2cdetect -r -y 1 0x21 0x21)"
+ if [[ "$RES_" =~ .*(^20:[[:blank:]]+21).* ]]; then
+ if ! pushd MTCDT3/0.0 ; then
+ echo "Can't find MTCDT3/0.0 direcotry"
+ popd
+ return 1
+ fi
+ echo "Loading device tree overlay for MTCDT3 v 0.0"
+ install_all_dtbo
+ popd
+ fi
+
+ popd
+}
+
+case $1 in
+ start)
+ echo "Loading device tree overlay"
+ load_overlay
+ ;;
+
+ stop)
+ echo "Not implemented"
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop}"
+ exit 2
+ ;;
+esac