summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/SpiMaster.cpp17
-rw-r--r--src/drivers/SpiMaster.h8
2 files changed, 14 insertions, 11 deletions
diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp
index 5e49f2a7..42d3d77b 100644
--- a/src/drivers/SpiMaster.cpp
+++ b/src/drivers/SpiMaster.cpp
@@ -3,10 +3,11 @@
using namespace Pinetime::Drivers;
-bool SpiMaster::Init(const SpiMaster::SpiModule spi, const SpiMaster::Parameters &params) {
- configSpiModule = spi;
- configParams = params;
+SpiMaster::SpiMaster(const SpiMaster::SpiModule spi, const SpiMaster::Parameters &params) :
+ spi{spi}, params{params} {
+}
+bool SpiMaster::Init() {
/* Configure GPIO pins used for pselsck, pselmosi, pselmiso and pselss for SPI0 */
nrf_gpio_cfg_output(params.pinSCK);
nrf_gpio_cfg_output(params.pinMOSI);
@@ -94,12 +95,12 @@ void SpiMaster::Sleep() {
while(NRF_SPI0->ENABLE != 0) {
NRF_SPI0->ENABLE = (SPIM_ENABLE_ENABLE_Disabled << SPIM_ENABLE_ENABLE_Pos);
}
- nrf_gpio_cfg_default(configParams.pinSCK);
- nrf_gpio_cfg_default(configParams.pinMOSI);
- nrf_gpio_cfg_default(configParams.pinMISO);
- nrf_gpio_cfg_default(configParams.pinCSN);
+ nrf_gpio_cfg_default(params.pinSCK);
+ nrf_gpio_cfg_default(params.pinMOSI);
+ nrf_gpio_cfg_default(params.pinMISO);
+ nrf_gpio_cfg_default(params.pinCSN);
}
void SpiMaster::Wakeup() {
- Init(configSpiModule, configParams);
+ Init();
}
diff --git a/src/drivers/SpiMaster.h b/src/drivers/SpiMaster.h
index 4f39dc39..073501a8 100644
--- a/src/drivers/SpiMaster.h
+++ b/src/drivers/SpiMaster.h
@@ -20,7 +20,9 @@ namespace Pinetime {
uint8_t pinMISO;
uint8_t pinCSN;
};
- bool Init(const SpiModule spi, const Parameters& params);
+
+ SpiMaster(const SpiModule spi, const Parameters& params);
+ bool Init();
bool Write(const uint8_t* data, size_t size);
void Sleep();
@@ -30,8 +32,8 @@ namespace Pinetime {
NRF_SPI_Type * spiBaseAddress;
uint8_t pinCsn;
- SpiMaster::SpiModule configSpiModule;
- SpiMaster::Parameters configParams;
+ SpiMaster::SpiModule spi;
+ SpiMaster::Parameters params;
};
}
}