blob: 40b84018d2e33091c575ec4059645bb0d3469945 [file] [log] [blame]
Delphine CC Chiua576a592022-12-21 09:25:28 +08001#!/bin/sh
2# Select UART Mux: UART Mux for switching between Host and BIC on Slot1 ~ Slot4
3# Usage: select-uart-mux <slot1|slot2|slot3|slot4> <host|bic>
4
5REG_OFFSET="0x01"
6input_slot=$1
7input_target=$2
8i2c_bus_id=
9
10show_usage() {
11 echo "Usage: select-uart-mux [ slot1 | slot2 | slot3 | slot4 ] [ host | bic ]"
12 echo "Select UART Mux"
13}
14
15if [ $# -gt 3 ]; then
16 show_usage
17 exit 255
18fi
19
20case $input_slot in
21 slot1)
22 i2c_bus_id="4"
23 ;;
24 slot2)
25 i2c_bus_id="5"
26 ;;
27 slot3)
28 i2c_bus_id="6"
29 ;;
30 slot4)
31 i2c_bus_id="7"
32 ;;
33 *)
34 echo "Slot must between 1 to 4."
35 show_usage
36 exit 255
37 ;;
38 esac
39
40case $input_target in
41 host)
42 reg_val="0x03"
43 ;;
44 bic)
45 reg_val="0x04"
46 ;;
47 *)
48 echo "Input must be host or bic."
49 show_usage
50 exit 255
51 esac
52
53i2ctransfer -y -f $i2c_bus_id w2@0x0f $REG_OFFSET $reg_val
54
55val=$(i2ctransfer -y -f $i2c_bus_id w1@0x0f $REG_OFFSET r1)
56ret=$?
57
58if [ $ret -ne 0 ] || [ "$val" != $reg_val ]; then
59 echo "Failed to modify the register value, the register value is $val instead of $reg_val."
60 exit 255
61fi