diff options
| -rw-r--r-- | util/mtac_003_ap1_reset.sh | 79 | ||||
| -rw-r--r-- | util/mtac_003_ap2_reset.sh | 79 | 
2 files changed, 158 insertions, 0 deletions
| diff --git a/util/mtac_003_ap1_reset.sh b/util/mtac_003_ap1_reset.sh new file mode 100644 index 0000000..f19f29e --- /dev/null +++ b/util/mtac_003_ap1_reset.sh @@ -0,0 +1,79 @@ +#!/bin/sh + +# This script is intended to be used on MTAC-003V3 platform, it performs +# the following actions: +#       - export/unpexort pioC9 and pioB12 used to reset the SX1302 chip and setup AP1_NRESET +#       - export/unexport pioC10 used to reset the optional SX1261 radio used for LBT/Spectral Scan +# +# Usage examples: +#       ./reset_lgw.sh stop +#       ./reset_lgw.sh start + +# GPIO mapping has to be adapted with HW +# + +SX1302_RESET_PIN=73     # SX1302 reset +AP1_NRESET_PIN=44       # AP1_NRESET +SX1261_RESET_PIN=74     # SX1261 reset (LBT / Spectral Scan) +SX1302_RESET_pio=C9     # pio for SX1303 reset +AP1_NRESET_pio=B12      # pio for AP1_NRESET +SX1261_NRESET_pio=C10   # pio for SX1261 NRESET + +WAIT_GPIO() { +    sleep 0.1 +} + +init() { +    # setup GPIOs +    echo "$SX1302_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO +    echo "$SX1261_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO +    echo "$AP1_NRESET_PIN" > /sys/class/gpio/export; WAIT_GPIO + +    # set GPIOs as output +    echo "out" > /sys/class/gpio/pio$SX1302_RESET_pio/direction; WAIT_GPIO +    echo "out" > /sys/class/gpio/pio$SX1261_NRESET_pio/direction; WAIT_GPIO +    echo "out" > /sys/class/gpio/pio$AP1_NRESET_pio/direction; WAIT_GPIO +} + +reset() { +    # write output for AP1_NRESET and SX1303 reset +    echo "1" > /sys/class/gpio/pio$AP1_NRESET_pio/value; WAIT_GPIO + +    echo "1" > /sys/class/gpio/pio$SX1302_RESET_pio/value; WAIT_GPIO +    echo "0" > /sys/class/gpio/pio$SX1302_RESET_pio/value; WAIT_GPIO + +    echo "0" > /sys/class/gpio/pio$SX1261_NRESET_pio/value; WAIT_GPIO +    echo "1" > /sys/class/gpio/pio$SX1261_NRESET_pio/value; WAIT_GPIO +} + +term() { +    # cleanup all GPIOs +    if [ -d /sys/class/gpio/pio$SX1302_RESET_pio ] +    then +        echo "$SX1302_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO +    fi +    if [ -d /sys/class/gpio/pio$SX1261_NRESET_pio ] +    then +        echo "$SX1261_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO +    fi +    if [ -d /sys/class/gpio/pio$AP1_NRESET_pio ] +    then +        echo "$AP1_NRESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO +    fi +} + +case "$1" in +    start) +    term # just in case +    init +    reset +    ;; +    stop) +    reset +    term +    ;; +    *) +    echo "Usage: $0 {start|stop}" +    exit 1 +    ;; +esac diff --git a/util/mtac_003_ap2_reset.sh b/util/mtac_003_ap2_reset.sh new file mode 100644 index 0000000..cd6c13a --- /dev/null +++ b/util/mtac_003_ap2_reset.sh @@ -0,0 +1,79 @@ +#!/bin/sh + +# This script is intended to be used on MTAC-003V3 platform, it performs +# the following actions: +#       - export/unpexort pioC23 and pioB13 used to reset the SX1302 chip and setup AP2_NRESET +#       - export/unexport pioC24 used to reset the optional SX1261 radio used for LBT/Spectral Scan +# +# Usage examples: +#       ./reset_lgw.sh stop +#       ./reset_lgw.sh start + +# GPIO mapping has to be adapted with HW +# + +SX1302_RESET_PIN=87     # SX1302 reset +AP2_NRESET_PIN=45       # AP2_NRESET +SX1261_RESET_PIN=88     # SX1261 reset (LBT / Spectral Scan) +SX1302_RESET_pio=C23    # pio for SX1303 reset +AP2_NRESET_pio=B13      # pio for AP1_NRESET +SX1261_NRESET_pio=C24   # pio for SX1261 NRESET + +WAIT_GPIO() { +    sleep 0.1 +} + +init() { +    # setup GPIOs +    echo "$SX1302_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO +    echo "$SX1261_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO +    echo "$AP2_NRESET_PIN" > /sys/class/gpio/export; WAIT_GPIO + +    # set GPIOs as output +    echo "out" > /sys/class/gpio/pio$SX1302_RESET_pio/direction; WAIT_GPIO +    echo "out" > /sys/class/gpio/pio$SX1261_NRESET_pio/direction; WAIT_GPIO +    echo "out" > /sys/class/gpio/pio$AP2_NRESET_pio/direction; WAIT_GPIO +} + +reset() { +    # write output for AP2_NRESET and SX1303 reset +    echo "1" > /sys/class/gpio/pio$AP2_NRESET_pio/value; WAIT_GPIO + +    echo "1" > /sys/class/gpio/pio$SX1302_RESET_pio/value; WAIT_GPIO +    echo "0" > /sys/class/gpio/pio$SX1302_RESET_pio/value; WAIT_GPIO + +    echo "0" > /sys/class/gpio/pio$SX1261_NRESET_pio/value; WAIT_GPIO +    echo "1" > /sys/class/gpio/pio$SX1261_NRESET_pio/value; WAIT_GPIO +} + +term() { +    # cleanup all GPIOs +    if [ -d /sys/class/gpio/pio$SX1302_RESET_pio ] +    then +        echo "$SX1302_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO +    fi +    if [ -d /sys/class/gpio/pio$SX1261_NRESET_pio ] +    then +        echo "$SX1261_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO +    fi +    if [ -d /sys/class/gpio/pio$AP2_NRESET_pio ] +    then +        echo "$AP2_NRESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO +    fi +} + +case "$1" in +    start) +    term # just in case +    init +    reset +    ;; +    stop) +    reset +    term +    ;; +    *) +    echo "Usage: $0 {start|stop}" +    exit 1 +    ;; +esac | 
