summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarsh Sharma <92harshsharma@gmail.com>2018-06-13 13:38:58 -0500
committerHarsh Sharma <92harshsharma@gmail.com>2018-06-13 13:38:58 -0500
commitc3dc80e46b2f8a3c811321b2b3f8fb1b023c9b04 (patch)
tree636563c46cdcaa4ff66cd68bf30fa249e3671565
parent3273fcf3a2588ec97e27341acd31a9f1c249b017 (diff)
downloadlora_gateway_mtac_full-c3dc80e46b2f8a3c811321b2b3f8fb1b023c9b04.tar.gz
lora_gateway_mtac_full-c3dc80e46b2f8a3c811321b2b3f8fb1b023c9b04.tar.bz2
lora_gateway_mtac_full-c3dc80e46b2f8a3c811321b2b3f8fb1b023c9b04.zip
Applied patch: lora-gateway-add-spi-path-function
-rw-r--r--libloragw/inc/loragw_spi.h8
-rw-r--r--libloragw/src/loragw_spi.native.c16
2 files changed, 23 insertions, 1 deletions
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;