From: Alain Volmat <alain.volmat@foss.st.com>
To: Raphael Gallais-Pou <rgallaispou@gmail.com>
Cc: 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>,
Patrice Chotard <patrice.chotard@foss.st.com>,
Rob Herring <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
<dri-devel@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<devicetree@vger.kernel.org>
Subject: Re: [PATCH 3/4] ARM: dts: sti: extract display subsystem out of soc
Date: Fri, 12 Sep 2025 16:34:01 +0200 [thread overview]
Message-ID: <20250912143401.GC51602@gnbcxd0016.gnb.st.com> (raw)
In-Reply-To: <20250717-sti-rework-v1-3-46d516fb1ebb@gmail.com>
Hi Raphael,
thanks for this patch.
On Thu, Jul 17, 2025 at 09:15:34PM +0200, Raphael Gallais-Pou wrote:
> The display subsystem represent how IPs are interacting together and
> have nothing to do within the SoC node.
>
> Extract it from the SoC node and let IPs nodes in the Soc node.
>
> Several nodes did not use conventional name:
> * sti-display-subsystem -> display-subsystem
> * sti-controller -> display-controller
> * sti-tvout -> encoder
> * sti-hda -> analog
> * sti-hqvdp -> plane
>
> Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
> ---
> arch/arm/boot/dts/st/stih410.dtsi | 316 +++++++++++++++++++++++---------------
> 1 file changed, 188 insertions(+), 128 deletions(-)
>
> diff --git a/arch/arm/boot/dts/st/stih410.dtsi b/arch/arm/boot/dts/st/stih410.dtsi
> index d56343f44fda4e9e1de2e5efc86e2d984bad14b4..47d66d7eb07a3d73d98b3e21d62b2253aa1171e4 100644
> --- a/arch/arm/boot/dts/st/stih410.dtsi
> +++ b/arch/arm/boot/dts/st/stih410.dtsi
> @@ -34,6 +34,41 @@ usb2_picophy2: phy3 {
> status = "disabled";
> };
>
> + display-subsystem {
> + compatible = "st,sti-display-subsystem";
> + ports = <&compositor>, <&hqvdp>, <&tvout>, <&sti_hdmi>;
> +
> + assigned-clocks = <&clk_s_d2_quadfs 0>,
> + <&clk_s_d2_quadfs 1>,
> + <&clk_s_c0_pll1 0>,
> + <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> + <&clk_s_c0_flexgen CLK_MAIN_DISP>,
> + <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
> + <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
> + <&clk_s_d2_flexgen CLK_PIX_GDP1>,
> + <&clk_s_d2_flexgen CLK_PIX_GDP2>,
> + <&clk_s_d2_flexgen CLK_PIX_GDP3>,
> + <&clk_s_d2_flexgen CLK_PIX_GDP4>;
> +
> + assigned-clock-parents = <0>,
> + <0>,
> + <0>,
> + <&clk_s_c0_pll1 0>,
> + <&clk_s_c0_pll1 0>,
> + <&clk_s_d2_quadfs 0>,
> + <&clk_s_d2_quadfs 1>,
> + <&clk_s_d2_quadfs 0>,
> + <&clk_s_d2_quadfs 0>,
> + <&clk_s_d2_quadfs 0>,
> + <&clk_s_d2_quadfs 0>;
> +
> + assigned-clock-rates = <297000000>,
> + <297000000>,
> + <0>,
> + <400000000>,
> + <400000000>;
> + };
> +
> soc {
> ohci0: usb@9a03c00 {
> compatible = "st,st-ohci-300x";
> @@ -99,153 +134,178 @@ ehci1: usb@9a83e00 {
> status = "disabled";
> };
>
> - sti-display-subsystem@0 {
> - compatible = "st,sti-display-subsystem";
> + compositor: display-controller@9d11000 {
> + compatible = "st,stih407-compositor";
> + reg = <0x9d11000 0x1000>;
> +
> + clock-names = "compo_main",
> + "compo_aux",
> + "pix_main",
> + "pix_aux",
> + "pix_gdp1",
> + "pix_gdp2",
> + "pix_gdp3",
> + "pix_gdp4",
> + "main_parent",
> + "aux_parent";
> +
> + clocks = <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> + <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> + <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
> + <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
> + <&clk_s_d2_flexgen CLK_PIX_GDP1>,
> + <&clk_s_d2_flexgen CLK_PIX_GDP2>,
> + <&clk_s_d2_flexgen CLK_PIX_GDP3>,
> + <&clk_s_d2_flexgen CLK_PIX_GDP4>,
> + <&clk_s_d2_quadfs 0>,
> + <&clk_s_d2_quadfs 1>;
> +
> + reset-names = "compo-main", "compo-aux";
> + resets = <&softreset STIH407_COMPO_SOFTRESET>,
> + <&softreset STIH407_COMPO_SOFTRESET>;
> + st,vtg = <&vtg_main>, <&vtg_aux>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + compo_main_out: endpoint {
> + remote-endpoint = <&tvout_in0>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + compo_aux_out: endpoint {
> + remote-endpoint = <&tvout_in1>;
> + };
> + };
> + };
> + };
> +
> + tvout: encoder@8d08000 {
> + compatible = "st,stih407-tvout";
> + reg = <0x8d08000 0x1000>;
> + reg-names = "tvout-reg";
> + reset-names = "tvout";
> + resets = <&softreset STIH407_HDTVOUT_SOFTRESET>;
> #address-cells = <1>;
> #size-cells = <1>;
> + assigned-clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
> + <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
> + <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
> + <&clk_s_d0_flexgen CLK_PCM_0>,
> + <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
> + <&clk_s_d2_flexgen CLK_HDDAC>;
>
> - reg = <0 0>;
> - assigned-clocks = <&clk_s_d2_quadfs 0>,
> - <&clk_s_d2_quadfs 1>,
> - <&clk_s_c0_pll1 0>,
> - <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> - <&clk_s_c0_flexgen CLK_MAIN_DISP>,
> - <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
> - <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
> - <&clk_s_d2_flexgen CLK_PIX_GDP1>,
> - <&clk_s_d2_flexgen CLK_PIX_GDP2>,
> - <&clk_s_d2_flexgen CLK_PIX_GDP3>,
> - <&clk_s_d2_flexgen CLK_PIX_GDP4>;
> -
> - assigned-clock-parents = <0>,
> - <0>,
> - <0>,
> - <&clk_s_c0_pll1 0>,
> - <&clk_s_c0_pll1 0>,
> - <&clk_s_d2_quadfs 0>,
> - <&clk_s_d2_quadfs 1>,
> - <&clk_s_d2_quadfs 0>,
> + assigned-clock-parents = <&clk_s_d2_quadfs 0>,
> + <&clk_tmdsout_hdmi>,
> <&clk_s_d2_quadfs 0>,
> + <&clk_s_d0_quadfs 0>,
> <&clk_s_d2_quadfs 0>,
> <&clk_s_d2_quadfs 0>;
>
> - assigned-clock-rates = <297000000>,
> - <297000000>,
> - <0>,
> - <400000000>,
> - <400000000>;
> -
> - ranges;
> -
> - sti-compositor@9d11000 {
> - compatible = "st,stih407-compositor";
> - reg = <0x9d11000 0x1000>;
> -
> - clock-names = "compo_main",
> - "compo_aux",
> - "pix_main",
> - "pix_aux",
> - "pix_gdp1",
> - "pix_gdp2",
> - "pix_gdp3",
> - "pix_gdp4",
> - "main_parent",
> - "aux_parent";
> -
> - clocks = <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> - <&clk_s_c0_flexgen CLK_COMPO_DVP>,
> - <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
> - <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
> - <&clk_s_d2_flexgen CLK_PIX_GDP1>,
> - <&clk_s_d2_flexgen CLK_PIX_GDP2>,
> - <&clk_s_d2_flexgen CLK_PIX_GDP3>,
> - <&clk_s_d2_flexgen CLK_PIX_GDP4>,
> - <&clk_s_d2_quadfs 0>,
> - <&clk_s_d2_quadfs 1>;
> -
> - reset-names = "compo-main", "compo-aux";
> - resets = <&softreset STIH407_COMPO_SOFTRESET>,
> - <&softreset STIH407_COMPO_SOFTRESET>;
> - st,vtg = <&vtg_main>, <&vtg_aux>;
> - };
> -
> - sti-tvout@8d08000 {
> - compatible = "st,stih407-tvout";
> - reg = <0x8d08000 0x1000>;
> - reg-names = "tvout-reg";
> - reset-names = "tvout";
> - resets = <&softreset STIH407_HDTVOUT_SOFTRESET>;
> + ports {
> #address-cells = <1>;
> - #size-cells = <1>;
> - assigned-clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
> - <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
> - <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
> - <&clk_s_d0_flexgen CLK_PCM_0>,
> - <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
> - <&clk_s_d2_flexgen CLK_HDDAC>;
> + #size-cells = <0>;
>
> - assigned-clock-parents = <&clk_s_d2_quadfs 0>,
> - <&clk_tmdsout_hdmi>,
> - <&clk_s_d2_quadfs 0>,
> - <&clk_s_d0_quadfs 0>,
> - <&clk_s_d2_quadfs 0>,
> - <&clk_s_d2_quadfs 0>;
> + port@0 {
> + reg = <0>;
> + tvout_in0: endpoint {
> + remote-endpoint = <&compo_main_out>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + tvout_in1: endpoint {
> + remote-endpoint = <&compo_aux_out>;
> + };
> + };
> +
> + port@2 {
> + reg = <2>;
> + tvout_out0: endpoint {
> + remote-endpoint = <&hdmi_in>;
> + };
> + };
> +
> + port@3 {
> + reg = <3>;
> + tvout_out1: endpoint {
> + remote-endpoint = <&hda_in>;
> + };
> + };
> };
> + };
>
> - sti_hdmi: sti-hdmi@8d04000 {
> - compatible = "st,stih407-hdmi";
> - reg = <0x8d04000 0x1000>;
> - reg-names = "hdmi-reg";
> - #sound-dai-cells = <0>;
> - interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
> - interrupt-names = "irq";
> - clock-names = "pix",
> - "tmds",
> - "phy",
> - "audio",
> - "main_parent",
> - "aux_parent";
> + sti_hdmi: hdmi@8d04000 {
> + compatible = "st,stih407-hdmi";
> + reg = <0x8d04000 0x1000>;
> + reg-names = "hdmi-reg";
> + #sound-dai-cells = <0>;
> + interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "irq";
> + clock-names = "pix",
> + "tmds",
> + "phy",
> + "audio",
> + "main_parent",
> + "aux_parent";
>
> - clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
> - <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
> - <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
> - <&clk_s_d0_flexgen CLK_PCM_0>,
> - <&clk_s_d2_quadfs 0>,
> - <&clk_s_d2_quadfs 1>;
> + clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
> + <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
> + <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
> + <&clk_s_d0_flexgen CLK_PCM_0>,
> + <&clk_s_d2_quadfs 0>,
> + <&clk_s_d2_quadfs 1>;
>
> - hdmi,hpd-gpio = <&pio5 3 GPIO_ACTIVE_LOW>;
> - reset-names = "hdmi";
> - resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>;
> - ddc = <&hdmiddc>;
> + hdmi,hpd-gpio = <&pio5 3 GPIO_ACTIVE_LOW>;
> + reset-names = "hdmi";
> + resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>;
> + ddc = <&hdmiddc>;
> +
> + port {
> + hdmi_in: endpoint {
> + remote-endpoint = <&tvout_out0>;
> + };
> };
> + };
>
> - sti-hda@8d02000 {
> - compatible = "st,stih407-hda";
> - status = "disabled";
> - reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
> - reg-names = "hda-reg", "video-dacs-ctrl";
> - clock-names = "pix",
> - "hddac",
> - "main_parent",
> - "aux_parent";
> - clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
> - <&clk_s_d2_flexgen CLK_HDDAC>,
> - <&clk_s_d2_quadfs 0>,
> - <&clk_s_d2_quadfs 1>;
> - };
> + analog@8d02000 {
> + compatible = "st,stih407-hda";
> + status = "disabled";
> + reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
> + reg-names = "hda-reg", "video-dacs-ctrl";
> + clock-names = "pix",
> + "hddac",
> + "main_parent",
> + "aux_parent";
> + clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
> + <&clk_s_d2_flexgen CLK_HDDAC>,
> + <&clk_s_d2_quadfs 0>,
> + <&clk_s_d2_quadfs 1>;
>
> - sti-hqvdp@9c00000 {
> - compatible = "st,stih407-hqvdp";
> - reg = <0x9C00000 0x100000>;
> - clock-names = "hqvdp", "pix_main";
> - clocks = <&clk_s_c0_flexgen CLK_MAIN_DISP>,
> - <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>;
> - reset-names = "hqvdp";
> - resets = <&softreset STIH407_HDQVDP_SOFTRESET>;
> - st,vtg = <&vtg_main>;
> + port {
> + hda_in: endpoint {
> + remote-endpoint = <&tvout_out1>;
> + };
> };
> };
>
> + hqvdp: plane@9c00000 {
> + compatible = "st,stih407-hqvdp";
> + reg = <0x9C00000 0x100000>;
> + clock-names = "hqvdp", "pix_main";
> + clocks = <&clk_s_c0_flexgen CLK_MAIN_DISP>,
> + <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>;
> + reset-names = "hqvdp";
> + resets = <&softreset STIH407_HDQVDP_SOFTRESET>;
> + st,vtg = <&vtg_main>;
> + };
> +
> bdisp0:bdisp@9f10000 {
> compatible = "st,stih407-bdisp";
> reg = <0x9f10000 0x1000>;
>
> --
> 2.50.1
>
Acked-by: Alain Volmat <alain.volmat@foss.st.com>
Best regards
Alain
next prev parent reply other threads:[~2025-09-12 14:34 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-17 19:15 [PATCH 0/4] STi device-tree display subsystem rework Raphael Gallais-Pou
2025-07-17 19:15 ` [PATCH 1/4] drm/sti: check dma_set_coherent_mask return value Raphael Gallais-Pou
2025-09-12 14:28 ` Alain Volmat
2025-07-17 19:15 ` [PATCH 2/4] drm/sti: make use of drm_of_component_probe Raphael Gallais-Pou
2025-09-12 14:31 ` Alain Volmat
2025-07-17 19:15 ` [PATCH 3/4] ARM: dts: sti: extract display subsystem out of soc Raphael Gallais-Pou
2025-09-12 14:34 ` Alain Volmat [this message]
2025-10-30 7:42 ` Patrice CHOTARD
2025-07-17 19:15 ` [PATCH 4/4] ARM: dts: sti: remove useless cells fields Raphael Gallais-Pou
2025-09-12 14:34 ` Alain Volmat
2025-10-30 7:43 ` Patrice CHOTARD
2025-07-20 23:06 ` [PATCH 0/4] STi device-tree display subsystem rework Rob Herring (Arm)
2025-09-16 22:03 ` Raphaël Gallais-Pou
2025-09-17 6:05 ` Patrice CHOTARD
2025-09-23 9:12 ` Alain Volmat
2025-10-30 12:24 ` 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=20250912143401.GC51602@gnbcxd0016.gnb.st.com \
--to=alain.volmat@foss.st.com \
--cc=airlied@gmail.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=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=patrice.chotard@foss.st.com \
--cc=rgallaispou@gmail.com \
--cc=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
/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