blob: d073b66f9f1861309160aa6f09207ea691099c53 [file] [log] [blame]
#!/bin/bash
get_gpio()
{
local NET_NAME=$1
local RET_VAL
mapfile -t -d " " GPIO_INFO < <(gpiofind "$NET_NAME")
if [ "${#GPIO_INFO[@]}" -ne 2 ]; then
echo "get_gpio: can not find gpio, $NET_NAME" >&2
return 1
fi
if ! RET_VAL=$(gpioget "${GPIO_INFO[0]}" "${GPIO_INFO[1]%$'\n'}") ; then
echo "get_gpio: get ${NET_NAME} failed" >&2
return 1
fi
echo "${RET_VAL}"
return 0
}
set_gpio()
{
local NET_NAME=$1
local OUT_VAL=$2
mapfile -t -d " " GPIO_INFO < <(gpiofind "$NET_NAME")
if [ "${#GPIO_INFO[@]}" -ne 2 ]; then
echo "set_gpio: can not find gpio, $NET_NAME"
return 1
fi
echo -n "set_gpio: set $NET_NAME = $OUT_VAL"
if ! gpioset "${GPIO_INFO[0]}" "${GPIO_INFO[1]%$'\n'}"="$OUT_VAL"; then
echo " failed"
return 1
fi
echo " success"
return 0
}
bind_i2c_device()
{
DRIVER_NAME="$1"
DEV_BUS_ADDR="$2"
DRIVER_DIR_PATH="/sys/bus/i2c/drivers/${DRIVER_NAME}"
DRIVER_BIND_PATH="${DRIVER_DIR_PATH}/bind"
if [ ! -L "${DRIVER_DIR_PATH}/${DEV_BUS_ADDR}" ]; then
echo "bind_i2c_device: $DRIVER_NAME, $DEV_BUS_ADDR"
echo "${DEV_BUS_ADDR}" > "${DRIVER_BIND_PATH}"
fi
}