#!/bin/bash

reset=49
isp=115

gpio_set_value () {
	local nr="$1"
	local value="$2"

	echo "$2" > /sys/class/gpio/gpio"$nr"/value
}

gpio_direction_output () {
	local nr="$1"
	local value="$2"

	if ! [ -d "/sys/class/gpio/gpio$nr" ]; then
		echo "$nr" > /sys/class/gpio/export
	fi
	echo out > /sys/class/gpio/gpio"$nr"/direction
	gpio_set_value "$nr" "$value"
}

gpio_direction_output "$reset" 1
gpio_direction_output "$isp" 1
sleep 0.1
gpio_set_value "$reset" 0
sleep 0.5
lpcprog -d /dev/ttyO4 -c flash ~/abiathar.bin
gpio_set_value "$isp" 0
gpio_set_value "$reset" 1
sleep 0.1
gpio_set_value "$reset" 0

gpio_set_value "$isp" 1
