#!/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 }