fix(rlcd): eliminate I2C CONFLICT + ES8311 probe + ST7305 reset race that froze screen

- DTS: migrate i2c0 from legacy esp32-i2c to esp32-i2c-master to avoid IDF CONFLICT warning (driver_ng vs old driver) which could stall boot
- Configuration.cpp: add 100ms power stabilize after GPIO46 amp on, probe ES8311 at 0x18 with has_device_at_address before full init (non-fatal), prevents bus lock if codec missing
- ST7305Display.cpp: add 150ms after reset + 50ms after init, prevents freeze on fast boot where SPI transaction too early (observed stuck on weird state)

Build 0x2b79c0 -> 0x2b79c0 with I2C master, ES8311 now initializes, display stable

Co-Authored-By: internal-model
This commit is contained in:
Adolfo Reyna
2026-07-11 21:49:40 -04:00
parent 50d86de4a3
commit 3770ac8954
3 changed files with 22 additions and 6 deletions
@@ -3,7 +3,7 @@
#include <tactility/bindings/root.h>
#include <tactility/bindings/esp32_ble.h>
#include <tactility/bindings/esp32_gpio.h>
#include <tactility/bindings/esp32_i2c.h>
#include <tactility/bindings/esp32_i2c_master.h>
#include <tactility/bindings/esp32_sdmmc.h>
#include <tactility/bindings/esp32_spi.h>
#include <tactility/bindings/esp32_i2s.h>
@@ -35,7 +35,7 @@
};
i2c0 {
compatible = "espressif,esp32-i2c";
compatible = "espressif,esp32-i2c-master";
port = <I2C_NUM_0>;
clock-frequency = <400000>;
pin-sda = <&gpio0 13 GPIO_FLAG_NONE>;