#!/bin/sh # Select UART Mux: UART Mux for switching between Host and BIC on Slot1 ~ Slot4 # Usage: select-uart-mux REG_OFFSET="0x01" input_slot=$1 input_target=$2 i2c_bus_id= show_usage() { echo "Usage: select-uart-mux [ slot1 | slot2 | slot3 | slot4 ] [ host | bic ]" echo "Select UART Mux" } if [ $# -gt 3 ]; then show_usage exit 255 fi case $input_slot in slot1) i2c_bus_id="4" ;; slot2) i2c_bus_id="5" ;; slot3) i2c_bus_id="6" ;; slot4) i2c_bus_id="7" ;; *) echo "Slot must between 1 to 4." show_usage exit 255 ;; esac case $input_target in host) reg_val="0x03" ;; bic) reg_val="0x04" ;; *) echo "Input must be host or bic." show_usage exit 255 esac i2ctransfer -y -f $i2c_bus_id w2@0x0f $REG_OFFSET $reg_val val=$(i2ctransfer -y -f $i2c_bus_id w1@0x0f $REG_OFFSET r1) ret=$? if [ $ret -ne 0 ] || [ "$val" != $reg_val ]; then echo "Failed to modify the register value, the register value is $val instead of $reg_val." exit 255 fi