#!/bin/bash

# shellcheck source=meta-ampere/meta-jade/recipes-ampere/platform/ampere-utils/gpio-defs.sh
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
}
