From 3e632a44450c72afaac5041266c8016802628375 Mon Sep 17 00:00:00 2001 From: ljahn Date: Wed, 21 Aug 2024 14:34:45 +0200 Subject: [PATCH] fixes for Always On Display and SPI flash ID --- main.cpp | 3 ++- sim/components/brightness/BrightnessController.h | 2 +- sim/drivers/SpiNorFlash.cpp | 8 ++++++-- sim/drivers/SpiNorFlash.h | 5 ++++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/main.cpp b/main.cpp index 3e57a1b..1f22066 100644 --- a/main.cpp +++ b/main.cpp @@ -376,7 +376,8 @@ Pinetime::Applications::DisplayApp displayApp(lcd, alarmController, brightnessController, touchHandler, - fs); + fs, + spiNorFlash); Pinetime::System::SystemTask systemTask(spi, spiNorFlash, diff --git a/sim/components/brightness/BrightnessController.h b/sim/components/brightness/BrightnessController.h index 0d7ac2f..4ee4921 100644 --- a/sim/components/brightness/BrightnessController.h +++ b/sim/components/brightness/BrightnessController.h @@ -6,7 +6,7 @@ namespace Pinetime { namespace Controllers { class BrightnessController { public: - enum class Levels { Off, Low, Medium, High }; + enum class Levels { Off, AlwaysOn, Low, Medium, High }; void Init(); void Set(Levels level); diff --git a/sim/drivers/SpiNorFlash.cpp b/sim/drivers/SpiNorFlash.cpp index 4569355..ad4830b 100644 --- a/sim/drivers/SpiNorFlash.cpp +++ b/sim/drivers/SpiNorFlash.cpp @@ -26,7 +26,7 @@ SpiNorFlash::~SpiNorFlash() { } void SpiNorFlash::Init() { - device_id = ReadIdentificaion(); + device_id = ReadIdentification(); NRF_LOG_INFO( "[SpiNorFlash] Manufacturer : %d, Memory type : %d, memory density : %d", device_id.manufacturer, device_id.type, device_id.density); } @@ -42,7 +42,7 @@ void SpiNorFlash::Wakeup() { NRF_LOG_INFO("[SpiNorFlash] Wakeup") } -SpiNorFlash::Identification SpiNorFlash::ReadIdentificaion() { +SpiNorFlash::Identification SpiNorFlash::ReadIdentification() { return {}; } @@ -91,6 +91,10 @@ bool SpiNorFlash::EraseFailed() { return false; } +SpiNorFlash::Identification SpiNorFlash::GetIdentification() const { + return device_id; +} + void SpiNorFlash::Write(uint32_t address, const uint8_t* buffer, size_t size) { if (address + size * sizeof(uint8_t) > memorySize) { throw std::runtime_error("SpiNorFlash::Write out of bounds"); diff --git a/sim/drivers/SpiNorFlash.h b/sim/drivers/SpiNorFlash.h index 83bdf7d..f5b8e77 100644 --- a/sim/drivers/SpiNorFlash.h +++ b/sim/drivers/SpiNorFlash.h @@ -21,7 +21,6 @@ namespace Pinetime { uint8_t density = 0; }; - Identification ReadIdentificaion(); uint8_t ReadStatusRegister(); bool WriteInProgress(); bool WriteEnabled(); @@ -34,6 +33,8 @@ namespace Pinetime { bool ProgramFailed(); bool EraseFailed(); + Identification GetIdentification() const; + void Init(); void Uninit(); @@ -41,6 +42,8 @@ namespace Pinetime { void Wakeup(); private: + Identification ReadIdentification(); + enum class Commands : uint8_t { PageProgram = 0x02, Read = 0x03,