mirror of https://github.com/OpenIPC/firmware.git
add gpio package
parent
9ed8b47e33
commit
7f7e251f96
|
@ -0,0 +1,68 @@
|
|||
#!/bin/sh
|
||||
|
||||
help() {
|
||||
echo "gpio <set|clear|toggle> <pin>"
|
||||
echo "gpio <unexport|release> <pin>"
|
||||
echo "gpio read <pin>"
|
||||
}
|
||||
|
||||
exp() {
|
||||
if [ ! -d /sys/class/gpio/gpio$1 ]; then
|
||||
echo $1 > /sys/class/gpio/export
|
||||
echo out > /sys/class/gpio/gpio$1/direction
|
||||
elif [ $(cat /sys/class/gpio/gpio$1/direction) = "in" ]; then
|
||||
echo Pin $1 is currently configured as input. Be careful!
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
write(){
|
||||
echo $1 > /sys/class/gpio/gpio$2/value
|
||||
}
|
||||
|
||||
read() {
|
||||
echo $(cat /sys/class/gpio/gpio$1/value)
|
||||
}
|
||||
|
||||
unexport() {
|
||||
if [ -d /sys/class/gpio/gpio$1 ]; then
|
||||
echo $1 > /sys/class/gpio/unexport
|
||||
fi
|
||||
}
|
||||
|
||||
if [ -n $1 ] && [ -n $2 ] && [ $2 -eq $2 ]; then
|
||||
case $1 in
|
||||
set)
|
||||
exp $2
|
||||
write 1 $2
|
||||
;;
|
||||
|
||||
clear)
|
||||
exp $2
|
||||
write 0 $2
|
||||
;;
|
||||
|
||||
toggle)
|
||||
exp $2
|
||||
if [ read -eq 0 ]; then
|
||||
write 1 $2
|
||||
else
|
||||
write 0 $2
|
||||
fi
|
||||
;;
|
||||
|
||||
unexport|release)
|
||||
unexport $2
|
||||
;;
|
||||
|
||||
read)
|
||||
echo $(read $2)
|
||||
;;
|
||||
|
||||
*)
|
||||
help
|
||||
;;
|
||||
esac
|
||||
else
|
||||
help
|
||||
fi
|
Loading…
Reference in New Issue