From aa29d434b31002c0946036a4f3de14a7de4cfb27 Mon Sep 17 00:00:00 2001 From: Harsh Sharma Date: Thu, 10 Jun 2021 15:04:44 -0500 Subject: Added mtac-003 reset scripts --- util/mtac_003_ap1_reset.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++ util/mtac_003_ap2_reset.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 158 insertions(+) create mode 100644 util/mtac_003_ap1_reset.sh create mode 100644 util/mtac_003_ap2_reset.sh 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 -- cgit v1.2.3