Re: [PATCH 2/2] drm/panel: simple: Add timings for Raspberry Pi 7" panel

Dmitry Baryshkov
2026-04-22T19:22:22Z

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