From c3dc80e46b2f8a3c811321b2b3f8fb1b023c9b04 Mon Sep 17 00:00:00 2001 From: Harsh Sharma <92harshsharma@gmail.com> Date: Wed, 13 Jun 2018 13:38:58 -0500 Subject: Applied patch: lora-gateway-add-spi-path-function --- libloragw/inc/loragw_spi.h | 8 ++++++++ libloragw/src/loragw_spi.native.c | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'libloragw') diff --git a/libloragw/inc/loragw_spi.h b/libloragw/inc/loragw_spi.h index fef1f48..74ef251 100644 --- a/libloragw/inc/loragw_spi.h +++ b/libloragw/inc/loragw_spi.h @@ -46,6 +46,14 @@ Maintainer: Sylvain Miermont /* -------------------------------------------------------------------------- */ /* --- PUBLIC FUNCTIONS PROTOTYPES ------------------------------------------ */ +/* set SPI device */ +/** +@brief LoRa concentrator SPI path configuration for spidev +@param path pointer to spidev device +@return LGW_SPI_SUCCESS if path is valid, LGW_SPI_ERROR if not +*/ +int lgw_spi_set_path(const char *path); + /** @brief LoRa concentrator SPI setup (configure I/O and peripherals) @param spi_target_ptr pointer on a generic pointer to SPI target (implementation dependant) diff --git a/libloragw/src/loragw_spi.native.c b/libloragw/src/loragw_spi.native.c index c01ed1c..a146e8b 100644 --- a/libloragw/src/loragw_spi.native.c +++ b/libloragw/src/loragw_spi.native.c @@ -56,10 +56,24 @@ Maintainer: Sylvain Miermont #define SPI_SPEED 8000000 #define SPI_DEV_PATH "/dev/spidev0.0" //#define SPI_DEV_PATH "/dev/spidev32766.0" +char* spi_dev_path = SPI_DEV_PATH; /* -------------------------------------------------------------------------- */ /* --- PUBLIC FUNCTIONS DEFINITION ------------------------------------------ */ +/* set SPI device */ +int lgw_spi_set_path(const char *path) { + if (path) { + spi_dev_path = path; + return LGW_SPI_SUCCESS; + } + else { + return LGW_SPI_ERROR; + } +} + + + /* SPI initialization and configuration */ int lgw_spi_open(void **spi_target_ptr) { int *spi_device = NULL; @@ -78,7 +92,7 @@ int lgw_spi_open(void **spi_target_ptr) { } /* open SPI device */ - dev = open(SPI_DEV_PATH, O_RDWR); + dev = open(spi_dev_path, O_RDWR); if (dev < 0) { DEBUG_PRINTF("ERROR: failed to open SPI device %s\n", SPI_DEV_PATH); return LGW_SPI_ERROR; -- cgit v1.2.3