#!/bin/sh /etc/rc.common

START=50

load_iolines_boot() {	

	config_get dev "$1" "dev"
	
	num=$(echo ${dev:3:1})
	pu="/dev/pu$num"
	pd="/dev/pd$num"
	
	config_get mode "$1" "mode"
	config_get enabled "$1" "enabled" "0"
	if [ $enabled -eq 1 ]; then
		case "$mode" in
			"mode1")
				echo in > $pu/direction
				echo low > $pd/direction
				;;
			"mode2")
				echo low > $pu/direction
				echo low > $pd/direction
				;;
			"mode3")
				echo high > $pu/direction
				echo high > $pd/direction
				;;
		esac		
	else
		echo in > $pu/direction
		echo low > $pd/direction
	fi
}

load_iolines() {	

	config_get dev "$1" "dev"
	
	num=$(echo ${dev:3:1})
	pu="/dev/pu$num"
	pd="/dev/pd$num"
	
	config_get mode "$1" "mode"
		
	case "$mode" in
		"mode1")
			echo in > $pu/direction
			echo low > $pd/direction
			;;
		"mode2")
			echo low > $pu/direction
			echo low > $pd/direction
			;;
		"mode3")
			echo high > $pu/direction
			echo high > $pd/direction
			;;
	esac		

}

boot() {
	echo 51 > /sys/class/gpio/export
	echo 50 > /sys/class/gpio/export
	echo 54 > /sys/class/gpio/export
	echo 53 > /sys/class/gpio/export
	echo 57 > /sys/class/gpio/export
	echo 64 > /sys/class/gpio/export
	echo 66 > /sys/class/gpio/export
	echo 65 > /sys/class/gpio/export

	ln -s /sys/bus/iio/devices/iio\:device0/in_voltage3_raw /dev/board
	BOARD=$((($(cat /dev/board)+$(cat /dev/board)+$(cat /dev/board))/3))

	if [ "$BOARD" -gt "600" -a "$BOARD" -lt "900" ]; then
		echo v4 > /tmp/sysinfo/hw
		ln -s /sys/class/gpio/gpio51 /dev/pu3
		ln -s /sys/class/gpio/gpio50 /dev/pd3
		ln -s /sys/class/gpio/gpio54 /dev/pu2
		ln -s /sys/class/gpio/gpio53 /dev/pd2
		ln -s /sys/class/gpio/gpio57 /dev/pu1
		ln -s /sys/class/gpio/gpio64 /dev/pd1
		ln -s /sys/class/gpio/gpio66 /dev/pu0
		ln -s /sys/class/gpio/gpio65 /dev/pd0
		ln -s /sys/bus/iio/devices/iio\:device0/in_voltage0_raw /dev/io3
		ln -s /sys/bus/iio/devices/iio\:device0/in_voltage1_raw /dev/io2
		ln -s /sys/bus/iio/devices/iio\:device0/in_voltage4_raw /dev/io1
		ln -s /sys/bus/iio/devices/iio\:device0/in_voltage6_raw /dev/io0
	else
		echo v2 > /tmp/sysinfo/hw
		ln -s /sys/class/gpio/gpio51 /dev/pu0
		ln -s /sys/class/gpio/gpio50 /dev/pd0
		ln -s /sys/class/gpio/gpio54 /dev/pu1
		ln -s /sys/class/gpio/gpio53 /dev/pd1
		ln -s /sys/class/gpio/gpio57 /dev/pu2
		ln -s /sys/class/gpio/gpio64 /dev/pd2
		ln -s /sys/class/gpio/gpio66 /dev/pu3
		ln -s /sys/class/gpio/gpio65 /dev/pd3
		ln -s /sys/bus/iio/devices/iio\:device0/in_voltage0_raw /dev/io0
		ln -s /sys/bus/iio/devices/iio\:device0/in_voltage1_raw /dev/io1
		ln -s /sys/bus/iio/devices/iio\:device0/in_voltage4_raw /dev/io2
		ln -s /sys/bus/iio/devices/iio\:device0/in_voltage6_raw /dev/io3
	fi
	config_load iolines
	config_foreach load_iolines_boot io
}

restart() {
	config_load iolines
	config_foreach load_iolines io
}
