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

Tomi Valkeinen
2026-04-23T13:14:04Z

Hi,

On 23/04/2026 15:33, Dmitry Baryshkov wrote:
> On Thu, 23 Apr 2026 at 15:28, Tomi Valkeinen
> <tomi.valkeinen@ideasonboard.com> wrote:
>>
>> Hi,
>>
>> On 23/04/2026 15:14, Maxime Ripard wrote:
>>> 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@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?
>>>>
>>>> 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?
>
> For the zhc19 it's a wild guess, but for the idf02 it more of a certainity:
>
> commit d69de69f2be105b2474c05a5ca4827aac3e80ad3
> Author: Marek Vasut <marex@denx.de>
> Date: Tue Jul 28 14:12:46 2020 +0200
>
> drm/panel: simple: Add Powertip PH800480T013 panel
>
> Add support for Powertip PH800480T013 800x480 parallel LCD, this
> one is used in the Raspberry Pi 7" touchscreen display unit.
>
> In the past I used this panel compat instead of the
> panel-raspberrypi-touchscreen.c and it worked.
> IIRC Marek splitted the multi-function module into a regulator and the
> panel description.
Ok... Indeed https://pip.raspberrypi.com/categories/651-pcn lists
PH800480T013 as one of the panels used. Although two variants are
listed, and also a third panel model, possibly from another vendor.

My module is v1.1, and I think it has the PH800480T013-IAC21
D/5624/KIT-LC variant.

Tomi