summaryrefslogtreecommitdiff
path: root/src/SystemTask
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-08-22 17:59:59 +0200
committerJF <jf@codingfield.com>2020-08-22 17:59:59 +0200
commitf7e40b1b5879242b4ce59854dbbadb44fe5f75e4 (patch)
treec90d927a985d1b13f48af1d6e9aeb6d4c0e7cc0f /src/SystemTask
parentecbbeb6283178696ae36891225e086d3154e8a8a (diff)
Re-implement sleep/wakeup for touch panel, display, NOR Flash, SPI and TWI.
Diffstat (limited to 'src/SystemTask')
-rw-r--r--src/SystemTask/SystemTask.cpp15
-rw-r--r--src/SystemTask/SystemTask.h2
2 files changed, 16 insertions, 1 deletions
diff --git a/src/SystemTask/SystemTask.cpp b/src/SystemTask/SystemTask.cpp
index 1ee8e918..b515d1ab 100644
--- a/src/SystemTask/SystemTask.cpp
+++ b/src/SystemTask/SystemTask.cpp
@@ -145,6 +145,14 @@ void SystemTask::Work() {
case Messages::OnButtonEvent:
ReloadIdleTimer();
break;
+ case Messages::OnDisplayTaskSleeping:
+ spiNorFlash.Sleep();
+ lcd.Sleep();
+ touchPanel.Sleep();
+
+ spi.Sleep();
+ twiMaster.Sleep();
+ break;
default: break;
}
}
@@ -185,6 +193,13 @@ void SystemTask::OnButtonPushed() {
void SystemTask::GoToRunning() {
PushMessage(Messages::GoToRunning);
+ spi.Wakeup();
+ twiMaster.Wakeup();
+
+ spiNorFlash.Wakeup();
+ lcd.Wakeup();
+ touchPanel.Wakeup();
+
displayApp->PushMessage(Applications::DisplayApp::Messages::GoToRunning);
displayApp->PushMessage(Applications::DisplayApp::Messages::UpdateBatteryLevel);
}
diff --git a/src/SystemTask/SystemTask.h b/src/SystemTask/SystemTask.h
index 3e53baed..3812ea91 100644
--- a/src/SystemTask/SystemTask.h
+++ b/src/SystemTask/SystemTask.h
@@ -18,7 +18,7 @@ namespace Pinetime {
class SystemTask {
public:
enum class Messages {GoToSleep, GoToRunning, OnNewTime, OnNewNotification, BleConnected,
- BleFirmwareUpdateStarted, BleFirmwareUpdateFinished, OnTouchEvent, OnButtonEvent
+ BleFirmwareUpdateStarted, BleFirmwareUpdateFinished, OnTouchEvent, OnButtonEvent, OnDisplayTaskSleeping
};
SystemTask(Drivers::SpiMaster &spi, Drivers::St7789 &lcd,