summaryrefslogtreecommitdiff
path: root/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh
diff options
context:
space:
mode:
Diffstat (limited to 'meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh')
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh39
1 files changed, 29 insertions, 10 deletions
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh
index 503e413cef..063cc55c9c 100644
--- a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh
@@ -1,19 +1,38 @@
#!/bin/bash
+# get_gpio_num
+# Dynamically obtains GPIO number from chip base and I2C expanders through line name
+# line-name
+function get_gpio_num() {
+ #shellcheck disable=SC2207
+ CHIP_PIN=($(gpiofind "$1" | awk '{print substr ($1, 9 ), $2 }'))
+ #shellcheck disable=SC2128
+ if [ -z "$CHIP_PIN" ]; then
+ echo "Could not find GPIO with name: $1"
+ return 1
+ fi
+
+ if [ "${CHIP_PIN[0]}" -gt 7 ]; then
+ BUS_ADDR=$(gpiodetect | grep gpiochip"${CHIP_PIN[0]}" | awk '{print substr($2, 2, length($2) - 2)}')
+ GPIO_BASE=$(cat /sys/bus/i2c/devices/"$BUS_ADDR"/gpio/*/base)
+ echo "$((GPIO_BASE+CHIP_PIN[1]))"
+ else
+ echo "$((CHIP_PIN[0]*32+CHIP_PIN[1]))"
+ fi
+}
+
# set_gpio_ctrl
-# pin #, direction, high(1)/low(0)
+# line-name, high(1)/low(0)
function set_gpio_ctrl() {
- echo "$1" > /sys/class/gpio/export
- echo "$2" > /sys/class//gpio/gpio"$1"/direction
- echo "$3" > /sys/class/gpio/gpio"$1"/value
- echo "$1" > /sys/class/gpio/unexport
- sleep 1
+ #shellcheck disable=SC2046
+ gpioset $(gpiofind "$1")="$2"
}
# get_gpio_ctrl
-# pin #
+# line-name
function get_gpio_ctrl() {
- echo "$1" > /sys/class/gpio/export
- cat /sys/class/gpio/gpio"$1"/value
- echo "$1" > /sys/class/gpio/unexport
+ GPIO_NUM=$(get_gpio_num "$1")
+ echo "$GPIO_NUM" > /sys/class/gpio/export
+ cat /sys/class/gpio/gpio"$GPIO_NUM"/value
+ echo "$GPIO_NUM" > /sys/class/gpio/unexport
}