summaryrefslogtreecommitdiff
path: root/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-utils/gpio-lib.sh
blob: c8721fe9762a0ec395c8948aa75695d8d1b38743 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash

# shellcheck source=/dev/null
source /usr/sbin/gpio-defs.sh

function gpio_number() {
	GPIO_BASE=$(cat /sys/class/gpio/gpiochip"$GPIO_CHIP0_BASE"/base)
	echo $((GPIO_BASE + $1))
}

# Configure GPIO as output and set its value
function gpio_configure_output() {
	gpioId=$(gpio_number "$1")
	echo "$gpioId" > /sys/class/gpio/export
	echo out > /sys/class/gpio/gpio"${gpioId}"/direction
	echo "$2" > /sys/class/gpio/gpio"${gpioId}"/value
	echo "$gpioId" > /sys/class/gpio/unexport
}

function gpio_get_val() {
	gpioId=$(gpio_number "$1")
	echo "$gpioId" > /sys/class/gpio/export
	cat /sys/class/gpio/gpio"$gpioId"/value
	echo "$gpioId" > /sys/class/gpio/unexport
}

# Configure GPIO as input
function gpio_configure_input() {
	gpioId=$(gpio_number "$1")
	echo "$gpioId" > /sys/class/gpio/export
	echo "in" > /sys/class/gpio/gpio"${gpioId}"/direction
	echo "$gpioId" > /sys/class/gpio/unexport
}