Skip to content

Commit 9bd90c9

Browse files
committed
Power optimization - Improve SPI sleep mode
ST7789 driver : replace the constant '26' with a named constant to specify the pin number of the reset pin of the LCD controller.
1 parent 62848b3 commit 9bd90c9

File tree

4 files changed

+10
-8
lines changed

4 files changed

+10
-8
lines changed

src/drivers/PinMap.h

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ namespace Pinetime {
3434
static constexpr uint8_t SpiFlashCsn = 5;
3535
static constexpr uint8_t SpiLcdCsn = 25;
3636
static constexpr uint8_t LcdDataCommand = 18;
37+
static constexpr uint8_t LcdReset = 26;
3738

3839
static constexpr uint8_t TwiScl = 7;
3940
static constexpr uint8_t TwiSda = 6;

src/drivers/St7789.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66

77
using namespace Pinetime::Drivers;
88

9-
St7789::St7789(Spi& spi, uint8_t pinDataCommand) : spi {spi}, pinDataCommand {pinDataCommand} {
9+
St7789::St7789(Spi& spi, uint8_t pinDataCommand, uint8_t pinReset) : spi {spi}, pinDataCommand {pinDataCommand}, pinReset{pinReset} {
1010
}
1111

1212
void St7789::Init() {
1313
nrf_gpio_cfg_output(pinDataCommand);
14-
nrf_gpio_cfg_output(26);
15-
nrf_gpio_pin_set(26);
14+
nrf_gpio_cfg_output(pinReset);
15+
nrf_gpio_pin_set(pinReset);
1616
HardwareReset();
1717
SoftwareReset();
1818
SleepOut();
@@ -178,15 +178,15 @@ void St7789::DrawBuffer(uint16_t x, uint16_t y, uint16_t width, uint16_t height,
178178
}
179179

180180
void St7789::HardwareReset() {
181-
nrf_gpio_pin_clear(26);
181+
nrf_gpio_pin_clear(pinReset);
182182
nrf_delay_ms(10);
183-
nrf_gpio_pin_set(26);
183+
nrf_gpio_pin_set(pinReset);
184184
}
185185

186186
void St7789::Sleep() {
187187
SleepIn();
188188
nrf_gpio_cfg_default(pinDataCommand);
189-
nrf_gpio_cfg_default(26);
189+
nrf_gpio_cfg_default(pinReset);
190190
NRF_LOG_INFO("[LCD] Sleep");
191191
}
192192

src/drivers/St7789.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace Pinetime {
88

99
class St7789 {
1010
public:
11-
explicit St7789(Spi& spi, uint8_t pinDataCommand);
11+
explicit St7789(Spi& spi, uint8_t pinDataCommand, uint8_t pinReset);
1212
St7789(const St7789&) = delete;
1313
St7789& operator=(const St7789&) = delete;
1414
St7789(St7789&&) = delete;
@@ -29,6 +29,7 @@ namespace Pinetime {
2929
private:
3030
Spi& spi;
3131
uint8_t pinDataCommand;
32+
uint8_t pinReset;
3233
uint8_t verticalScrollingStartAddress = 0;
3334

3435
void HardwareReset();

src/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Pinetime::Drivers::SpiMaster spi {Pinetime::Drivers::SpiMaster::SpiModule::SPI0,
6868
Pinetime::PinMap::SpiMiso}};
6969

7070
Pinetime::Drivers::Spi lcdSpi {spi, Pinetime::PinMap::SpiLcdCsn};
71-
Pinetime::Drivers::St7789 lcd {lcdSpi, Pinetime::PinMap::LcdDataCommand};
71+
Pinetime::Drivers::St7789 lcd {lcdSpi, Pinetime::PinMap::LcdDataCommand, Pinetime::PinMap::LcdReset};
7272

7373
Pinetime::Drivers::Spi flashSpi {spi, Pinetime::PinMap::SpiFlashCsn};
7474
Pinetime::Drivers::SpiNorFlash spiNorFlash {flashSpi};

0 commit comments

Comments
 (0)