From: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
To: Yannick Fertre <yannick.fertre@foss.st.com>,
Philippe Cornu <philippe.cornu@foss.st.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Christophe Roullier <christophe.roullier@foss.st.com>
Cc: <dri-devel@lists.freedesktop.org>, <devicetree@vger.kernel.org>,
<linux-stm32@st-md-mailman.stormreply.com>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>
Subject: [PATCH 00/12] Enable display support for STM32MP25
Date: Fri, 25 Jul 2025 12:03:52 +0200 [thread overview]
Message-ID: <20250725-drm-misc-next-v1-0-a59848e62cf9@foss.st.com> (raw)
This series aims to add and enable sufficient LVDS display support for
STM32MP257F-EV1 board.
LVDS is the default use case to drive a display panel on STM32MP257F-EV,
even though DSI panels will be supported in the near future.
The LTDC needs a pixel rate in sync with the bridge currently in use.
For that both DSI and LVDS bridges need to declare an internal clock and
become clock provider to the mux. The mux then selects the reference
clock for the LTDC pixel rate generation.
For now this mux is handled internally in the LTDC, while waiting for
the STM32 clock framework to merge a 'clk-mux' based on the SYSCFG.
This explains the link done in the patch [7/8] between the LVDS,
providing the reference clock for the LTDC internals.
+----------+ |\
| DSI PHY |------------->| \ +------------+
| |ck_dsi_phy | | | |
+----------+ | |--------->| LTDC |
+----------+ | |pixel_clk | |
| LVDS PHY |------------->| | +------------+
| |clk_pix_lvds | |
+----------+ | |
| |
ck_ker_ltdc ------------>| /
|/|
└- SYSCFG
Clock selection applies as follow:
- 0b00: Selects ck_dsi_phy
- 0b01: Selects clk_pix_lvds
- 0b10: Selects ck_ker_ltdc (for parallel or DSI display).
- 0b11: Reserved
The reset value of the register controlling the mux is 0b01, meaning
that the default clock assigned is the clk_pix_lvds. This causes two
things:
- In order to get basic display on the LVDS encoder, like intended,
nothing has to be done on this mux within the LTDC driver (which for now
explains the unused syscfg phandle on the LTDC node in the device-tree).
- 'pixel_clk' is dependent from 'clk_pix_lvds' because of the LTDC clock
domains. They also need to be sync to get a coherent pixel rate though
the display clock tree (which explains the LVDS phandle on the LTDC node
in the device-tree).
Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
---
Raphael Gallais-Pou (10):
dt-bindings: display: st: add new compatible to LTDC device
dt-bindings: display: st,stm32-ltdc: add access-controllers property
dt-bindings: display: st,stm32mp25-lvds: add access-controllers property
dt-bindings: display: st,stm32mp25-lvds: add power-domains property
dt-bindings: arm: stm32: add required #clock-cells property
arm64: dts: st: add ltdc support on stm32mp251
arm64: dts: st: add lvds support on stm32mp255
arm64: dts: st: add clock-cells to syscfg node on stm32mp251
arm64: dts: st: enable display support on stm32mp257f-ev1 board
arm64: dts: st: add loopback clocks on LTDC node
Yannick Fertre (2):
drm/stm: ltdc: support new hardware version for STM32MP25 SoC
drm/stm: ltdc: handle lvds pixel clock
.../bindings/arm/stm32/st,stm32-syscon.yaml | 31 ++++++---
.../devicetree/bindings/display/st,stm32-ltdc.yaml | 40 +++++++++--
.../bindings/display/st,stm32mp25-lvds.yaml | 6 ++
arch/arm64/boot/dts/st/stm32mp251.dtsi | 19 ++++++
arch/arm64/boot/dts/st/stm32mp255.dtsi | 19 +++++-
arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 79 ++++++++++++++++++++++
drivers/gpu/drm/stm/drv.c | 11 ++-
drivers/gpu/drm/stm/ltdc.c | 57 +++++++++++++++-
drivers/gpu/drm/stm/ltdc.h | 6 ++
9 files changed, 249 insertions(+), 19 deletions(-)
---
base-commit: e48123c607a0db8b9ad02f83c8c3d39918dbda06
change-id: 20250617-drm-misc-next-4af406c1c45f
Best regards,
--
Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
next reply other threads:[~2025-07-25 10:07 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-25 10:03 Raphael Gallais-Pou [this message]
2025-07-25 10:03 ` [PATCH 01/12] dt-bindings: display: st: add new compatible to LTDC device Raphael Gallais-Pou
2025-07-25 12:12 ` Rob Herring (Arm)
2025-07-25 19:49 ` Rob Herring
2025-07-28 10:35 ` Raphael Gallais-Pou
2025-07-25 10:03 ` [PATCH 02/12] dt-bindings: display: st,stm32-ltdc: add access-controllers property Raphael Gallais-Pou
2025-07-25 12:12 ` Rob Herring (Arm)
2025-07-25 19:50 ` Rob Herring (Arm)
2025-07-25 10:03 ` [PATCH 03/12] dt-bindings: display: st,stm32mp25-lvds: " Raphael Gallais-Pou
2025-07-29 16:31 ` Rob Herring
2025-07-25 10:03 ` [PATCH 04/12] dt-bindings: display: st,stm32mp25-lvds: add power-domains property Raphael Gallais-Pou
2025-07-29 16:31 ` Rob Herring (Arm)
2025-07-25 10:03 ` [PATCH 05/12] dt-bindings: arm: stm32: add required #clock-cells property Raphael Gallais-Pou
2025-07-29 16:32 ` Rob Herring (Arm)
2025-07-25 10:03 ` [PATCH 06/12] drm/stm: ltdc: support new hardware version for STM32MP25 SoC Raphael Gallais-Pou
2025-07-25 10:03 ` [PATCH 07/12] drm/stm: ltdc: handle lvds pixel clock Raphael Gallais-Pou
2025-07-25 10:04 ` [PATCH 08/12] arm64: dts: st: add ltdc support on stm32mp251 Raphael Gallais-Pou
2025-07-25 10:04 ` [PATCH 09/12] arm64: dts: st: add lvds support on stm32mp255 Raphael Gallais-Pou
2025-07-25 11:08 ` [Linux-stm32] " Clement LE GOFFIC
2025-07-25 11:13 ` Clement LE GOFFIC
2025-07-25 14:52 ` Raphael Gallais-Pou
2025-07-25 10:04 ` [PATCH 10/12] arm64: dts: st: add clock-cells to syscfg node on stm32mp251 Raphael Gallais-Pou
2025-07-25 10:04 ` [PATCH 11/12] arm64: dts: st: enable display support on stm32mp257f-ev1 board Raphael Gallais-Pou
2025-07-25 10:04 ` [PATCH 12/12] arm64: dts: st: add loopback clocks on LTDC node Raphael Gallais-Pou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250725-drm-misc-next-v1-0-a59848e62cf9@foss.st.com \
--to=raphael.gallais-pou@foss.st.com \
--cc=airlied@gmail.com \
--cc=alexandre.torgue@foss.st.com \
--cc=catalin.marinas@arm.com \
--cc=christophe.roullier@foss.st.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=mripard@kernel.org \
--cc=philippe.cornu@foss.st.com \
--cc=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
--cc=will@kernel.org \
--cc=yannick.fertre@foss.st.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).