blob: fa5e68c55830ab23bfb97fde227dcab3c0e5299b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
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..3472133 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;
|