70 lines
1.8 KiB
Bash
70 lines
1.8 KiB
Bash
#!/bin/sh
|
|
|
|
SUBSYSTEM=$(uname -n || $HOSTNAME)
|
|
SUBSYSTEM=${SUBSYSTEM#*-}
|
|
|
|
HWIDX0=0
|
|
HWIDX1=0
|
|
HWIDX2=0
|
|
HWIDX3=0
|
|
HWIDX4=0
|
|
|
|
if [[ ! -e /dev/sysregs ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "$SUBSYSTEM" == "jacinto" ]]; then
|
|
# set variable gpios to input if necessary
|
|
if [[ $(cat /dev/sysregs/DSP_LED_DIR) -eq 0x00000000 ]]; then
|
|
SAVE_DSP_LED_DIR=$(cat /dev/sysregs/DSP_LED_DIR)
|
|
echo 0x00000001>/dev/sysregs/DSP_LED_DIR
|
|
fi
|
|
if [[ $(cat /dev/sysregs/ARM_LED_DIR) -eq 0x00000000 ]]; then
|
|
SAVE_ARM_LED_DIR=$(cat /dev/sysregs/ARM_LED_DIR)
|
|
echo 0x00000001>/dev/sysregs/ARM_LED_DIR
|
|
fi
|
|
|
|
# determine the hardware index
|
|
if [[ ! -e /dev/sysregs/HW_ID0 ]]; then
|
|
exit 1
|
|
fi
|
|
HWIDX0=$(($(cat /dev/sysregs/HW_ID0)))
|
|
HWIDX1=$(($(cat /dev/sysregs/HW_ID1)))
|
|
HWIDX2=$(($(cat /dev/sysregs/HW_ID2)))
|
|
HWIDX3=$(($(cat /dev/sysregs/HW_ID3)))
|
|
# ignore msb pin due to problems on rse targets
|
|
# HWIDX4=$(($(cat /dev/sysregs/HW_ID4)))
|
|
|
|
# check and reset gpios
|
|
if [[ -n $SAVE_DSP_LED_DIR ]]; then
|
|
if [[ $(cat /dev/sysregs/DSP_LED_DIR) -eq $SAVE_DSP_LED_DIR ]]; then
|
|
exit 1
|
|
fi
|
|
echo $SAVE_DSP_LED_DIR>/dev/sysregs/DSP_LED_DIR
|
|
fi
|
|
if [[ -n $SAVE_ARM_LED_DIR ]]; then
|
|
if [[ $(cat /dev/sysregs/ARM_LED_DIR) -eq $SAVE_ARM_LED_DIR ]]; then
|
|
exit 1
|
|
fi
|
|
echo $SAVE_ARM_LED_DIR>/dev/sysregs/ARM_LED_DIR
|
|
fi
|
|
elif [[ "$SUBSYSTEM" == "omap" ]]; then
|
|
# determine the hardware index
|
|
if [[ ! -e /dev/sysregs/HW_IDX0 ]]; then
|
|
exit 1
|
|
fi
|
|
HWIDX0=$(($(cat /dev/sysregs/HW_IDX0)))
|
|
HWIDX1=$(($(cat /dev/sysregs/HW_IDX1)))
|
|
HWIDX2=$(($(cat /dev/sysregs/HW_IDX2)))
|
|
HWIDX3=$(($(cat /dev/sysregs/HW_IDX3)))
|
|
if [[ -e /dev/sysregs/HW_IDX4 ]]; then
|
|
HWIDX4=$(($(cat /dev/sysregs/HW_IDX4)))
|
|
fi
|
|
else
|
|
exit 1
|
|
fi
|
|
|
|
echo $((2#$HWIDX4$HWIDX3$HWIDX2$HWIDX1$HWIDX0))
|
|
|
|
exit 0
|