diff options
Diffstat (limited to 'src/drivers/SpiMaster.cpp')
-rw-r--r-- | src/drivers/SpiMaster.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp index 076c764d..5e49f2a7 100644 --- a/src/drivers/SpiMaster.cpp +++ b/src/drivers/SpiMaster.cpp @@ -4,6 +4,9 @@ using namespace Pinetime::Drivers; bool SpiMaster::Init(const SpiMaster::SpiModule spi, const SpiMaster::Parameters ¶ms) { + configSpiModule = spi; + configParams = params; + /* Configure GPIO pins used for pselsck, pselmosi, pselmiso and pselss for SPI0 */ nrf_gpio_cfg_output(params.pinSCK); nrf_gpio_cfg_output(params.pinMOSI); @@ -86,3 +89,17 @@ bool SpiMaster::Write(const uint8_t *data, size_t size) { return true; } + +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); +} + +void SpiMaster::Wakeup() { + Init(configSpiModule, configParams); +} |