Re: [PATCH 2/2] drm/panel: simple: Add timings for Raspberry Pi 7" panel
From: Maxime Ripard
Date: Thu Apr 23 2026 - 08:20:43 EST
Hi,
On Thu, Apr 23, 2026 at 03:01:51PM +0300, Tomi Valkeinen wrote:
> On 22/04/2026 22:22, Dmitry Baryshkov wrote:
> > 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@xxxxxxxxxxxxxxxx>
> > > ---
> > > 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?
>
> I haven't tested those, but the hbp and vbp do not seem to be the same. For
> me, they had to be exactly as they are here. This was also confirmed from
> Raspberry Pi, the panel datasheet had min/typ/max values (i.e. not ranges)
> of 46 and 23 for back porches.
>
> Where did the information come from that powertip,ph800480t013-idf02 or
> powertip,ph800480t032-zhc19 are used in the display modules? Or did you mean
> that while those models are not used in the Raspberry display module, people
> have used them successfully?
It also looks like we have panel-raspberrypi-touchscreen.c and raspberrypi,dsi-7inch in
panel-ilitek-ili9881c.c.
There's clearly more than one "7-inch rpi panel" so clarifying how it
compares to the other two drivers would help.
Maxime
Attachment:
signature.asc
Description: PGP signature