summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/display.cpp10
-rw-r--r--src/drivers/include/gpio_expander.hpp12
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<Display> {
// 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,
};