[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250912143401.GC51602@gnbcxd0016.gnb.st.com>
Date: Fri, 12 Sep 2025 16:34:01 +0200
From: Alain Volmat <alain.volmat@...s.st.com>
To: Raphael Gallais-Pou <rgallaispou@...il.com>
CC: Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard
<mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie
<airlied@...il.com>, Simona Vetter <simona@...ll.ch>,
Patrice Chotard
<patrice.chotard@...s.st.com>,
Rob Herring <robh@...nel.org>,
"Krzysztof
Kozlowski" <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, <dri-devel@...ts.freedesktop.org>,
<linux-kernel@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>,
<devicetree@...r.kernel.org>
Subject: Re: [PATCH 3/4] ARM: dts: sti: extract display subsystem out of soc
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@...il.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@...3c00 {
> compatible = "st,st-ohci-300x";
> @@ -99,153 +134,178 @@ ehci1: usb@...3e00 {
> status = "disabled";
> };
>
> - sti-display-subsystem@0 {
> - compatible = "st,sti-display-subsystem";
> + compositor: display-controller@...1000 {
> + 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@...8000 {
> + 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@...1000 {
> - 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@...8000 {
> - 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@...4000 {
> - 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@...4000 {
> + 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@...2000 {
> - 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@...2000 {
> + 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@...0000 {
> - 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@...0000 {
> + 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@...0000 {
> compatible = "st,stih407-bdisp";
> reg = <0x9f10000 0x1000>;
>
> --
> 2.50.1
>
Acked-by: Alain Volmat <alain.volmat@...s.st.com>
Best regards
Alain
Powered by blists - more mailing lists