|
|
@@ -119,11 +119,18 @@ inline const EpdPanelDescriptor PANEL_579C_GDEY0579F51 = {
|
|
|
// the engine hard-aborts
|
|
|
.init_sequence = PANEL_579C_GDEY0579F51_INIT,
|
|
|
.init_sequence_len = sizeof(PANEL_579C_GDEY0579F51_INIT) / sizeof(PANEL_579C_GDEY0579F51_INIT[0]),
|
|
|
- .window_sequence = {PANEL_579C_GDEY0579F51_WINDOW_MASTER, PANEL_579C_GDEY0579F51_WINDOW_SLAVE},
|
|
|
- .window_sequence_len = {sizeof(PANEL_579C_GDEY0579F51_WINDOW_MASTER) / sizeof(PANEL_579C_GDEY0579F51_WINDOW_MASTER[0]),
|
|
|
- sizeof(PANEL_579C_GDEY0579F51_WINDOW_SLAVE) / sizeof(PANEL_579C_GDEY0579F51_WINDOW_SLAVE[0])},
|
|
|
+ // plane 0 is the LEFT half of the canvas (draw_packed_ splits at
|
|
|
+ // plane_width), plane 1 the RIGHT half. With the swapped PSR scan
|
|
|
+ // direction, chip 0x02 (slave) drives the left of the glass and chip
|
|
|
+ // 0x01 (master) the right, so route plane 0 -> slave-select window and
|
|
|
+ // plane 1 -> master-select. Sending them in physical-chip order instead
|
|
|
+ // put the left half on the right of the panel and vice versa
|
|
|
+ // (bench-observed 2026-10-18).
|
|
|
+ .window_sequence = {PANEL_579C_GDEY0579F51_WINDOW_SLAVE, PANEL_579C_GDEY0579F51_WINDOW_MASTER},
|
|
|
+ .window_sequence_len = {sizeof(PANEL_579C_GDEY0579F51_WINDOW_SLAVE) / sizeof(PANEL_579C_GDEY0579F51_WINDOW_SLAVE[0]),
|
|
|
+ sizeof(PANEL_579C_GDEY0579F51_WINDOW_MASTER) / sizeof(PANEL_579C_GDEY0579F51_WINDOW_MASTER[0])},
|
|
|
.window_per_plane = true,
|
|
|
- .plane_count = 2, // "plane" 0 = master region, "plane" 1 = slave region
|
|
|
+ .plane_count = 2, // plane 0 = left half -> chip 0x02; plane 1 = right half -> chip 0x01
|
|
|
.plane_write_cmd = {0x10, 0x10},
|
|
|
.plane_invert = {false, false},
|
|
|
.plane_width = 396, // each region's own local width
|