Skip to content

Clean-up S2LP driver configuration #12951

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 64 additions & 8 deletions components/802.15.4_RF/stm-s2lp-rf-driver/mbed_lib.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,73 @@
{
"name": "s2lp",
"config": {
"SPI_SDI": {
"help": "SPI_SDI pin for SPI connection. D11 assumed, needs to be set/overwritten otherwise",
"value": null
},
"SPI_SDO": {
"help": "SPI_SDO pin for SPI connection. D12 assumed, needs to be set/overwritten otherwise",
"value": null
},
"SPI_SCLK": {
"help": "SPI_SCLK pin for SPI connection, D13 assumed, needs to be set/overwritten otherwise",
"value": null
},
"SPI_CS": {
"help": "SPI_CS pin for SPI connection, A1 assumed, needs to be set/overwritten otherwise",
"value": null
},
"SPI_SDN": {
"help": "SPI_SDN pin for SPI connection, D7 assumed, needs to be set/overwritten otherwise",
"value": null
},
"TEST_PIN_TX": {
"help": "TEST_PIN_TX pin for serial connection, D6 assumed, needs to be set/overwritten otherwise",
"value": null
},
"TEST_PIN_RX": {
"help": "TEST_PIN_RX pin for serial connection, D5 assumed, needs to be set/overwritten otherwise",
"value": null
},
"TEST_PIN_CSMA": {
"help": "TEST_PIN_CSMA pin for CSMA, D4 assumed, needs to be set/overwritten otherwise",
"value": null
},
"TEST_PIN_SPARE_1": {
"help": "TEST_PIN_SPARE_1 pin for testing, D2 assumed, needs to be set/overwritten otherwise",
"value": null
},
"TEST_PIN_SPARE_2": {
"help": "TEST_PIN_SPARE_2 pin for testing, D8 assumed, needs to be set/overwritten otherwise",
"value": null
},
"SPI_GPIO0": {
"help": "SPI_GPIO0 pin for GPIO testing, A0 assumed, needs to be set/overwritten otherwise",
"value": null
},
"SPI_GPIO1": {
"help": "SPI_GPIO1 pin for GPIO testing, A2 assumed, needs to be set/overwritten otherwise",
"value": null
},
"SPI_GPIO2": {
"help": "SPI_GPIO2 pin for GPIO testing, A3 assumed, needs to be set/overwritten otherwise",
"value": null
},
"SPI_GPIO3": {
"help": "SPI_GPIO3 pin for GPIO testing, A5 assumed, needs to be set/overwritten otherwise",
"value": null
},
"I2C_SDA": {
"help": "I2C_SDA pin for I2C SDA, null assumed, needs to be set/overwritten otherwise",
"value": null
},
"I2C_SCL": {
"help": "I2C_SCL pin for I2C SCL, null assumed, needs to be set/overwritten otherwise",
"value": null
},
"provide-default": {
"help": "Provide default NanostackRfpy. [true/false]",
"value": false
},
"target_overrides": {
"MTB_STM_S2LP": {
"s2lp.provide-default": true
},
"MTB_STM_S2LP_CT": {
"s2lp.provide-default": true
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -1303,18 +1303,18 @@ void NanostackRfPhys2lp::rf_unregister()
}

NanostackRfPhys2lp::NanostackRfPhys2lp(PinName spi_sdi, PinName spi_sdo, PinName spi_sclk, PinName spi_cs, PinName spi_sdn
,PinName spi_gpio0, PinName spi_gpio1, PinName spi_gpio2, PinName spi_gpio3
, PinName spi_gpio0, PinName spi_gpio1, PinName spi_gpio2, PinName spi_gpio3
#ifdef AT24MAC
,PinName i2c_sda, PinName i2c_scl
, PinName i2c_sda, PinName i2c_scl
#endif //AT24MAC
)
)
:
#ifdef AT24MAC
_mac(i2c_sda, i2c_scl),
_mac(i2c_sda, i2c_scl),
#endif //AT24MAC
_mac_addr(), _rf(NULL), _mac_set(false),
_spi_sdi(spi_sdi), _spi_sdo(spi_sdo), _spi_sclk(spi_sclk), _spi_cs(spi_cs), _spi_sdn(spi_sdn),
_spi_gpio0(spi_gpio0), _spi_gpio1(spi_gpio1), _spi_gpio2(spi_gpio2), _spi_gpio3(spi_gpio3)
_mac_addr(), _rf(NULL), _mac_set(false),
_spi_sdi(spi_sdi), _spi_sdo(spi_sdo), _spi_sclk(spi_sclk), _spi_cs(spi_cs), _spi_sdn(spi_sdn),
_spi_gpio0(spi_gpio0), _spi_gpio1(spi_gpio1), _spi_gpio2(spi_gpio2), _spi_gpio3(spi_gpio3)
{
_rf = new RFPins(_spi_sdi, _spi_sdo, _spi_sclk, _spi_cs, _spi_sdn, _spi_gpio0, _spi_gpio1, _spi_gpio2, _spi_gpio3);
#ifdef TEST_GPIOS_ENABLED
Expand Down Expand Up @@ -1424,11 +1424,11 @@ static bool rf_rx_filter(uint8_t *mac_header, uint8_t *mac_64bit_addr, uint8_t *
NanostackRfPhy &NanostackRfPhy::get_default_instance()
{
static NanostackRfPhys2lp rf_phy(S2LP_SPI_SDI, S2LP_SPI_SDO, S2LP_SPI_SCLK, S2LP_SPI_CS, S2LP_SPI_SDN
,S2LP_SPI_GPIO0, S2LP_SPI_GPIO1, S2LP_SPI_GPIO2, S2LP_SPI_GPIO3
, S2LP_SPI_GPIO0, S2LP_SPI_GPIO1, S2LP_SPI_GPIO2, S2LP_SPI_GPIO3
#ifdef AT24MAC
,S2LP_I2C_SDA, S2LP_I2C_SCL
, S2LP_I2C_SDA, S2LP_I2C_SCL
#endif //AT24MAC
);
);
return rf_phy;
}
#endif // MBED_CONF_S2LP_PROVIDE_DEFAULT
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,87 +25,100 @@
#include "InterruptIn.h"
#include "SPI.h"

// Uncomment to use testing gpios attached to TX/RX processes
// #define TEST_GPIOS_ENABLED

#if defined(TARGET_MTB_STM_S2LP) || defined(TARGET_MTB_STM_S2LP_CT)
#if !defined(S2LP_SPI_SDI)
#define S2LP_SPI_SDI PA_7
#endif
#if !defined(S2LP_SPI_SDO)
#define S2LP_SPI_SDO PA_6
#endif
#if !defined(S2LP_SPI_SCLK)
#define S2LP_SPI_SCLK PA_5
#endif
#if !defined(S2LP_SPI_CS)
#define S2LP_SPI_CS PC_0
#endif
#if !defined(S2LP_SPI_SDN)
#define S2LP_SPI_SDN PF_13
#endif
#if !defined(S2LP_SPI_GPIO0)
#define S2LP_SPI_GPIO0 PA_3
#endif
#if !defined(S2LP_SPI_GPIO1)
#define S2LP_SPI_GPIO1 PC_3
#endif
#if !defined(S2LP_SPI_GPIO2)
#define S2LP_SPI_GPIO2 PF_3
#endif
#if !defined(S2LP_SPI_GPIO3)
#define S2LP_SPI_GPIO3 PF_10
#endif
#if !defined(S2LP_I2C_SDA)
#define S2LP_I2C_SDA PB_7
#endif
#if !defined(S2LP_I2C_SCL)
#define S2LP_I2C_SCL PB_6
#if defined(MBED_CONF_S2LP_SPI_SDI)
#define S2LP_SPI_SDI MBED_CONF_S2LP_SPI_SDI
#else
#define S2LP_SPI_SDI D11
#endif
#define AT24MAC

#if defined(MBED_CONF_S2LP_SPI_SDO)
#define S2LP_SPI_SDO MBED_CONF_S2LP_SPI_SDO
#else
#if !defined(S2LP_SPI_SDI)
#define S2LP_SPI_SDI D11
#define S2LP_SPI_SDO D12
#endif
#if !defined(S2LP_SPI_SDO)
#define S2LP_SPI_SDO D12

#if defined(MBED_CONF_S2LP_SPI_SCLK)
#define S2LP_SPI_SCLK MBED_CONF_S2LP_SPI_SCLK
#else
#define S2LP_SPI_SCLK D13
#endif
#if !defined(S2LP_SPI_SCLK)
#define S2LP_SPI_SCLK D13

#if defined(MBED_CONF_S2LP_SPI_CS)
#define S2LP_SPI_CS MBED_CONF_S2LP_SPI_CS
#else
#define S2LP_SPI_CS A1
#endif
#if !defined(S2LP_SPI_CS)
#define S2LP_SPI_CS A1

#if defined(MBED_CONF_S2LP_SPI_SDN)
#define S2LP_SPI_SDN MBED_CONF_S2LP_SPI_SDN
#else
#define S2LP_SPI_SDN D7
#endif
#if !defined(S2LP_SPI_SDN)
#define S2LP_SPI_SDN D7

#if defined(MBED_CONF_S2LP_TEST_PIN_TX)
#define S2LP_TEST_PIN_TX MBED_CONF_S2LP_TEST_PIN_TX
#else
#define S2LP_TEST_PIN_TX D6
#endif
#if !defined(TEST_PIN_TX)
#define TEST_PIN_TX D6

#if defined(MBED_CONF_S2LP_TEST_PIN_RX)
#define S2LP_TEST_PIN_RX MBED_CONF_S2LP_TEST_PIN_RX
#else
#define S2LP_TEST_PIN_RX D5
#endif
#if !defined(TEST_PIN_RX)
#define TEST_PIN_RX D5

#if defined(TMBED_CONF_S2LP_TEST_PIN_CSMA)
#define S2LP_TEST_PIN_CSMA TMBED_CONF_S2LP_TEST_PIN_CSMA
#else
#define S2LP_TEST_PIN_CSMA D4
#endif
#if !defined(TEST_PIN_CSMA)
#define TEST_PIN_CSMA D4

#if defined(MBED_CONF_S2LP_TEST_PIN_SPARE_1)
#define S2LP_TEST_PIN_SPARE_1 MBED_CONF_S2LP_TEST_PIN_SPARE_1
#else
#define S2LP_TEST_PIN_SPARE_1 D2
#endif
#if !defined(TEST_PIN_SPARE_1)
#define TEST_PIN_SPARE_1 D2

#if defined(MBED_CONF_S2LP_TEST_PIN_SPARE_2)
#define S2LP_TEST_PIN_SPARE_2 DMBED_CONF_S2LP_TEST_PIN_SPARE_2
#else
#define S2LP_TEST_PIN_SPARE_2 D8
#endif
#if !defined(TEST_PIN_SPARE_2)
#define TEST_PIN_SPARE_2 D8

#if defined(MBED_CONF_S2LP_SPI_GPIO0)
#define S2LP_SPI_GPIO0 MBED_CONF_S2LP_SPI_GPIO0
#else
#define S2LP_SPI_GPIO0 A0
#endif
#if !defined(S2LP_SPI_GPIO0)
#define S2LP_SPI_GPIO0 A0

#if defined(MBED_CONF_S2LP_SPI_GPIO1)
#define S2LP_SPI_GPIO1 MBED_CONF_S2LP_SPI_GPIO1
#else
#define S2LP_SPI_GPIO1 A2
#endif
#if !defined(S2LP_SPI_GPIO1)
#define S2LP_SPI_GPIO1 A2

#if defined(MBED_CONF_S2LP_SPI_GPIO2)
#define S2LP_SPI_GPIO2 MBED_CONF_S2LP_SPI_GPIO2
#else
#define S2LP_SPI_GPIO2 A3
#endif
#if !defined(S2LP_SPI_GPIO2)
#define S2LP_SPI_GPIO2 A3

#if defined(MBED_CONF_S2LP_SPI_GPIO3)
#define S2LP_SPI_GPIO3 MBED_CONF_S2LP_SPI_GPIO3
#else
#define S2LP_SPI_GPIO3 A5
#endif
#if !defined(S2LP_SPI_GPIO3)
#define S2LP_SPI_GPIO3 A5

#if defined(MBED_CONF_S2LP_I2C_SDA)
#define S2LP_I2C_SDA MBED_CONF_S2LP_I2C_SDA
#else
#define S2LP_I2C_SDA null
#endif

#if defined(MBED_CONF_S2LP_I2C_SCL)
#define S2LP_I2C_SCL MBED_CONF_S2LP_I2C_SCL
#else
#define S2LP_I2C_SCL null
#endif

#include "at24mac_s2lp.h"
Expand Down

This file was deleted.

Loading