Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch sysfs GPIO ABI to pigpiod #12

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions functions.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/sh

ensure_pigpiod() {
local LISTENING TRIES
if ! which socat pigpiod pigs >/dev/null; then
echo Please install all of the following packages:
echo sudo apt install socat pigpiod pigpio-tools
exit 1
fi
LISTENING=0
socat OPEN:/dev/null TCP6:localhost:8888 2>/dev/null ||
socat OPEN:/dev/null TCP4:localhost:8888 2>/dev/null && LISTENING=1
if [ $LISTENING -eq 1 ]; then
if [ "$(systemctl show pigpiod.service | grep ^ActiveState=)" = ActiveState=active ]; then
return
else
echo "Something else appears to be listening on port 8888! Please fix."
exit 1
fi
fi
if ! sudo systemctl start pigpiod.service; then
echo "Could not start pigpiod.service; please fix."
exit 1
fi
TRIES=15
while [ $TRIES -gt 0 ]; do
socat OPEN:/dev/null TCP6:localhost:8888,retry=1,interval=0.1 2>/dev/null && break
socat OPEN:/dev/null TCP4:localhost:8888,retry=1,interval=0.1 2>/dev/null && break
TRIES=$((TRIES - 1))
done
if [ $TRIES -eq 0 ]; then
echo Timed out waiting for pigpiod to start
exit 1
fi
}
13 changes: 4 additions & 9 deletions reset_ec.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
#!/bin/sh

if [ ! -d /sys/class/gpio/gpio25 ]
then
echo "25" > /sys/class/gpio/export
fi
. ./functions.sh

ensure_pigpiod
pigs modes 25 w write 25 0
sleep 0.1
echo "out" > /sys/class/gpio/gpio25/direction
echo 0 > /sys/class/gpio/gpio25/value
sleep 0.1
echo 1 > /sys/class/gpio/gpio25/value

pigs write 25 1
13 changes: 4 additions & 9 deletions reset_soc.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
#!/bin/sh

if [ ! -d /sys/class/gpio/gpio24 ]
then
echo "24" > /sys/class/gpio/export
fi
. ./functions.sh

ensure_pigpiod
pigs modes 24 w write 24 0
sleep 0.1
echo "out" > /sys/class/gpio/gpio24/direction
echo 0 > /sys/class/gpio/gpio24/value
sleep 0.1
echo 1 > /sys/class/gpio/gpio24/value

pigs write 24 1
10 changes: 3 additions & 7 deletions uart_fpga.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
#!/bin/sh

if [ ! -d /sys/class/gpio/gpio18 ]
then
echo "18" > /sys/class/gpio/export
fi
. ./functions.sh

sleep 0.1
echo "out" > /sys/class/gpio/gpio18/direction
echo "1" > /sys/class/gpio/gpio18/value
ensure_pigpiod
pigs modes 18 w write 18 1
10 changes: 3 additions & 7 deletions uart_up5k.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
#!/bin/sh

if [ ! -d /sys/class/gpio/gpio18 ]
then
echo "18" > /sys/class/gpio/export
fi
. ./functions.sh

sleep 0.1
echo "out" > /sys/class/gpio/gpio18/direction
echo "0" > /sys/class/gpio/gpio18/value
ensure_pigpiod
pigs modes 18 w write 18 0
12 changes: 4 additions & 8 deletions vbus.sh
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
#!/bin/sh

. ./functions.sh

if [ "$1" != "0" ] && [ "$1" != "1" ]; then
echo "Needs an argument of 0 or 1"
exit 0
fi

if [ ! -d /sys/class/gpio/gpio21 ]
then
echo "21" > /sys/class/gpio/export
fi

sleep 0.1
echo "out" > /sys/class/gpio/gpio21/direction
echo $1 > /sys/class/gpio/gpio21/value
ensure_pigpiod
pigs modes 21 w write 21 $1
10 changes: 3 additions & 7 deletions vbus_off.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
#!/bin/sh

if [ ! -d /sys/class/gpio/gpio21 ]
then
echo "21" > /sys/class/gpio/export
fi
. ./functions.sh

sleep 0.1
echo "out" > /sys/class/gpio/gpio21/direction
echo "0" > /sys/class/gpio/gpio21/value
ensure_pigpiod
pigs modes 21 w write 21 0
10 changes: 3 additions & 7 deletions vbus_on.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
#!/bin/sh

if [ ! -d /sys/class/gpio/gpio21 ]
then
echo "21" > /sys/class/gpio/export
fi
. ./functions.sh

sleep 0.1
echo "out" > /sys/class/gpio/gpio21/direction
echo "1" > /sys/class/gpio/gpio21/value
ensure_pigpiod
pigs modes 21 w write 21 1