70 lines
1.7 KiB
Bash
70 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
# Configure GPIO as output and set its value
|
|
AST2600_GPIO_BASE=(
|
|
816
|
|
780
|
|
)
|
|
|
|
function gpio_configure_output() {
|
|
echo "$1" > /sys/class/gpio/export
|
|
echo out > /sys/class/gpio/gpio"$1"/direction
|
|
echo "$2" > /sys/class/gpio/gpio"$1"/value
|
|
echo "$1" > /sys/class/gpio/unexport
|
|
}
|
|
|
|
function gpio_get_val() {
|
|
echo "$1" > /sys/class/gpio/export
|
|
cat /sys/class/gpio/gpio"$1"/value
|
|
echo "$1" > /sys/class/gpio/unexport
|
|
}
|
|
|
|
# Configure GPIO as input
|
|
function gpio_configure_input() {
|
|
echo "$1" > /sys/class/gpio/export
|
|
echo "in" > /sys/class/gpio/gpio"$1"/direction
|
|
echo "$1" > /sys/class/gpio/unexport
|
|
}
|
|
|
|
function gpio_name_set()
|
|
{
|
|
str=$(gpiofind "$1")
|
|
#Verify error code when run gpiofind
|
|
if [ "$?" == '1' ]; then
|
|
echo "Invalid gpio name $1"
|
|
else
|
|
gpioid=$(echo "$str"|cut -c 9)
|
|
offset=$(echo "$str"|cut -d " " -f 2)
|
|
gpioPin=$(("$offset" + ${AST2600_GPIO_BASE[$gpioid]}))
|
|
gpio_configure_output "$gpioPin" "$2"
|
|
fi
|
|
}
|
|
|
|
function gpio_name_get()
|
|
{
|
|
str=$(gpiofind "$1")
|
|
#Verify error code when run gpiofind
|
|
if [ "$?" == '1' ]; then
|
|
echo "Invalid gpio name $1"
|
|
else
|
|
offset=$(echo "$str"|cut -d " " -f 2)
|
|
gpioid=$(echo "$str"|cut -c 9)
|
|
gpioPin=$(("$offset" + ${AST2600_GPIO_BASE[$gpioid]}))
|
|
gpio_get_val "$gpioPin"
|
|
fi
|
|
}
|
|
|
|
function gpio_name_input()
|
|
{
|
|
str=$(gpiofind "$1")
|
|
#Verify error code when run gpiofind
|
|
if [ "$?" == '1' ]; then
|
|
echo "Invalid gpio name $1"
|
|
else
|
|
gpioid=$(echo "$str"|cut -c 9)
|
|
offset=$(echo "$str"|cut -d " " -f 2)
|
|
gpioPin=$(("$offset" + ${AST2600_GPIO_BASE[$gpioid]}))
|
|
gpio_configure_input "$gpioPin"
|
|
fi
|
|
}
|