diff options
| author | Luke Hoersten <[email protected]> | 2026-06-14 16:36:46 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2026-06-14 16:36:46 -0500 |
| commit | 6c1a26bdae63d152caa45023e8255561a22fc0e2 (patch) | |
| tree | 00528dbe08c0dadf4c6f261e02365f932e8f69a0 /main/CMakeLists.txt | |
| parent | d5cdb6b4e4424d80ac9bfd8e12c129334c23d6f2 (diff) | |
M3: panel renders — TC358762 bridge init + non-burst DSI
The Hosyond 5" panel uses Pi 7" v1.1 architecture (ATTINY ID 0xC3 +
TC358762 DSI-to-DPI bridge). Getting it to paint needed three things
that ESP-IDF doesn't expose:
1. TC358762 bridge configuration — 16 register writes via DSI Generic
Long Write (DT=0x29) packets, transcribed from Linux's tc358762.c.
2. Non-burst video mode — IDF hardcodes BURST_WITH_SYNC_PULSES, but
TC358762 requires NON_BURST_WITH_SYNC_PULSES. Overridden via the
mipi_dsi_host_ll_* API after esp_lcd_new_panel_dpi() and before
panel_init().
3. ATTINY v1.1 power-on sequence + SPI-proxy bridge wake. The legacy
REG_POWERON(0x85) path doesn't apply to 0xC3 firmware; instead
write PORTC/PORTA/PORTB/PORTC in order, then later release bridge
reset and proxy-write TC358762 SYSPMCTRL=0 through the ATTINY's
ADDR_H/L + WR_DATA_H/L registers.
Reaching the LL/HAL APIs requires shadowing esp_lcd_dsi_bus_t so we can
pick the mipi_dsi_hal_context_t out of the private struct. Documented
the layout dependency at the shadow definition.
Tuned config (observed stable on ESP32-P4 per embenix's reference):
- 1 data lane @ 600 Mbps
- DPI 26 MHz (Linux modeline is 25.98)
- timings HSW=2 HBP=46 HFP=210 / VSW=20 VBP=4 VFP=22
- RGB888 end-to-end, R,G,B byte order (BGR was wrong)
- disable_lp=0 so LP windows are available for the bridge writes
Diffstat (limited to 'main/CMakeLists.txt')
| -rw-r--r-- | main/CMakeLists.txt | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index b9cb2a4..4cd3b9a 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -3,5 +3,5 @@ idf_component_register( INCLUDE_DIRS "." REQUIRES driver esp_driver_i2c esp_driver_jpeg esp_eth esp_event esp_http_client esp_http_server esp_hw_support esp_lcd - esp_netif esp_timer json mdns nvs_flash + esp_netif esp_pm esp_timer hal json mdns nvs_flash ) |
