* [PATCH 0/2] drm/panel: st7703: add AYANEO Pocket DS lower panel
@ 2026-07-23 11:26 Alexandre Hamamdjian via B4 Relay
2026-07-23 11:26 ` [PATCH 1/2] dt-bindings: display: Add " Alexandre Hamamdjian via B4 Relay
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Alexandre Hamamdjian via B4 Relay @ 2026-07-23 11:26 UTC (permalink / raw)
To: Guido Günther, Purism Kernel Team, Ondrej Jirman,
Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: dri-devel, devicetree, linux-kernel, Alexandre Hamamdjian
The AYANEO Pocket DS is a dual-screen Qualcomm QCS8550 handheld. Its
lower (secondary) 5.0" 1024x768 4:3 IPS panel is driven by a Sitronix
ST7703 DDIC: every opcode in the vendor init sequence maps 1:1 to the
ST7703_CMD_* command set (SETEXTC 0xB9 with the canonical F1 12 key,
and SETMIPI/SETRGBIF/SETPOWER/SETGIP payloads near-identical to the
already-supported Powkiddy RGB10MAX3), so add it to the existing
sitronix-st7703 driver and its binding rather than a standalone driver.
Tested on a Pocket DS: the panel initialises at 768x1024@60 and both
screens are active.
Signed-off-by: Alexandre Hamamdjian <azkali.limited@gmail.com>
---
Alexandre Hamamdjian (2):
dt-bindings: display: Add AYANEO Pocket DS lower panel
drm/panel: st7703: Add AYANEO Pocket DS Lower Panel Support
.../display/panel/rocktech,jh057n00900.yaml | 2 +
drivers/gpu/drm/panel/panel-sitronix-st7703.c | 96 ++++++++++++++++++++++
2 files changed, 98 insertions(+)
---
base-commit: e98d21c170b01ddef366f023bbfcf6b31509fa83
change-id: 20260723-b4-st7703-pocketds-lower-2db4e7549cb9
Best regards,
--
Alexandre Hamamdjian <azkali.limited@gmail.com>
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 1/2] dt-bindings: display: Add AYANEO Pocket DS lower panel 2026-07-23 11:26 [PATCH 0/2] drm/panel: st7703: add AYANEO Pocket DS lower panel Alexandre Hamamdjian via B4 Relay @ 2026-07-23 11:26 ` Alexandre Hamamdjian via B4 Relay 2026-07-24 9:53 ` Krzysztof Kozlowski 2026-07-23 11:26 ` [PATCH 2/2] drm/panel: st7703: Add AYANEO Pocket DS Lower Panel Support Alexandre Hamamdjian via B4 Relay 2026-07-27 8:07 ` [PATCH 0/2] drm/panel: st7703: add AYANEO Pocket DS lower panel Neil Armstrong 2 siblings, 1 reply; 6+ messages in thread From: Alexandre Hamamdjian via B4 Relay @ 2026-07-23 11:26 UTC (permalink / raw) To: Guido Günther, Purism Kernel Team, Ondrej Jirman, Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: dri-devel, devicetree, linux-kernel, Alexandre Hamamdjian From: Alexandre Hamamdjian <azkali.limited@gmail.com> The lower (secondary) 5.0" 1024x768 IPS LCD panel of the AYANEO Pocket DS dual-screen handheld is driven by a Sitronix ST7703 DDIC, as identified by its ST7703 manufacturer command set (SETEXTC 0xB9, SETMIPI 0xBA, SETGIP1/2 0xE9/0xEA). Document its compatible alongside the other ST7703 panels. Signed-off-by: Alexandre Hamamdjian <azkali.limited@gmail.com> --- .../devicetree/bindings/display/panel/rocktech,jh057n00900.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml index ebfc825b8346..91e06d6a6819 100644 --- a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml +++ b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml @@ -22,6 +22,8 @@ properties: enum: # Anberic RG353V-V2 5.0" 640x480 TFT LCD panel - anbernic,rg353v-panel-v2 + # AYANEO Pocket DS lower 5.0" 1024x768 IPS LCD panel + - ayaneo,pocket-ds-lower-panel # GameForce Chi 3.5" 640x480 TFT LCD panel - gameforce,chi-panel # Powkiddy RGB10MAX3 5.0" 720x1280 TFT LCD panel -- 2.55.0 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: Add AYANEO Pocket DS lower panel 2026-07-23 11:26 ` [PATCH 1/2] dt-bindings: display: Add " Alexandre Hamamdjian via B4 Relay @ 2026-07-24 9:53 ` Krzysztof Kozlowski 0 siblings, 0 replies; 6+ messages in thread From: Krzysztof Kozlowski @ 2026-07-24 9:53 UTC (permalink / raw) To: Alexandre Hamamdjian Cc: Guido Günther, Purism Kernel Team, Ondrej Jirman, Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel On Thu, Jul 23, 2026 at 06:26:28PM +0700, Alexandre Hamamdjian wrote: > The lower (secondary) 5.0" 1024x768 IPS LCD panel of the AYANEO Pocket DS > dual-screen handheld is driven by a Sitronix ST7703 DDIC, as identified > by its ST7703 manufacturer command set (SETEXTC 0xB9, SETMIPI 0xBA, > SETGIP1/2 0xE9/0xEA). Document its compatible alongside the other ST7703 > panels. > > Signed-off-by: Alexandre Hamamdjian <azkali.limited@gmail.com> > --- > .../devicetree/bindings/display/panel/rocktech,jh057n00900.yaml | 2 ++ > 1 file changed, 2 insertions(+) Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] drm/panel: st7703: Add AYANEO Pocket DS Lower Panel Support 2026-07-23 11:26 [PATCH 0/2] drm/panel: st7703: add AYANEO Pocket DS lower panel Alexandre Hamamdjian via B4 Relay 2026-07-23 11:26 ` [PATCH 1/2] dt-bindings: display: Add " Alexandre Hamamdjian via B4 Relay @ 2026-07-23 11:26 ` Alexandre Hamamdjian via B4 Relay 2026-07-27 8:04 ` Neil Armstrong 2026-07-27 8:07 ` [PATCH 0/2] drm/panel: st7703: add AYANEO Pocket DS lower panel Neil Armstrong 2 siblings, 1 reply; 6+ messages in thread From: Alexandre Hamamdjian via B4 Relay @ 2026-07-23 11:26 UTC (permalink / raw) To: Guido Günther, Purism Kernel Team, Ondrej Jirman, Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: dri-devel, devicetree, linux-kernel, Alexandre Hamamdjian From: Alexandre Hamamdjian <azkali.limited@gmail.com> Add support for the lower (secondary) panel of the AYANEO Pocket DS, a dual-screen QCS8550 (Snapdragon 8 Gen 2) handheld. It is a 5.0" 1024x768 4:3 IPS LCD driven by a Sitronix ST7703 DDIC: every command in the vendor init sequence maps to an ST7703 manufacturer command (SETEXTC, SETMIPI, SETRGBIF, SETSCR, SETPOWER, SETGAMMA, SETGIP1/2), and the SETMIPI and SETRGBIF payloads are near-identical to the already-supported Powkiddy RGB10MAX3. The panel is mounted in portrait (768x1024) and rotated 270 degrees in the device, expressed through the panel rotation property. The SETEXTC unlock password ends in 0x87 rather than the canonical 0x83; this is the value shipped by the vendor firmware and is kept verbatim. Init sequence extracted from the AYANEO Pocket DS BSP kernel, via the ROCKNIX SM8550 port. Signed-off-by: Alexandre Hamamdjian <azkali.limited@gmail.com> --- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 96 +++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c index 6c348fe28955..bfc03bdf3816 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c @@ -47,6 +47,7 @@ #define ST7703_CMD_SETCABC 0xC8 #define ST7703_CMD_SETPANEL 0xCC #define ST7703_CMD_SETGAMMA 0xE0 +#define ST7703_CMD_UNKNOWN_E1 0xE1 #define ST7703_CMD_SETEQ 0xE3 #define ST7703_CMD_SETGIP1 0xE9 #define ST7703_CMD_SETGIP2 0xEA @@ -673,6 +674,100 @@ static const struct st7703_panel_desc gameforcechi_desc = { .init_sequence = gameforcechi_init_sequence, }; +static void ayaneo_pocket_ds_lower_init_sequence(struct mipi_dsi_multi_context *dsi_ctx) +{ + /* Init sequence extracted from the AYANEO Pocket DS BSP kernel. */ + + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETEXTC, 0xf1, 0x12, + 0x87); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETDISP, 0x00, 0x01, + 0x78); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETRGBIF, 0x10, 0x10, + 0x28, 0x28, 0x03, 0xff, 0x00, 0x00, 0x00, + 0x00); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETCYC, 0x80); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETBGP, 0x0a, 0x0a); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETVCOM, 0x90, 0x90); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETPOWER_EXT, 0x76, + 0x22, 0xf0, 0x13); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETMIPI, 0x33, 0x81, + 0x05, 0xf9, 0x0e, 0x0e, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, + 0x00, 0x91, 0x0a, 0x00, 0x00, 0x01, 0x4f, + 0x01, 0x00, 0x00, 0x37); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETVDC, 0x47); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_UNKNOWN_BF, 0x02, 0x10, + 0x00, 0x80, 0x04); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETSCR, 0x73, 0x73, + 0x50, 0x50, 0x00, 0x00, 0x12, 0x73, 0x00); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETPOWER, 0x55, 0x00, + 0x32, 0x32, 0x77, 0xf1, 0xf7, 0xf7, 0xcc, + 0xcc, 0x7f, 0x7f, 0x11, 0x11, 0x00, 0x00, + 0x32); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETIO, 0xb8, 0x00, + 0x0a, 0x10, 0x01, 0x09, 0x00, 0x00, 0xed, + 0xc5, 0x00, 0xa5); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETCABC, 0x10, 0x40, + 0x1e, 0x03); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETPANEL, 0x0b); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETGAMMA, 0x00, 0x00, + 0x00, 0x25, 0x31, 0x3f, 0x26, 0x29, 0x04, + 0x08, 0x0d, 0x0e, 0x12, 0x0f, 0x11, 0x12, + 0x18, 0x00, 0x00, 0x00, 0x25, 0x31, 0x3f, + 0x26, 0x29, 0x04, 0x08, 0x0d, 0x0e, 0x12, + 0x0f, 0x11, 0x12, 0x18); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_UNKNOWN_E1, 0x11, 0x11, + 0x91, 0x00, 0x00, 0x00, 0x00); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETEQ, 0x07, 0x07, + 0x0b, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x84, 0xc0, 0x10); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETGIP1, 0xc8, 0x10, + 0x04, 0x04, 0x02, 0x80, 0x81, 0x12, 0x31, + 0x23, 0x2f, 0x80, 0x80, 0x81, 0x27, 0x20, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x44, 0x00, + 0x88, 0xff, 0x00, 0x22, 0x44, 0x66, 0x88, + 0x88, 0x88, 0x55, 0x11, 0x88, 0xff, 0x11, + 0x33, 0x55, 0x77, 0x88, 0x88, 0x88, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETGIP2, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x11, 0x55, 0xff, 0x88, + 0x77, 0x55, 0x33, 0x11, 0x88, 0x88, 0x88, + 0x00, 0x44, 0xff, 0x88, 0x66, 0x44, 0x22, + 0x00, 0x88, 0x88, 0x88, 0x23, 0x00, 0x00, + 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x80, 0x81, 0x00, + 0x00, 0x00, 0x00); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_UNKNOWN_EF, 0xff, 0xff, + 0x01); +} + +static const struct drm_display_mode ayaneo_pocket_ds_lower_mode = { + .hdisplay = 768, + .hsync_start = 768 + 110, + .hsync_end = 768 + 110 + 45, + .htotal = 768 + 110 + 45 + 110, + .vdisplay = 1024, + .vsync_start = 1024 + 18, + .vsync_end = 1024 + 18 + 6, + .vtotal = 1024 + 18 + 6 + 16, + .clock = 65946, + .width_mm = 76, + .height_mm = 102, +}; + +static const struct st7703_panel_desc ayaneo_pocket_ds_lower_desc = { + .mode = &ayaneo_pocket_ds_lower_mode, + .lanes = 4, + .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | + MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_LPM, + .format = MIPI_DSI_FMT_RGB888, + .init_sequence = ayaneo_pocket_ds_lower_init_sequence, +}; + static int st7703_enable(struct drm_panel *panel) { struct st7703 *ctx = panel_to_st7703(panel); @@ -916,6 +1011,7 @@ static void st7703_remove(struct mipi_dsi_device *dsi) static const struct of_device_id st7703_of_match[] = { { .compatible = "anbernic,rg353v-panel-v2", .data = &rg353v2_desc }, + { .compatible = "ayaneo,pocket-ds-lower-panel", .data = &ayaneo_pocket_ds_lower_desc }, { .compatible = "gameforce,chi-panel", .data = &gameforcechi_desc }, { .compatible = "powkiddy,rgb10max3-panel", .data = &rgb10max3_panel_desc }, { .compatible = "powkiddy,rgb30-panel", .data = &rgb30panel_desc }, -- 2.55.0 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] drm/panel: st7703: Add AYANEO Pocket DS Lower Panel Support 2026-07-23 11:26 ` [PATCH 2/2] drm/panel: st7703: Add AYANEO Pocket DS Lower Panel Support Alexandre Hamamdjian via B4 Relay @ 2026-07-27 8:04 ` Neil Armstrong 0 siblings, 0 replies; 6+ messages in thread From: Neil Armstrong @ 2026-07-27 8:04 UTC (permalink / raw) To: azkali.limited, Guido Günther, Purism Kernel Team, Ondrej Jirman, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: dri-devel, devicetree, linux-kernel On 7/23/26 13:26, Alexandre Hamamdjian via B4 Relay wrote: > From: Alexandre Hamamdjian <azkali.limited@gmail.com> > > Add support for the lower (secondary) panel of the AYANEO Pocket DS, a > dual-screen QCS8550 (Snapdragon 8 Gen 2) handheld. It is a 5.0" 1024x768 > 4:3 IPS LCD driven by a Sitronix ST7703 DDIC: every command in the vendor > init sequence maps to an ST7703 manufacturer command (SETEXTC, SETMIPI, > SETRGBIF, SETSCR, SETPOWER, SETGAMMA, SETGIP1/2), and the SETMIPI and > SETRGBIF payloads are near-identical to the already-supported Powkiddy > RGB10MAX3. > > The panel is mounted in portrait (768x1024) and rotated 270 degrees in > the device, expressed through the panel rotation property. The SETEXTC > unlock password ends in 0x87 rather than the canonical 0x83; this is the > value shipped by the vendor firmware and is kept verbatim. > > Init sequence extracted from the AYANEO Pocket DS BSP kernel, via the > ROCKNIX SM8550 port. > > Signed-off-by: Alexandre Hamamdjian <azkali.limited@gmail.com> > --- > drivers/gpu/drm/panel/panel-sitronix-st7703.c | 96 +++++++++++++++++++++++++++ > 1 file changed, 96 insertions(+) > > diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c > index 6c348fe28955..bfc03bdf3816 100644 > --- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c > +++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c > @@ -47,6 +47,7 @@ > #define ST7703_CMD_SETCABC 0xC8 > #define ST7703_CMD_SETPANEL 0xCC > #define ST7703_CMD_SETGAMMA 0xE0 > +#define ST7703_CMD_UNKNOWN_E1 0xE1 > #define ST7703_CMD_SETEQ 0xE3 > #define ST7703_CMD_SETGIP1 0xE9 > #define ST7703_CMD_SETGIP2 0xEA > @@ -673,6 +674,100 @@ static const struct st7703_panel_desc gameforcechi_desc = { > .init_sequence = gameforcechi_init_sequence, > }; > > +static void ayaneo_pocket_ds_lower_init_sequence(struct mipi_dsi_multi_context *dsi_ctx) > +{ > + /* Init sequence extracted from the AYANEO Pocket DS BSP kernel. */ > + > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETEXTC, 0xf1, 0x12, > + 0x87); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETDISP, 0x00, 0x01, > + 0x78); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETRGBIF, 0x10, 0x10, > + 0x28, 0x28, 0x03, 0xff, 0x00, 0x00, 0x00, > + 0x00); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETCYC, 0x80); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETBGP, 0x0a, 0x0a); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETVCOM, 0x90, 0x90); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETPOWER_EXT, 0x76, > + 0x22, 0xf0, 0x13); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETMIPI, 0x33, 0x81, > + 0x05, 0xf9, 0x0e, 0x0e, 0x20, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, > + 0x00, 0x91, 0x0a, 0x00, 0x00, 0x01, 0x4f, > + 0x01, 0x00, 0x00, 0x37); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETVDC, 0x47); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_UNKNOWN_BF, 0x02, 0x10, > + 0x00, 0x80, 0x04); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETSCR, 0x73, 0x73, > + 0x50, 0x50, 0x00, 0x00, 0x12, 0x73, 0x00); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETPOWER, 0x55, 0x00, > + 0x32, 0x32, 0x77, 0xf1, 0xf7, 0xf7, 0xcc, > + 0xcc, 0x7f, 0x7f, 0x11, 0x11, 0x00, 0x00, > + 0x32); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETIO, 0xb8, 0x00, > + 0x0a, 0x10, 0x01, 0x09, 0x00, 0x00, 0xed, > + 0xc5, 0x00, 0xa5); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETCABC, 0x10, 0x40, > + 0x1e, 0x03); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETPANEL, 0x0b); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETGAMMA, 0x00, 0x00, > + 0x00, 0x25, 0x31, 0x3f, 0x26, 0x29, 0x04, > + 0x08, 0x0d, 0x0e, 0x12, 0x0f, 0x11, 0x12, > + 0x18, 0x00, 0x00, 0x00, 0x25, 0x31, 0x3f, > + 0x26, 0x29, 0x04, 0x08, 0x0d, 0x0e, 0x12, > + 0x0f, 0x11, 0x12, 0x18); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_UNKNOWN_E1, 0x11, 0x11, > + 0x91, 0x00, 0x00, 0x00, 0x00); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETEQ, 0x07, 0x07, > + 0x0b, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x00, > + 0x00, 0xff, 0x84, 0xc0, 0x10); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETGIP1, 0xc8, 0x10, > + 0x04, 0x04, 0x02, 0x80, 0x81, 0x12, 0x31, > + 0x23, 0x2f, 0x80, 0x80, 0x81, 0x27, 0x20, > + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x44, 0x00, > + 0x88, 0xff, 0x00, 0x22, 0x44, 0x66, 0x88, > + 0x88, 0x88, 0x55, 0x11, 0x88, 0xff, 0x11, > + 0x33, 0x55, 0x77, 0x88, 0x88, 0x88, 0x00, > + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x00); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_SETGIP2, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x11, 0x55, 0xff, 0x88, > + 0x77, 0x55, 0x33, 0x11, 0x88, 0x88, 0x88, > + 0x00, 0x44, 0xff, 0x88, 0x66, 0x44, 0x22, > + 0x00, 0x88, 0x88, 0x88, 0x23, 0x00, 0x00, > + 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0x20, 0x80, 0x81, 0x00, > + 0x00, 0x00, 0x00); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, ST7703_CMD_UNKNOWN_EF, 0xff, 0xff, > + 0x01); > +} > + > +static const struct drm_display_mode ayaneo_pocket_ds_lower_mode = { > + .hdisplay = 768, > + .hsync_start = 768 + 110, > + .hsync_end = 768 + 110 + 45, > + .htotal = 768 + 110 + 45 + 110, > + .vdisplay = 1024, > + .vsync_start = 1024 + 18, > + .vsync_end = 1024 + 18 + 6, > + .vtotal = 1024 + 18 + 6 + 16, > + .clock = 65946, > + .width_mm = 76, > + .height_mm = 102, > +}; > + > +static const struct st7703_panel_desc ayaneo_pocket_ds_lower_desc = { > + .mode = &ayaneo_pocket_ds_lower_mode, > + .lanes = 4, > + .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | > + MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_LPM, > + .format = MIPI_DSI_FMT_RGB888, > + .init_sequence = ayaneo_pocket_ds_lower_init_sequence, > +}; > + > static int st7703_enable(struct drm_panel *panel) > { > struct st7703 *ctx = panel_to_st7703(panel); > @@ -916,6 +1011,7 @@ static void st7703_remove(struct mipi_dsi_device *dsi) > > static const struct of_device_id st7703_of_match[] = { > { .compatible = "anbernic,rg353v-panel-v2", .data = &rg353v2_desc }, > + { .compatible = "ayaneo,pocket-ds-lower-panel", .data = &ayaneo_pocket_ds_lower_desc }, > { .compatible = "gameforce,chi-panel", .data = &gameforcechi_desc }, > { .compatible = "powkiddy,rgb10max3-panel", .data = &rgb10max3_panel_desc }, > { .compatible = "powkiddy,rgb30-panel", .data = &rgb30panel_desc }, > Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Thanks, Neil ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] drm/panel: st7703: add AYANEO Pocket DS lower panel 2026-07-23 11:26 [PATCH 0/2] drm/panel: st7703: add AYANEO Pocket DS lower panel Alexandre Hamamdjian via B4 Relay 2026-07-23 11:26 ` [PATCH 1/2] dt-bindings: display: Add " Alexandre Hamamdjian via B4 Relay 2026-07-23 11:26 ` [PATCH 2/2] drm/panel: st7703: Add AYANEO Pocket DS Lower Panel Support Alexandre Hamamdjian via B4 Relay @ 2026-07-27 8:07 ` Neil Armstrong 2 siblings, 0 replies; 6+ messages in thread From: Neil Armstrong @ 2026-07-27 8:07 UTC (permalink / raw) To: Guido Günther, Purism Kernel Team, Ondrej Jirman, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alexandre Hamamdjian Cc: dri-devel, devicetree, linux-kernel Hi, On Thu, 23 Jul 2026 18:26:27 +0700, Alexandre Hamamdjian wrote: > The AYANEO Pocket DS is a dual-screen Qualcomm QCS8550 handheld. Its > lower (secondary) 5.0" 1024x768 4:3 IPS panel is driven by a Sitronix > ST7703 DDIC: every opcode in the vendor init sequence maps 1:1 to the > ST7703_CMD_* command set (SETEXTC 0xB9 with the canonical F1 12 key, > and SETMIPI/SETRGBIF/SETPOWER/SETGIP payloads near-identical to the > already-supported Powkiddy RGB10MAX3), so add it to the existing > sitronix-st7703 driver and its binding rather than a standalone driver. > > [...] Thanks, Applied to https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-next) [1/2] dt-bindings: display: Add AYANEO Pocket DS lower panel https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/9836f0236b4325b142c1f29904d09395ac4b87a5 [2/2] drm/panel: st7703: Add AYANEO Pocket DS Lower Panel Support https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/4c0fe6422f3a06d565c6d891587db5d3a1b20bca -- Neil ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-07-27 8:07 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2026-07-23 11:26 [PATCH 0/2] drm/panel: st7703: add AYANEO Pocket DS lower panel Alexandre Hamamdjian via B4 Relay 2026-07-23 11:26 ` [PATCH 1/2] dt-bindings: display: Add " Alexandre Hamamdjian via B4 Relay 2026-07-24 9:53 ` Krzysztof Kozlowski 2026-07-23 11:26 ` [PATCH 2/2] drm/panel: st7703: Add AYANEO Pocket DS Lower Panel Support Alexandre Hamamdjian via B4 Relay 2026-07-27 8:04 ` Neil Armstrong 2026-07-27 8:07 ` [PATCH 0/2] drm/panel: st7703: add AYANEO Pocket DS lower panel Neil Armstrong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®