Message ID | 20231124104451.44271-1-shengyang.chen@starfivetech.com |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp1071585vqx; Fri, 24 Nov 2023 02:45:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IEd4EAtoRb4B4r0d/YMneIbjecJZYxy3mA1pn6Zy4oZiKBRlj6zKBw08Y3DR5FcMCsCiwql X-Received: by 2002:a9d:6297:0:b0:6c0:a95b:44e4 with SMTP id x23-20020a9d6297000000b006c0a95b44e4mr2560482otk.38.1700822739035; Fri, 24 Nov 2023 02:45:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700822738; cv=none; d=google.com; s=arc-20160816; b=pwFmbRBV3MhU9jiqLJwPykcenyyDVQV2fz8U2CuzfrmjEhi50ATgXfla6PsyTU3gN8 /Kjp/Cp5GHE6zYgB01nrCqfBnHOkTlCf4E+AnCgLeK4rQDF2ZpelL+IUKkjDX2uxwGdh lGegfga7IStDvZWd2iYjFXltjXfE1AL9eP0ah1kJ5h7vf+vvtD0oASzkyEedrS0hWeJg gdxpQYRmFmxYtOdnXfmuh6e6ygHpcb+yuYp0VJnym5T3yvzFSNd9Hthvd4CXU1qrRi4W He/8EWMOBFUnTVfBuScfyHHem2kMsBwQ+jw+u/Efu6/bQZe5sCvtlmF6HLV14AUDjx4+ csHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=Ua75jKqZoEMFuHYgGBXUSyU+W30jNVg8SjtSfECv4S0=; fh=HdKC1Y26FhBgoGJ8HMU+IavW3w3oWEnuTkb2R7hprvA=; b=bz/ll3a9nJiptKiLV3jq5oHIPysgynuuOfg7gc1Z60boHPDYC2drYQzOVJFip/gfYS joLq/02Qs2JlaE35kS0nSxAQIfzziSumwdAA9LiiM0k5PUJLGICX12tmb1M1KqmwqXHU MOCxRAidAeBI+cRIJdceR5A2qwBs7CzgAoKz3yL08W89rCoLd/VDcwNUhjwBRICu+WhU hEnJq6P347P0rJMMMXzO5s1IABCw4r/pqInmn7lLR821BVc6MFHIF3f7RJZSCJyi3cMc wiwCVJd57kf+eMl3Q9xIhk+XvZSLZoZKOI/svh/lhCAmAaQ+iqm7El74Lrxsc/vAGTit jYng== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id w19-20020a634913000000b005bd68976351si3360139pga.55.2023.11.24.02.45.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Nov 2023 02:45:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 78C5180A144E; Fri, 24 Nov 2023 02:45:15 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345655AbjKXKpB (ORCPT <rfc822;ouuuleilei@gmail.com> + 99 others); Fri, 24 Nov 2023 05:45:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39268 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345642AbjKXKo5 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 24 Nov 2023 05:44:57 -0500 Received: from fd01.gateway.ufhost.com (fd01.gateway.ufhost.com [61.152.239.71]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 585CF10EC; Fri, 24 Nov 2023 02:45:00 -0800 (PST) Received: from EXMBX165.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX165", Issuer "EXMBX165" (not verified)) by fd01.gateway.ufhost.com (Postfix) with ESMTP id F1F357F98; Fri, 24 Nov 2023 18:44:52 +0800 (CST) Received: from EXMBX171.cuchost.com (172.16.6.91) by EXMBX165.cuchost.com (172.16.6.75) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Fri, 24 Nov 2023 18:44:52 +0800 Received: from yang-virtual-machine.localdomain (113.72.144.198) by EXMBX171.cuchost.com (172.16.6.91) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Fri, 24 Nov 2023 18:44:51 +0800 From: Shengyang Chen <shengyang.chen@starfivetech.com> To: <devicetree@vger.kernel.org>, <dri-devel@lists.freedesktop.org> CC: <neil.armstrong@linaro.org>, <quic_jesszhan@quicinc.com>, <sam@ravnborg.org>, <airlied@gmail.com>, <daniel@ffwll.ch>, <maarten.lankhorst@linux.intel.com>, <mripard@kernel.org>, <tzimmermann@suse.de>, <robh+dt@kernel.org>, <krzysztof.kozlowski+dt@linaro.org>, <conor+dt@kernel.org>, <florian.fainelli@broadcom.com>, <bcm-kernel-feedback-list@broadcom.com>, <eric@anholt.net>, <thierry.reding@gmail.com>, <changhuang.liang@starfivetech.com>, <keith.zhao@starfivetech.com>, <shengyang.chen@starfivetech.com>, <jack.zhu@starfivetech.com>, <linux-rpi-kernel@lists.infradead.org>, <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org> Subject: [PATCH v1 0/2] Add waveshare 7inch touchscreen panel support Date: Fri, 24 Nov 2023 18:44:49 +0800 Message-ID: <20231124104451.44271-1-shengyang.chen@starfivetech.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [113.72.144.198] X-ClientProxiedBy: EXCAS062.cuchost.com (172.16.6.22) To EXMBX171.cuchost.com (172.16.6.91) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Fri, 24 Nov 2023 02:45:15 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783441904572522380 X-GMAIL-MSGID: 1783441904572522380 |
Series |
Add waveshare 7inch touchscreen panel support
|
|
Message
Shengyang Chen
Nov. 24, 2023, 10:44 a.m. UTC
This patchset adds waveshare 7inch touchscreen panel support for the StarFive JH7110 SoC. Patch 1 add new compatible for the raspberrypi panel driver and its dt-binding. Patch 2 add new display mode and new probing process for raspberrypi panel driver. Waveshare 7inch touchscreen panel is a kind of raspberrypi panel which can be drived by raspberrypi panel driver. The series has been tested on the VisionFive 2 board. Shengyang Chen (2): dt-bindings: display: panel: raspberrypi: Add compatible property for waveshare 7inch touchscreen panel gpu: drm: panel: raspberrypi: add new display mode and new probing process .../panel/raspberrypi,7inch-touchscreen.yaml | 4 +- .../drm/panel/panel-raspberrypi-touchscreen.c | 99 ++++++++++++++++--- 2 files changed, 91 insertions(+), 12 deletions(-)
Comments
On Fri, 24 Nov 2023 at 15:00, Stefan Wahren <wahrenst@gmx.net> wrote: > > Hi Shengyang, > > [fix address of Emma] Not merged to master yet, but Emma has stepped back from maintenance. https://lists.freedesktop.org/archives/dri-devel/2023-October/428829.html Dropped from the cc. > Am 24.11.23 um 11:44 schrieb Shengyang Chen: > > This patchset adds waveshare 7inch touchscreen panel support > > for the StarFive JH7110 SoC. > > > > Patch 1 add new compatible for the raspberrypi panel driver and its dt-binding. > > Patch 2 add new display mode and new probing process for raspberrypi panel driver. > > > > Waveshare 7inch touchscreen panel is a kind of raspberrypi panel > > which can be drived by raspberrypi panel driver. > > > > The series has been tested on the VisionFive 2 board. > surprisingly i was recently working on the official Raspberry Pi > touchscreen and was able to get it running the new way. > > What do i mean with the new way. There is almost nothing special to the > Raspberry Pi touchscreen, so we should try to use/extend existing > components like: > > CONFIG_DRM_PANEL_SIMPLE > CONFIG_TOUCHSCREEN_EDT_FT5X06 > CONFIG_DRM_TOSHIBA_TC358762 > > The only special part is the Attiny on the connector PCB which requires: > > CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY > > So the whole point is to avoid writing monolitic drivers for simple > panel like that. > > There is a WIP branch based on top of Linux 6.7-rcX, which should > demonstrate this approach [1]. Unfortunately it is not ready for > upstreaming, but it has been tested on a Raspberry Pi 3 B Plus. Maybe > this is helpful for your case. > > Actually i consider panel-raspberrypi-touchscreen.c as a dead end, which > shouldn't be extended. Agreed. The panel control being bound in with the Atmel control has no hook for the EDT5x06 touch driver to hook in and keep the power to the touch controller active. When the panel disable gets called, bye bye touch overlay :-( And I'm reading the driver change as more of a hack to get it to work on your platform, not as adding support for the Waveshare panel variant. Waveshare deliberately cloned the behaviour of the Pi 7" panel in order to make it work with the old Pi firmware drivers, so it shouldn't need any significant changes. Where did the new timings come from? Dave > Btw there are already DT overlays in mainline which seems to use the > Raspberry Pi 7inch panel (without touch function yet) [2]. > > [1] - https://github.com/lategoodbye/rpi-zero/commits/v6.7-7inch-ts > [2] - > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx-0x-rpidsi.dtso?h=v6.6.2&id=6b4da1354fd81adace0cda448c77d8f2a47d8474 > > > > > Shengyang Chen (2): > > dt-bindings: display: panel: raspberrypi: Add compatible property for > > waveshare 7inch touchscreen panel > > gpu: drm: panel: raspberrypi: add new display mode and new probing > > process > > > > .../panel/raspberrypi,7inch-touchscreen.yaml | 4 +- > > .../drm/panel/panel-raspberrypi-touchscreen.c | 99 ++++++++++++++++--- > > 2 files changed, 91 insertions(+), 12 deletions(-) > > >
Hi Keith On Wed, 6 Dec 2023 at 08:55, Keith Zhao <keith.zhao@starfivetech.com> wrote: > > > > On 2023/11/25 0:04, Dave Stevenson wrote: > > On Fri, 24 Nov 2023 at 15:00, Stefan Wahren <wahrenst@gmx.net> wrote: > >> > >> Hi Shengyang, > >> > >> [fix address of Emma] > > > > Not merged to master yet, but Emma has stepped back from maintenance. > > https://lists.freedesktop.org/archives/dri-devel/2023-October/428829.html > > Dropped from the cc. > > > >> Am 24.11.23 um 11:44 schrieb Shengyang Chen: > >> > This patchset adds waveshare 7inch touchscreen panel support > >> > for the StarFive JH7110 SoC. > >> > > >> > Patch 1 add new compatible for the raspberrypi panel driver and its dt-binding. > >> > Patch 2 add new display mode and new probing process for raspberrypi panel driver. > >> > > >> > Waveshare 7inch touchscreen panel is a kind of raspberrypi panel > >> > which can be drived by raspberrypi panel driver. > >> > > >> > The series has been tested on the VisionFive 2 board. > >> surprisingly i was recently working on the official Raspberry Pi > >> touchscreen and was able to get it running the new way. > >> > >> What do i mean with the new way. There is almost nothing special to the > >> Raspberry Pi touchscreen, so we should try to use/extend existing > >> components like: > >> > >> CONFIG_DRM_PANEL_SIMPLE > >> CONFIG_TOUCHSCREEN_EDT_FT5X06 > >> CONFIG_DRM_TOSHIBA_TC358762 > >> > >> The only special part is the Attiny on the connector PCB which requires: > >> > >> CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY > >> > >> So the whole point is to avoid writing monolitic drivers for simple > >> panel like that. > >> > >> There is a WIP branch based on top of Linux 6.7-rcX, which should > >> demonstrate this approach [1]. Unfortunately it is not ready for > >> upstreaming, but it has been tested on a Raspberry Pi 3 B Plus. Maybe > >> this is helpful for your case. > >> > >> Actually i consider panel-raspberrypi-touchscreen.c as a dead end, which > >> shouldn't be extended. > > > > Agreed. > > > > The panel control being bound in with the Atmel control has no hook > > for the EDT5x06 touch driver to hook in and keep the power to the > > touch controller active. When the panel disable gets called, bye bye > > touch overlay :-( > > > > And I'm reading the driver change as more of a hack to get it to work > > on your platform, not as adding support for the Waveshare panel > > variant. > > Waveshare deliberately cloned the behaviour of the Pi 7" panel in > > order to make it work with the old Pi firmware drivers, so it > > shouldn't need any significant changes. Where did the new timings come > > from? > > > > Dave > hi Dave : > that's means the panel driver split into 3 sub-modules: > panel + panel_bridge + regulator. Correct. You'll have a fourth device in edt_ft5x06 for the touch overlay too, which will link to the regulator driver for power control. > I have a question: in the > static int rpi_touchscreen_probe(struct i2c_client *i2c) > { > ...... > > ver = rpi_touchscreen_i2c_read(ts, REG_ID); > if (ver < 0) { > dev_err(dev, "Atmel I2C read failed: %d\n", ver); > return -ENODEV; > } > > switch (ver) { > case 0xde: /* ver 1 */ > case 0xc3: /* ver 2 */ > break; > default: > dev_err(dev, "Unknown Atmel firmware revision: 0x%02x\n", ver); > return -ENODEV; > } > > ...... > } > i think this "I2C read" can use to detect whether the panel is connected to dsi controller. > > and when split the panel driver into 3 sub-modules, it seems the default way is connected. > if I drop the panel , run modetest to check the connector status , result connected. > Is there any way to detect the connection in this case? > Thanks I am not aware of any DSI drivers that support hotplugging, therefore the connector state will always be connected if the device probes. On vc4 the relevant DSI host controller has to have been enabled in device tree and will be a required component for binding. The DSI host controller will be waiting on the DSI peripheral driver to call mipi_dsi_attach, which then calls component_add. If the panel or panel regulator isn't present, then that never happens if the panel isn't present, so vc4 won't bind. It is a little ugly in that you lose the whole DRM card, but that is how I understand DRM is generally set up to work for DSI or similar display interfaces. > ------------------------------------- > > Where did the new timings come from? > > ------------------------------------- > My platform dphy tx hardware has certain limitations. > Only supports integer multiples of 10M bitrate: > such as 160M ,170M, 180M,190M,...1G(max) > > as common dphy bitrate = pixclock*bpp/lanes. > This value cannot match successfully in most cases. > > so in order to match bitrate , I choose a bitrate value around pixclock*bpp/lanes, > Prevent overflow and underflow by fine-tuning the timing parameters:-( > that will make the new timming value. That isn't really a function of the panel then. All DRM bridges have the option to define a mode_fixup in drm_bridge_funcs, and that gives you the option to adjust the timings as required. vc4 has a similar constraint in that the PHY only has an integer divider from a 2 or 3GHz PLL. It implements mode_fixup to compute the next highest pixel clock, and then adjusts the horizontal front porch to keep the same line timing. See https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/vc4/vc4_dsi.c#L825 Dave > > > >> Btw there are already DT overlays in mainline which seems to use the > >> Raspberry Pi 7inch panel (without touch function yet) [2]. > >> > >> [1] - https://github.com/lategoodbye/rpi-zero/commits/v6.7-7inch-ts > >> [2] - > >> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx-0x-rpidsi.dtso?h=v6.6.2&id=6b4da1354fd81adace0cda448c77d8f2a47d8474 > >> > >> > > >> > Shengyang Chen (2): > >> > dt-bindings: display: panel: raspberrypi: Add compatible property for > >> > waveshare 7inch touchscreen panel > >> > gpu: drm: panel: raspberrypi: add new display mode and new probing > >> > process > >> > > >> > .../panel/raspberrypi,7inch-touchscreen.yaml | 4 +- > >> > .../drm/panel/panel-raspberrypi-touchscreen.c | 99 ++++++++++++++++--- > >> > 2 files changed, 91 insertions(+), 12 deletions(-) > >> > > >>
On 2023/12/6 22:56, Dave Stevenson wrote: > Hi Keith > > On Wed, 6 Dec 2023 at 08:55, Keith Zhao <keith.zhao@starfivetech.com> wrote: >> >> >> >> On 2023/11/25 0:04, Dave Stevenson wrote: >> > On Fri, 24 Nov 2023 at 15:00, Stefan Wahren <wahrenst@gmx.net> wrote: >> >> >> >> Hi Shengyang, >> >> >> >> [fix address of Emma] >> > >> > Not merged to master yet, but Emma has stepped back from maintenance. >> > https://lists.freedesktop.org/archives/dri-devel/2023-October/428829.html >> > Dropped from the cc. >> > >> >> Am 24.11.23 um 11:44 schrieb Shengyang Chen: >> >> > This patchset adds waveshare 7inch touchscreen panel support >> >> > for the StarFive JH7110 SoC. >> >> > >> >> > Patch 1 add new compatible for the raspberrypi panel driver and its dt-binding. >> >> > Patch 2 add new display mode and new probing process for raspberrypi panel driver. >> >> > >> >> > Waveshare 7inch touchscreen panel is a kind of raspberrypi panel >> >> > which can be drived by raspberrypi panel driver. >> >> > >> >> > The series has been tested on the VisionFive 2 board. >> >> surprisingly i was recently working on the official Raspberry Pi >> >> touchscreen and was able to get it running the new way. >> >> >> >> What do i mean with the new way. There is almost nothing special to the >> >> Raspberry Pi touchscreen, so we should try to use/extend existing >> >> components like: >> >> >> >> CONFIG_DRM_PANEL_SIMPLE >> >> CONFIG_TOUCHSCREEN_EDT_FT5X06 >> >> CONFIG_DRM_TOSHIBA_TC358762 >> >> >> >> The only special part is the Attiny on the connector PCB which requires: >> >> >> >> CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY >> >> >> >> So the whole point is to avoid writing monolitic drivers for simple >> >> panel like that. >> >> >> >> There is a WIP branch based on top of Linux 6.7-rcX, which should >> >> demonstrate this approach [1]. Unfortunately it is not ready for >> >> upstreaming, but it has been tested on a Raspberry Pi 3 B Plus. Maybe >> >> this is helpful for your case. >> >> >> >> Actually i consider panel-raspberrypi-touchscreen.c as a dead end, which >> >> shouldn't be extended. >> > >> > Agreed. >> > >> > The panel control being bound in with the Atmel control has no hook >> > for the EDT5x06 touch driver to hook in and keep the power to the >> > touch controller active. When the panel disable gets called, bye bye >> > touch overlay :-( >> > >> > And I'm reading the driver change as more of a hack to get it to work >> > on your platform, not as adding support for the Waveshare panel >> > variant. >> > Waveshare deliberately cloned the behaviour of the Pi 7" panel in >> > order to make it work with the old Pi firmware drivers, so it >> > shouldn't need any significant changes. Where did the new timings come >> > from? >> > >> > Dave >> hi Dave : >> that's means the panel driver split into 3 sub-modules: >> panel + panel_bridge + regulator. > > Correct. > > You'll have a fourth device in edt_ft5x06 for the touch overlay too, > which will link to the regulator driver for power control. > >> I have a question: in the >> static int rpi_touchscreen_probe(struct i2c_client *i2c) >> { >> ...... >> >> ver = rpi_touchscreen_i2c_read(ts, REG_ID); >> if (ver < 0) { >> dev_err(dev, "Atmel I2C read failed: %d\n", ver); >> return -ENODEV; >> } >> >> switch (ver) { >> case 0xde: /* ver 1 */ >> case 0xc3: /* ver 2 */ >> break; >> default: >> dev_err(dev, "Unknown Atmel firmware revision: 0x%02x\n", ver); >> return -ENODEV; >> } >> >> ...... >> } >> i think this "I2C read" can use to detect whether the panel is connected to dsi controller. >> >> and when split the panel driver into 3 sub-modules, it seems the default way is connected. >> if I drop the panel , run modetest to check the connector status , result connected. >> Is there any way to detect the connection in this case? >> Thanks > > I am not aware of any DSI drivers that support hotplugging, therefore > the connector state will always be connected if the device probes. > > On vc4 the relevant DSI host controller has to have been enabled in > device tree and will be a required component for binding. The DSI host > controller will be waiting on the DSI peripheral driver to call > mipi_dsi_attach, which then calls component_add. If the panel or panel > regulator isn't present, then that never happens if the panel isn't > present, so vc4 won't bind. > It is a little ugly in that you lose the whole DRM card, but that is > how I understand DRM is generally set up to work for DSI or similar > display interfaces. > >> ------------------------------------- >> >> Where did the new timings come from? >> >> ------------------------------------- >> My platform dphy tx hardware has certain limitations. >> Only supports integer multiples of 10M bitrate: >> such as 160M ,170M, 180M,190M,...1G(max) >> >> as common dphy bitrate = pixclock*bpp/lanes. >> This value cannot match successfully in most cases. >> >> so in order to match bitrate , I choose a bitrate value around pixclock*bpp/lanes, >> Prevent overflow and underflow by fine-tuning the timing parameters:-( >> that will make the new timming value. > > That isn't really a function of the panel then. > > All DRM bridges have the option to define a mode_fixup in > drm_bridge_funcs, and that gives you the option to adjust the timings > as required. > > vc4 has a similar constraint in that the PHY only has an integer > divider from a 2 or 3GHz PLL. It implements mode_fixup to compute the > next highest pixel clock, and then adjusts the horizontal front porch > to keep the same line timing. See > https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/vc4/vc4_dsi.c#L825 > I see I never thought that mode fixup is used to do this. This would be a correct way to modify its timming parameters thanks you Dave > Dave > >> > >> >> Btw there are already DT overlays in mainline which seems to use the >> >> Raspberry Pi 7inch panel (without touch function yet) [2]. >> >> >> >> [1] - https://github.com/lategoodbye/rpi-zero/commits/v6.7-7inch-ts >> >> [2] - >> >> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx-0x-rpidsi.dtso?h=v6.6.2&id=6b4da1354fd81adace0cda448c77d8f2a47d8474 >> >> >> >> > >> >> > Shengyang Chen (2): >> >> > dt-bindings: display: panel: raspberrypi: Add compatible property for >> >> > waveshare 7inch touchscreen panel >> >> > gpu: drm: panel: raspberrypi: add new display mode and new probing >> >> > process >> >> > >> >> > .../panel/raspberrypi,7inch-touchscreen.yaml | 4 +- >> >> > .../drm/panel/panel-raspberrypi-touchscreen.c | 99 ++++++++++++++++--- >> >> > 2 files changed, 91 insertions(+), 12 deletions(-) >> >> > >> >>