
REGCTRL=/usr/sbin/emp2reg
CFGFILE=/etc/emp2.cfg
DEVFILE=/dev/ttyXR0

MPIO_SEL07=0x93
MPIO_SEL815=0x99
MPIO_LVL07=0x90
MPIO_LVL815=0x96

MODEVAL_lo=0
MODEVAL_232=1
MODEVAL_485hd=2
MODEVAL_485fd=3

PORT1MASK=0x03
PORT1SHIFT=0
PORT1LVL=$MPIO_LVL815
PORT1SEL=$MPIO_SEL815

PORT2MASK=0x0C
PORT2SHIFT=2
PORT2LVL=$MPIO_LVL815
PORT2SEL=$MPIO_SEL815

PORT3MASK=0x30
PORT3SHIFT=4
PORT3LVL=$MPIO_LVL815
PORT3SEL=$MPIO_SEL815

PORT4MASK=0xC0
PORT4SHIFT=6
PORT4LVL=$MPIO_LVL815
PORT4SEL=$MPIO_SEL815

PORT5MASK=0x03
PORT5SHIFT=0
PORT5LVL=$MPIO_LVL07
PORT5SEL=$MPIO_SEL07

PORT6MASK=0x0C
PORT6SHIFT=2
PORT6LVL=$MPIO_LVL07
PORT6SEL=$MPIO_SEL07

PORT7MASK=0x30
PORT7SHIFT=4
PORT7LVL=$MPIO_LVL07
PORT7SEL=$MPIO_SEL07

PORT8MASK=0xC0
PORT8SHIFT=6
PORT8LVL=$MPIO_LVL07
PORT8SEL=$MPIO_SEL07

function emp2_input_all()
{
	$REGCTRL write $MPIO_SEL07 0xFF
	$REGCTRL write $MPIO_SEL815 0xFF
}

function emp2_set_output()
{
	varsel=PORT${1}SEL
	varmask=PORT${1}MASK

	val=`$REGCTRL read ${!varsel}`

	if [ ! $? -eq 0 ]; then
		echo "Read register ${!valsel} fail"
		exit 1
	fi

	val=$(($val & ~${!varmask}))
	$REGCTRL write ${!varsel} $val
}

function emp2_save_configuration()
{
	if [ -z "$PORTS" ]
	then
		echo "Invalid PORTS, configuration not save"
		return
	fi

	echo "#" > $CFGFILE
	echo "# generated by emp2init, don't modify it" >> $CFGFILE
	echo "# you can reset the configuration file by execute \"emp2init reset\"" >> $CFGFILE
	echo "#" >> $CFGFILE
	echo "" >> $CFGFILE

	echo "PORTS=${PORTS}" >> $CFGFILE

	i=1
	while [ $i -le ${PORTS} ]
	do
		varfix=PORT${i}FIX
		varmode=PORT${i}MODE
		echo "${varfix}=${!varfix}" >> $CFGFILE
		echo "${varmode}=${!varmode}" >> $CFGFILE

		i=$(($i+1))
	done
}

