#!/bin/sh -Cefu set -Cefu driver="`echo \"$1\" | tr '[:upper:]' '[:lower:]'`" pin="`echo \"$2\" | tr '[:upper:]' '[:lower:]'`" bank_name="`echo \"$pin\" | tr -cd '[:lower:]'`" pin_num="`echo \"$pin\" | tr -cd '[:digit:]'`" bank_num= fdt_compat= case "$bank_name" in pa) bank_num=0 ;; pc) bank_num=2 ;; pd) bank_num=3 ;; pe) bank_num=4 ;; pf) bank_num=5 ;; pg) bank_num=6 ;; *) exit 1 ;; esac case "$driver" in owc) fdt_compat=w1-gpio ;; gpioths) fdt_compat=dht11 ;; *) exit 1 ;; esac dtso_file="$driver-$pin.dtso" dtbo_file="$driver-$pin.dtbo" rm -f "$dtso_file" cat > "$dtso_file" << EOF /dts-v1/; / { compatible = "friendlyarm,nanopi-neo"; fragment@0 { target-path = "/"; __overlay__ { $driver-$pin { compatible = "$fdt_compat"; gpios = <0x1f 0x$bank_num 0x$pin_num 0x0>; }; }; }; }; EOF dtc -o "$dtbo_file" "$dtso_file"