From 0fce4fcc06a600aac6b0cb6fc1ef1ebb91bcdf27 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 8 Mar 2023 12:47:56 +1100 Subject: [PATCH] update to faceplate bodge --- src/drivers/display.cpp | 10 +++++++++- src/drivers/include/gpio_expander.hpp | 12 ++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/drivers/display.cpp b/src/drivers/display.cpp index 6ec82787..d3c2c923 100644 --- a/src/drivers/display.cpp +++ b/src/drivers/display.cpp @@ -60,7 +60,7 @@ auto Display::create(GpioExpander* expander, const displays::InitialisationData& init_data) -> std::unique_ptr { // First, turn on the LED backlight. - expander->set_pin(GpioExpander::DISPLAY_LED, 0); + expander->set_pin(GpioExpander::DISPLAY_LED, 1); expander->set_pin(GpioExpander::DISPLAY_POWER_ENABLE, 1); expander->Write(); @@ -118,6 +118,14 @@ Display::Display(GpioExpander* gpio, spi_device_handle_t handle) Display::~Display() {} void Display::SendInitialisationSequence(const uint8_t* data) { + // Reset the display manually to get it into a predictable state. + gpio_->set_pin(GpioExpander::DISPLAY_RESET, false); + gpio_->Write(); + vTaskDelay(pdMS_TO_TICKS(10)); + gpio_->set_pin(GpioExpander::DISPLAY_RESET, false); + gpio_->Write(); + vTaskDelay(pdMS_TO_TICKS(10)); + // Hold onto the bus for the entire sequence so that we're not interrupted // part way through. spi_device_acquire_bus(handle_, portMAX_DELAY); diff --git a/src/drivers/include/gpio_expander.hpp b/src/drivers/include/gpio_expander.hpp index a6e96d87..d03c26b0 100644 --- a/src/drivers/include/gpio_expander.hpp +++ b/src/drivers/include/gpio_expander.hpp @@ -49,8 +49,8 @@ class GpioExpander { // Port B: // 0 - 3.5mm jack detect (active low) // 1 - unused - // 2 - volume up - // 3 - volume down + // 2 - trackpad int + // 3 - display reset (active low) // 4 - lock switch // 5 - touchpad interupt // 6 - display DR @@ -111,10 +111,10 @@ class GpioExpander { // Port B PHONE_DETECT = 8, // Active-high input // UNUSED = 9, - VOL_UP = 10, - VOL_DOWN = 11, - LOCK = 12, - TOUCHPAD_INT = 13, + TOUCHPAD_INT = 10, + DISPLAY_RESET = 11, + // UNUSED = 12, + // UNUSED = 13, DISPLAY_DR = 14, DISPLAY_LED = 15, };