diff options
Diffstat (limited to 'libloragw/src/loragw_spi.ftdi.c')
-rw-r--r-- | libloragw/src/loragw_spi.ftdi.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libloragw/src/loragw_spi.ftdi.c b/libloragw/src/loragw_spi.ftdi.c index 35bc951..23b2a19 100644 --- a/libloragw/src/loragw_spi.ftdi.c +++ b/libloragw/src/loragw_spi.ftdi.c @@ -60,6 +60,7 @@ Maintainer: Sylvain Miermont /* SPI initialization and configuration */ int lgw_spi_open(void **spi_target_ptr) { struct mpsse_context *mpsse = NULL; + int a, b; /* check input variables */ CHECK_NULL(spi_target_ptr); /* cannot be null, must point on a void pointer (*spi_target_ptr can be null) */ @@ -75,6 +76,15 @@ int lgw_spi_open(void **spi_target_ptr) { return LGW_SPI_ERROR; } + /* toggle pin ADBUS5 of the FT2232H */ + /* On the Semtech reference board, it resets the SX1301 */ + a = PinHigh(mpsse, GPIOL1); + b = PinLow(mpsse, GPIOL1); + if ((a != MPSSE_OK) || (b != MPSSE_OK)) { + DEBUG_MSG("ERROR: IMPOSSIBLE TO TOGGLE GPIOL1/ADBUS5\n"); + return LGW_SPI_ERROR; + } + DEBUG_PRINTF("SPI port opened and configured ok\ndesc: %s\nPID: 0x%04X\nVID: 0x%04X\nclock: %d\nLibmpsse version: 0x%02X\n", GetDescription(mpsse), GetPid(mpsse), GetVid(mpsse), GetClock(mpsse), Version()); *spi_target_ptr = (void *)mpsse; return LGW_SPI_SUCCESS; |