#!/bin/sh

if [ $# != 1 -a $# != 2 ] ; then
    echo "Usage: $0 line-interface [mode]"
    echo "line-interface can be 1.a, 1.b, 3.a, 3.b, 101.a, ..."
    echo "mode can be 1 (enable loopback), 0 (disable) or empty to show status"
    exit 1
fi

ITRF=$(echo $1 | tr "." " ")
mode=$2

pos=1
for i in $ITRF ; do
    case "$pos" in
    1) spiPort=$i ;;
    2) liuPort=$(echo $i | tr "abcdefghij" "0123456789") ;;
    esac
    pos=$(($pos+1))
done


chipIdx=$(($spiPort/100))
spiPort=$(($spiPort%100))
spiPort=$(($spiPort-1))

#echo "chipIdx=$chipIdx, spiPort=$spiPort, liuPort=$liuPort"
if [ $liuPort = 0 ] ; then
    address=0x0d
else
    address=0x2d
fi

if [ -z "$mode" ] ; then
    let state=$(liuTool /dev/tdmSpi$spiPort $address)
    if [ "$state" = "0" ]; then
        echo Digital loopback disabled on port $0
    else
        echo Digital loopback enabled on port $0
    fi
else
    let mode=$mode
    if [ "$mode" != "0" ]; then
        mode=0x01
    fi
    liuTool /dev/tdmSpi$spiPort $address $mode
    if [ "$mode" = "0" ]; then
        echo Digital loopback disabled on port $0
    else
        echo Digital loopback enabled on port $0
    fi
fi
