blob: f2038364d1ef6ed086c8c80552a8fa6e0e9990c5 [file] [log] [blame]
#!/bin/bash -e
# shellcheck source=meta-facebook/meta-minerva/recipes-minerva/plat-tool/files/minerva-common-functions
# Select UART Mux: UART Mux for switching between MTIA blade 0~15
# Usage: select-uart-mux <0-15>
source /usr/libexec/minerva-common-functions
convert_decimal_to_binary() {
decimal=$1
binary=""
for ((i = 3; i >= 0; i--)); do
bit=$(( (decimal >> i) & 1 ))
binary="${binary}${bit}"
done
echo "$binary"
}
uart_mux_select()
{
local BLADE_INDEX=$1
if ((BLADE_INDEX >= 0)) && ((BLADE_INDEX < 16)); then
BINARY_INDEX=$(convert_decimal_to_binary "$BLADE_INDEX")
set_gpio BLADE_UART_SEL0 "${BINARY_INDEX:3:1}"
set_gpio BLADE_UART_SEL1 "${BINARY_INDEX:2:1}"
set_gpio BLADE_UART_SEL2 "${BINARY_INDEX:1:1}"
set_gpio BLADE_UART_SEL3 "${BINARY_INDEX:0:1}"
else
logger -p user.info "uart_mux_select: unknow blade index ($BLADE_INDEX)"
return 1
fi
return 0
}
BLADE_INDEX=$1
uart_mux_select "$BLADE_INDEX"