[PATCH 5/5] arm64: dts: st: add LTDC pixel clock controller on stm32mp25

From: Gabriel Fernandez

Date: Tue Nov 10 2026 - 05:50:45 EST


Describe the LTDC pixel clock multiplexer of the SYSCFG as a
clock-controller sub-node and use it as the LTDC "ref" clock instead of
the SYSCFG node itself.

Only the LTDC kernel clock is available as parent on STM32MP251; the
LVDS and DSI clocks are added on STM32MP255.

Signed-off-by: Gabriel Fernandez <gabriel.fernandez@xxxxxxxxxxx>
---
arch/arm64/boot/dts/st/stm32mp251.dtsi | 8 ++++++++
arch/arm64/boot/dts/st/stm32mp255.dtsi | 8 +++++++-
2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/st/stm32mp251.dtsi b/arch/arm64/boot/dts/st/stm32mp251.dtsi
index dac3d2d23ff0..eec976e28dbd 100644
--- a/arch/arm64/boot/dts/st/stm32mp251.dtsi
+++ b/arch/arm64/boot/dts/st/stm32mp251.dtsi
@@ -4,6 +4,7 @@
* Author: Alexandre Torgue <alexandre.torgue@xxxxxxxxxxx> for STMicroelectronics.
*/
#include <dt-bindings/clock/st,stm32mp25-rcc.h>
+#include <dt-bindings/clock/st,stm32mp25-syscfg-clk.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset/st,stm32mp25-rcc.h>
#include <dt-bindings/regulator/st,stm32mp25-regulator.h>
@@ -2080,6 +2081,13 @@ syscfg: syscon@44230000 {
#address-cells = <1>;
#size-cells = <1>;

+ syscfg_clk: clock-controller {
+ compatible = "st,stm32mp25-syscfg-clk";
+ #clock-cells = <1>;
+ clocks = <&rcc CK_KER_LTDC>;
+ clock-names = "ltdc";
+ };
+
usb2_phy1: phy@2400 {
compatible = "st,stm32mp25-usb2phy1";
reg = <0x2400 0x24>;
diff --git a/arch/arm64/boot/dts/st/stm32mp255.dtsi b/arch/arm64/boot/dts/st/stm32mp255.dtsi
index 7a598f53a2a0..08cbc383af20 100644
--- a/arch/arm64/boot/dts/st/stm32mp255.dtsi
+++ b/arch/arm64/boot/dts/st/stm32mp255.dtsi
@@ -7,10 +7,16 @@

&ltdc {
compatible = "st,stm32mp255-ltdc";
- clocks = <&clk_flexgen_27_fixed>, <&rcc CK_BUS_LTDC>, <&syscfg>, <&lvds>;
+ clocks = <&clk_flexgen_27_fixed>, <&rcc CK_BUS_LTDC>,
+ <&syscfg_clk CK_SYSCFG_PIX_LTDC>, <&lvds>;
clock-names = "lcd", "bus", "ref", "lvds";
};

+&syscfg_clk {
+ clocks = <&rcc CK_KER_LTDC>, <&lvds>, <&clk_dsi_txbyte>;
+ clock-names = "ltdc", "lvds", "dsi";
+};
+
&rifsc {
lvds: lvds@48060000 {
compatible = "st,stm32mp255-lvds", "st,stm32mp25-lvds";

--
2.43.0