op-packages/iolines/files/iolines.init
github-actions[bot] b86d032e91 🤞 Sync 2026-04-23 06:19:46
2026-04-23 06:19:46 +08:00

113 lines
2.7 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
START=50
load_iolines_boot() {
config_get dev "$1" "dev"
num=$(echo ${dev:3:1})
pu="/dev/pu$num"
pd="/dev/pd$num"
config_get mode "$1" "mode"
config_get enabled "$1" "enabled" "0"
if [ $enabled -eq 1 ]; then
case "$mode" in
"mode1")
echo in > $pu/direction
echo low > $pd/direction
;;
"mode2")
echo low > $pu/direction
echo low > $pd/direction
;;
"mode3")
echo high > $pu/direction
echo high > $pd/direction
;;
esac
else
echo in > $pu/direction
echo low > $pd/direction
fi
}
load_iolines() {
config_get dev "$1" "dev"
num=$(echo ${dev:3:1})
pu="/dev/pu$num"
pd="/dev/pd$num"
config_get mode "$1" "mode"
case "$mode" in
"mode1")
echo in > $pu/direction
echo low > $pd/direction
;;
"mode2")
echo low > $pu/direction
echo low > $pd/direction
;;
"mode3")
echo high > $pu/direction
echo high > $pd/direction
;;
esac
}
boot() {
echo 51 > /sys/class/gpio/export
echo 50 > /sys/class/gpio/export
echo 54 > /sys/class/gpio/export
echo 53 > /sys/class/gpio/export
echo 57 > /sys/class/gpio/export
echo 64 > /sys/class/gpio/export
echo 66 > /sys/class/gpio/export
echo 65 > /sys/class/gpio/export
ln -s /sys/bus/iio/devices/iio\:device0/in_voltage3_raw /dev/board
BOARD=$((($(cat /dev/board)+$(cat /dev/board)+$(cat /dev/board))/3))
if [ "$BOARD" -gt "600" -a "$BOARD" -lt "900" ]; then
echo v4 > /tmp/sysinfo/hw
ln -s /sys/class/gpio/gpio51 /dev/pu3
ln -s /sys/class/gpio/gpio50 /dev/pd3
ln -s /sys/class/gpio/gpio54 /dev/pu2
ln -s /sys/class/gpio/gpio53 /dev/pd2
ln -s /sys/class/gpio/gpio57 /dev/pu1
ln -s /sys/class/gpio/gpio64 /dev/pd1
ln -s /sys/class/gpio/gpio66 /dev/pu0
ln -s /sys/class/gpio/gpio65 /dev/pd0
ln -s /sys/bus/iio/devices/iio\:device0/in_voltage0_raw /dev/io3
ln -s /sys/bus/iio/devices/iio\:device0/in_voltage1_raw /dev/io2
ln -s /sys/bus/iio/devices/iio\:device0/in_voltage4_raw /dev/io1
ln -s /sys/bus/iio/devices/iio\:device0/in_voltage6_raw /dev/io0
else
echo v2 > /tmp/sysinfo/hw
ln -s /sys/class/gpio/gpio51 /dev/pu0
ln -s /sys/class/gpio/gpio50 /dev/pd0
ln -s /sys/class/gpio/gpio54 /dev/pu1
ln -s /sys/class/gpio/gpio53 /dev/pd1
ln -s /sys/class/gpio/gpio57 /dev/pu2
ln -s /sys/class/gpio/gpio64 /dev/pd2
ln -s /sys/class/gpio/gpio66 /dev/pu3
ln -s /sys/class/gpio/gpio65 /dev/pd3
ln -s /sys/bus/iio/devices/iio\:device0/in_voltage0_raw /dev/io0
ln -s /sys/bus/iio/devices/iio\:device0/in_voltage1_raw /dev/io1
ln -s /sys/bus/iio/devices/iio\:device0/in_voltage4_raw /dev/io2
ln -s /sys/bus/iio/devices/iio\:device0/in_voltage6_raw /dev/io3
fi
config_load iolines
config_foreach load_iolines_boot io
}
restart() {
config_load iolines
config_foreach load_iolines io
}