public inbox for drm-ai-reviews@public-inbox.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/panel: Add Raspberry Pi 7" panel
@ 2026-04-20 13:13 Tomi Valkeinen
  2026-04-20 13:13 ` [PATCH 1/2] dt-bindings: display: simple: Add Raspberry Pi 7" DSI Display module panel Tomi Valkeinen
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Tomi Valkeinen @ 2026-04-20 13:13 UTC (permalink / raw)
  To: Dave Stevenson, Neil Armstrong, Jessica Zhang, David Airlie,
	Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding, Sam Ravnborg
  Cc: dri-devel, devicetree, linux-kernel, Tomi Valkeinen

This series adds Raspberry Pi 7" display module's panel to panel-simple.

Tested with BeagleY-AI and v1.1 of the display module.

This series, with
https://lore.kernel.org/all/20260327-tc358762-fixes-v2-0-3589d3c45f4a%40ideasonboard.com/
gives me a perfectly centered display.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
Tomi Valkeinen (2):
      dt-bindings: display: simple: Add Raspberry Pi 7" DSI Display module panel
      drm/panel: simple: Add timings for Raspberry Pi 7" panel

 .../bindings/display/panel/panel-simple.yaml       |  2 ++
 drivers/gpu/drm/panel/panel-simple.c               | 32 ++++++++++++++++++++++
 2 files changed, 34 insertions(+)
---
base-commit: 028ef9c96e96197026887c0f092424679298aae8
change-id: 20260420-rpi-7inch-c1d83fe13b17

Best regards,
-- 
Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/2] dt-bindings: display: simple: Add Raspberry Pi 7" DSI Display module panel
  2026-04-20 13:13 [PATCH 0/2] drm/panel: Add Raspberry Pi 7" panel Tomi Valkeinen
@ 2026-04-20 13:13 ` Tomi Valkeinen
  2026-04-20 16:01   ` Conor Dooley
  2026-04-22 23:39   ` Claude review: " Claude Code Review Bot
  2026-04-20 13:13 ` [PATCH 2/2] drm/panel: simple: Add timings for Raspberry Pi 7" panel Tomi Valkeinen
  2026-04-22 23:39 ` Claude review: drm/panel: Add " Claude Code Review Bot
  2 siblings, 2 replies; 8+ messages in thread
From: Tomi Valkeinen @ 2026-04-20 13:13 UTC (permalink / raw)
  To: Dave Stevenson, Neil Armstrong, Jessica Zhang, David Airlie,
	Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding, Sam Ravnborg
  Cc: dri-devel, devicetree, linux-kernel, Tomi Valkeinen

Add compatible string for panel used in Raspberry Pi 7" DSI Display
module. The different display module versions have panels from multiple
undisclosed vendors.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 Documentation/devicetree/bindings/display/panel/panel-simple.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
index 868edb04989a..a71578a99ccc 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
@@ -274,6 +274,8 @@ properties:
       - qiaodian,qd43003c0-40
         # Shenzhen QiShenglong Industrialist Co., Ltd. Gopher 2b 4.3" 480(RGB)x272 TFT LCD panel
       - qishenglong,gopher2b-lcd
+        # Raspberry Pi 7" DSI Display module panel (multiple undisclosed vendors)
+      - raspberrypi,7inch-dsi
         # Raystar Optronics, Inc. RFF500F-AWH-DNN 5.0" TFT 840x480
       - raystar,rff500f-awh-dnn
         # Rocktech Displays Ltd. RK101II01D-CT 10.1" TFT 1280x800

-- 
2.43.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] drm/panel: simple: Add timings for Raspberry Pi 7" panel
  2026-04-20 13:13 [PATCH 0/2] drm/panel: Add Raspberry Pi 7" panel Tomi Valkeinen
  2026-04-20 13:13 ` [PATCH 1/2] dt-bindings: display: simple: Add Raspberry Pi 7" DSI Display module panel Tomi Valkeinen
@ 2026-04-20 13:13 ` Tomi Valkeinen
  2026-04-22 19:22   ` Dmitry Baryshkov
  2026-04-22 23:39   ` Claude review: " Claude Code Review Bot
  2026-04-22 23:39 ` Claude review: drm/panel: Add " Claude Code Review Bot
  2 siblings, 2 replies; 8+ messages in thread
From: Tomi Valkeinen @ 2026-04-20 13:13 UTC (permalink / raw)
  To: Dave Stevenson, Neil Armstrong, Jessica Zhang, David Airlie,
	Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding, Sam Ravnborg
  Cc: dri-devel, devicetree, linux-kernel, Tomi Valkeinen

Add timings for the panel used in Raspberry Pi 7" DSI Display module:
https://www.raspberrypi.com/products/raspberry-pi-touch-display/

This has been tested with version v1.1 of the display module.

The panel is very strict about the back-porch values, they must be
exactly 46 for hbp and 23 for vbp. Other timings can be defined quite
freely.

The panel is exclusive to Raspberry Pi, and different versions of the
display module can have panels from different vendors which are fully
compatible. Also, as the panel vendors are not public, the compatible
string used is "raspberrypi,7inch-dsi".

Note that while the display module has a DSI connector, and the
compatible has "dsi" in it, we use DRM_MODE_CONNECTOR_DPI as the panel
itself is a parallel video panel. The display module (as of v1.1) uses
TC358762 DSI-to-DPI bridge to do the conversion.

We could use DRM_MODE_CONNECTOR_DSI here, which would have the benefit
of showing a "DSI-1" connector to the userspace. However, the panel IS a
DPI panel, and gets its input from a DSI-to-DPI bridge, and the
panel-simple.c behaves differently depending on the connector type used,
so, DRM_MODE_CONNECTOR_DPI it is.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 drivers/gpu/drm/panel/panel-simple.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 91ab280869ba..e75eb20301f2 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -4208,6 +4208,35 @@ static const struct panel_desc rocktech_rk043fn48h = {
 	.connector_type = DRM_MODE_CONNECTOR_DPI,
 };
 
+static const struct display_timing raspberrypi_7inch_timing = {
+	.pixelclock = { 10000000, 30000000, 50000000 },
+	.hactive = { 800, 800, 800 },
+	.hfront_porch = { 16, 72, 354 },
+	.hsync_len = { 1, 32, 40 },
+	.hback_porch = { 46, 46, 46 },
+	.vactive = { 480, 480, 480 },
+	.vfront_porch = { 7, 21, 147 },
+	.vsync_len = { 1, 2, 20 },
+	.vback_porch = { 23, 23, 23 },
+	.flags = DISPLAY_FLAGS_VSYNC_HIGH | DISPLAY_FLAGS_HSYNC_HIGH,
+	/* Note: the rest of the flags are defined below in bus_flags */
+};
+
+static const struct panel_desc raspberrypi_7inch = {
+	.timings = &raspberrypi_7inch_timing,
+	.num_timings = 1,
+	.bpc = 8,
+	.size = {
+		.width = 154,
+		.height = 86,
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.connector_type = DRM_MODE_CONNECTOR_DPI,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH |
+		DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE |
+		DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
+};
+
 static const struct display_timing rocktech_rk070er9427_timing = {
 	.pixelclock = { 26400000, 33300000, 46800000 },
 	.hactive = { 800, 800, 800 },
@@ -5490,6 +5519,9 @@ static const struct of_device_id platform_of_match[] = {
 	}, {
 		.compatible = "qishenglong,gopher2b-lcd",
 		.data = &qishenglong_gopher2b_lcd,
+	}, {
+		.compatible = "raspberrypi,7inch-dsi",
+		.data = &raspberrypi_7inch,
 	}, {
 		.compatible = "raystar,rff500f-awh-dnn",
 		.data = &raystar_rff500f_awh_dnn,

-- 
2.43.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] dt-bindings: display: simple: Add Raspberry Pi 7" DSI Display module panel
  2026-04-20 13:13 ` [PATCH 1/2] dt-bindings: display: simple: Add Raspberry Pi 7" DSI Display module panel Tomi Valkeinen
@ 2026-04-20 16:01   ` Conor Dooley
  2026-04-22 23:39   ` Claude review: " Claude Code Review Bot
  1 sibling, 0 replies; 8+ messages in thread
From: Conor Dooley @ 2026-04-20 16:01 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: Dave Stevenson, Neil Armstrong, Jessica Zhang, David Airlie,
	Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding, Sam Ravnborg, dri-devel, devicetree, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 385 bytes --]

On Mon, Apr 20, 2026 at 04:13:35PM +0300, Tomi Valkeinen wrote:
> Add compatible string for panel used in Raspberry Pi 7" DSI Display
> module. The different display module versions have panels from multiple
> undisclosed vendors.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] drm/panel: simple: Add timings for Raspberry Pi 7" panel
  2026-04-20 13:13 ` [PATCH 2/2] drm/panel: simple: Add timings for Raspberry Pi 7" panel Tomi Valkeinen
@ 2026-04-22 19:22   ` Dmitry Baryshkov
  2026-04-22 23:39   ` Claude review: " Claude Code Review Bot
  1 sibling, 0 replies; 8+ messages in thread
From: Dmitry Baryshkov @ 2026-04-22 19:22 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: Dave Stevenson, Neil Armstrong, Jessica Zhang, David Airlie,
	Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding, Sam Ravnborg, dri-devel, devicetree, linux-kernel

On Mon, Apr 20, 2026 at 04:13:36PM +0300, Tomi Valkeinen wrote:
> Add timings for the panel used in Raspberry Pi 7" DSI Display module:
> https://www.raspberrypi.com/products/raspberry-pi-touch-display/
> 
> This has been tested with version v1.1 of the display module.
> 
> The panel is very strict about the back-porch values, they must be
> exactly 46 for hbp and 23 for vbp. Other timings can be defined quite
> freely.
> 
> The panel is exclusive to Raspberry Pi, and different versions of the
> display module can have panels from different vendors which are fully
> compatible. Also, as the panel vendors are not public, the compatible
> string used is "raspberrypi,7inch-dsi".
> 
> Note that while the display module has a DSI connector, and the
> compatible has "dsi" in it, we use DRM_MODE_CONNECTOR_DPI as the panel
> itself is a parallel video panel. The display module (as of v1.1) uses
> TC358762 DSI-to-DPI bridge to do the conversion.
> 
> We could use DRM_MODE_CONNECTOR_DSI here, which would have the benefit
> of showing a "DSI-1" connector to the userspace. However, the panel IS a
> DPI panel, and gets its input from a DSI-to-DPI bridge, and the
> panel-simple.c behaves differently depending on the connector type used,
> so, DRM_MODE_CONNECTOR_DPI it is.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> ---
>  drivers/gpu/drm/panel/panel-simple.c | 32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
> 
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 91ab280869ba..e75eb20301f2 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -4208,6 +4208,35 @@ static const struct panel_desc rocktech_rk043fn48h = {
>  	.connector_type = DRM_MODE_CONNECTOR_DPI,
>  };
>  
> +static const struct display_timing raspberrypi_7inch_timing = {
> +	.pixelclock = { 10000000, 30000000, 50000000 },
> +	.hactive = { 800, 800, 800 },
> +	.hfront_porch = { 16, 72, 354 },
> +	.hsync_len = { 1, 32, 40 },
> +	.hback_porch = { 46, 46, 46 },
> +	.vactive = { 480, 480, 480 },
> +	.vfront_porch = { 7, 21, 147 },
> +	.vsync_len = { 1, 2, 20 },
> +	.vback_porch = { 23, 23, 23 },
> +	.flags = DISPLAY_FLAGS_VSYNC_HIGH | DISPLAY_FLAGS_HSYNC_HIGH,
> +	/* Note: the rest of the flags are defined below in bus_flags */
> +};

This looks pretty close to powertip panels that have been used before
hand in those modules. Are you sure that powertip,ph800480t013-idf02
or powertip,ph800480t032-zhc19 don't work for you?

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Claude review: drm/panel: Add Raspberry Pi 7" panel
  2026-04-20 13:13 [PATCH 0/2] drm/panel: Add Raspberry Pi 7" panel Tomi Valkeinen
  2026-04-20 13:13 ` [PATCH 1/2] dt-bindings: display: simple: Add Raspberry Pi 7" DSI Display module panel Tomi Valkeinen
  2026-04-20 13:13 ` [PATCH 2/2] drm/panel: simple: Add timings for Raspberry Pi 7" panel Tomi Valkeinen
@ 2026-04-22 23:39 ` Claude Code Review Bot
  2 siblings, 0 replies; 8+ messages in thread
From: Claude Code Review Bot @ 2026-04-22 23:39 UTC (permalink / raw)
  To: dri-devel-reviews

Overall Series Review

Subject: drm/panel: Add Raspberry Pi 7" panel
Author: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Patches: 5
Reviewed: 2026-04-23T09:39:22.244594

---

This is a clean, well-structured 2-patch series adding support for the Raspberry Pi 7" DSI Display module panel to panel-simple. The cover letter is clear about what was tested (BeagleY-AI, v1.1 display module) and the dependency on the TC358762 bridge fixes series.

The patches are straightforward: patch 1 adds the dt-binding compatible string, patch 2 adds the panel timing and descriptor. The commit messages are thorough — particularly patch 2, which explains the non-obvious choice of `DRM_MODE_CONNECTOR_DPI` over `DRM_MODE_CONNECTOR_DSI`, which is the kind of rationale that saves future developers from "fixing" something that isn't broken.

The timing parameters look reasonable and the code follows existing patterns in panel-simple.c. The series is in good shape, with only minor observations below.

**Verdict: Looks good with minor comments.**

---
Generated by Claude Code Patch Reviewer

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Claude review: dt-bindings: display: simple: Add Raspberry Pi 7" DSI Display module panel
  2026-04-20 13:13 ` [PATCH 1/2] dt-bindings: display: simple: Add Raspberry Pi 7" DSI Display module panel Tomi Valkeinen
  2026-04-20 16:01   ` Conor Dooley
@ 2026-04-22 23:39   ` Claude Code Review Bot
  1 sibling, 0 replies; 8+ messages in thread
From: Claude Code Review Bot @ 2026-04-22 23:39 UTC (permalink / raw)
  To: dri-devel-reviews

Patch Review

Clean binding addition. The compatible string `raspberrypi,7inch-dsi` is inserted in correct alphabetical order between `qishenglong,gopher2b-lcd` and `raystar,rff500f-awh-dnn`. Indentation matches the existing format (6-space `- ` entries, 8-space `# ` comments).

The comment "multiple undisclosed vendors" is appropriate given that different revisions of the display module ship with panels from different manufacturers, as explained in the cover letter.

**No issues.**

---
Generated by Claude Code Patch Reviewer

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Claude review: drm/panel: simple: Add timings for Raspberry Pi 7" panel
  2026-04-20 13:13 ` [PATCH 2/2] drm/panel: simple: Add timings for Raspberry Pi 7" panel Tomi Valkeinen
  2026-04-22 19:22   ` Dmitry Baryshkov
@ 2026-04-22 23:39   ` Claude Code Review Bot
  1 sibling, 0 replies; 8+ messages in thread
From: Claude Code Review Bot @ 2026-04-22 23:39 UTC (permalink / raw)
  To: dri-devel-reviews

Patch Review

The commit message is excellent — it documents the strict back-porch requirements, the connector type rationale, and the hardware topology clearly.

**Timing analysis:**

The timing definition looks correct for an 800x480 panel. The typical pixel clock of 30MHz gives approximately 60fps:
- htotal = 800 + 72 + 32 + 46 = 950
- vtotal = 480 + 21 + 2 + 23 = 526
- 30MHz / (950 * 526) = ~60.0 Hz

The fixed back-porch values (hbp=46, vbp=23 with min=typ=max) match the commit message's claim that these must be exact. The wide pixel clock range (10–50MHz) allows flexible refresh rate selection, which is reasonable for a panel behind a DSI-to-DPI bridge where the host controller determines the actual rate.

**Observation — similarity to rocktech_rk070er9427:**

The existing `rocktech_rk070er9427` panel at line 4274 shares strikingly similar parameters: same resolution (800x480), same physical size (154x86mm), identical fixed back-porches (hbp=46, vbp=23), and overlapping front-porch/pixel-clock ranges. The main differences are bpc (6 vs 8), bus_format (RGB666_1X18 vs RGB888_1X24), and the new panel's bus_flags/sync flags. This might suggest Rocktech is one of the undisclosed panel vendors — not a problem for the patch, but an interesting data point.

**bus_flags usage:**

The patch uses `DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE` and `DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE` in the `panel_desc.bus_flags`. These are from the transmitter's perspective (DRIVE), not the receiver/panel perspective (SAMPLE). Since `DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE` == `DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE` (both BIT(2)), and similarly for sync, these will pass the DPI validation checks at line 664 without warnings.

This is consistent with how several other panels in the file define their bus_flags (e.g., lines 1644, 1851, 2123-2124), so this is fine. However, given the comment in the timing struct:

```c
	/* Note: the rest of the flags are defined below in bus_flags */
```

It's worth noting that `DISPLAY_FLAGS_VSYNC_HIGH | DISPLAY_FLAGS_HSYNC_HIGH` in the timing struct defines sync polarity (which sync level is active), while `DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE` in bus_flags defines the clock edge on which sync is driven — these are orthogonal, so no conflict. The comment might mislead a reader into thinking the bus_flags are an alternative location for the *same* kind of flags, when they're actually complementary. This is a very minor nit.

**of_device_id table:**

The entry is correctly placed in alphabetical order between `qishenglong,gopher2b-lcd` and `raystar,rff500f-awh-dnn` at the updated line 5519.

**No blocking issues.**

---
Generated by Claude Code Patch Reviewer

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-04-22 23:39 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-20 13:13 [PATCH 0/2] drm/panel: Add Raspberry Pi 7" panel Tomi Valkeinen
2026-04-20 13:13 ` [PATCH 1/2] dt-bindings: display: simple: Add Raspberry Pi 7" DSI Display module panel Tomi Valkeinen
2026-04-20 16:01   ` Conor Dooley
2026-04-22 23:39   ` Claude review: " Claude Code Review Bot
2026-04-20 13:13 ` [PATCH 2/2] drm/panel: simple: Add timings for Raspberry Pi 7" panel Tomi Valkeinen
2026-04-22 19:22   ` Dmitry Baryshkov
2026-04-22 23:39   ` Claude review: " Claude Code Review Bot
2026-04-22 23:39 ` Claude review: drm/panel: Add " Claude Code Review Bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox