18c2ecf20Sopenharmony_ciSTMicroelectronics stih4xx platforms
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci- sti-vtg: video timing generator
48c2ecf20Sopenharmony_ci  Required properties:
58c2ecf20Sopenharmony_ci  - compatible: "st,vtg"
68c2ecf20Sopenharmony_ci  - reg: Physical base address of the IP registers and length of memory mapped region.
78c2ecf20Sopenharmony_ci  Optional properties:
88c2ecf20Sopenharmony_ci  - interrupts : VTG interrupt number to the CPU.
98c2ecf20Sopenharmony_ci  - st,slave: phandle on a slave vtg
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci- sti-vtac: video timing advanced inter dye communication Rx and TX
128c2ecf20Sopenharmony_ci  Required properties:
138c2ecf20Sopenharmony_ci  - compatible: "st,vtac-main" or "st,vtac-aux"
148c2ecf20Sopenharmony_ci  - reg: Physical base address of the IP registers and length of memory mapped region.
158c2ecf20Sopenharmony_ci  - clocks: from common clock binding: handle hardware IP needed clocks, the
168c2ecf20Sopenharmony_ci    number of clocks may depend of the SoC type.
178c2ecf20Sopenharmony_ci    See ../clocks/clock-bindings.txt for details.
188c2ecf20Sopenharmony_ci  - clock-names: names of the clocks listed in clocks property in the same
198c2ecf20Sopenharmony_ci    order.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci- sti-display-subsystem: Master device for DRM sub-components
228c2ecf20Sopenharmony_ci  This device must be the parent of all the sub-components and is responsible
238c2ecf20Sopenharmony_ci  of bind them.
248c2ecf20Sopenharmony_ci  Required properties:
258c2ecf20Sopenharmony_ci  - compatible: "st,sti-display-subsystem"
268c2ecf20Sopenharmony_ci  - ranges: to allow probing of subdevices
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci- sti-compositor: frame compositor engine
298c2ecf20Sopenharmony_ci  must be a child of sti-display-subsystem
308c2ecf20Sopenharmony_ci  Required properties:
318c2ecf20Sopenharmony_ci  - compatible: "st,stih<chip>-compositor"
328c2ecf20Sopenharmony_ci  - reg: Physical base address of the IP registers and length of memory mapped region.
338c2ecf20Sopenharmony_ci  - clocks: from common clock binding: handle hardware IP needed clocks, the
348c2ecf20Sopenharmony_ci    number of clocks may depend of the SoC type.
358c2ecf20Sopenharmony_ci    See ../clocks/clock-bindings.txt for details.
368c2ecf20Sopenharmony_ci  - clock-names: names of the clocks listed in clocks property in the same
378c2ecf20Sopenharmony_ci    order.
388c2ecf20Sopenharmony_ci  - resets: resets to be used by the device
398c2ecf20Sopenharmony_ci    See ../reset/reset.txt for details.
408c2ecf20Sopenharmony_ci  - reset-names: names of the resets listed in resets property in the same
418c2ecf20Sopenharmony_ci    order.
428c2ecf20Sopenharmony_ci  - st,vtg: phandle(s) on vtg device (main and aux) nodes.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci- sti-tvout: video out hardware block
458c2ecf20Sopenharmony_ci  must be a child of sti-display-subsystem
468c2ecf20Sopenharmony_ci  Required properties:
478c2ecf20Sopenharmony_ci  - compatible: "st,stih<chip>-tvout"
488c2ecf20Sopenharmony_ci  - reg: Physical base address of the IP registers and length of memory mapped region.
498c2ecf20Sopenharmony_ci  - reg-names: names of the mapped memory regions listed in regs property in
508c2ecf20Sopenharmony_ci    the same order.
518c2ecf20Sopenharmony_ci  - resets: resets to be used by the device
528c2ecf20Sopenharmony_ci    See ../reset/reset.txt for details.
538c2ecf20Sopenharmony_ci  - reset-names: names of the resets listed in resets property in the same
548c2ecf20Sopenharmony_ci    order.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci- sti-hdmi: hdmi output block
578c2ecf20Sopenharmony_ci  must be a child of sti-display-subsystem
588c2ecf20Sopenharmony_ci  Required properties:
598c2ecf20Sopenharmony_ci  - compatible: "st,stih<chip>-hdmi";
608c2ecf20Sopenharmony_ci  - reg: Physical base address of the IP registers and length of memory mapped region.
618c2ecf20Sopenharmony_ci  - reg-names: names of the mapped memory regions listed in regs property in
628c2ecf20Sopenharmony_ci    the same order.
638c2ecf20Sopenharmony_ci  - interrupts : HDMI interrupt number to the CPU.
648c2ecf20Sopenharmony_ci  - interrupt-names: names of the interrupts listed in interrupts property in
658c2ecf20Sopenharmony_ci    the same order
668c2ecf20Sopenharmony_ci  - clocks: from common clock binding: handle hardware IP needed clocks, the
678c2ecf20Sopenharmony_ci    number of clocks may depend of the SoC type.
688c2ecf20Sopenharmony_ci  - clock-names: names of the clocks listed in clocks property in the same
698c2ecf20Sopenharmony_ci    order.
708c2ecf20Sopenharmony_ci  - ddc: phandle of an I2C controller used for DDC EDID probing
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_cisti-hda:
738c2ecf20Sopenharmony_ci  Required properties:
748c2ecf20Sopenharmony_ci  must be a child of sti-display-subsystem
758c2ecf20Sopenharmony_ci  - compatible: "st,stih<chip>-hda"
768c2ecf20Sopenharmony_ci  - reg: Physical base address of the IP registers and length of memory mapped region.
778c2ecf20Sopenharmony_ci  - reg-names: names of the mapped memory regions listed in regs property in
788c2ecf20Sopenharmony_ci    the same order.
798c2ecf20Sopenharmony_ci  - clocks: from common clock binding: handle hardware IP needed clocks, the
808c2ecf20Sopenharmony_ci    number of clocks may depend of the SoC type.
818c2ecf20Sopenharmony_ci    See ../clocks/clock-bindings.txt for details.
828c2ecf20Sopenharmony_ci  - clock-names: names of the clocks listed in clocks property in the same
838c2ecf20Sopenharmony_ci    order.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_cisti-dvo:
868c2ecf20Sopenharmony_ci  Required properties:
878c2ecf20Sopenharmony_ci  must be a child of sti-display-subsystem
888c2ecf20Sopenharmony_ci  - compatible: "st,stih<chip>-dvo"
898c2ecf20Sopenharmony_ci  - reg: Physical base address of the IP registers and length of memory mapped region.
908c2ecf20Sopenharmony_ci  - reg-names: names of the mapped memory regions listed in regs property in
918c2ecf20Sopenharmony_ci    the same order.
928c2ecf20Sopenharmony_ci  - clocks: from common clock binding: handle hardware IP needed clocks, the
938c2ecf20Sopenharmony_ci    number of clocks may depend of the SoC type.
948c2ecf20Sopenharmony_ci    See ../clocks/clock-bindings.txt for details.
958c2ecf20Sopenharmony_ci  - clock-names: names of the clocks listed in clocks property in the same
968c2ecf20Sopenharmony_ci    order.
978c2ecf20Sopenharmony_ci  - pinctrl-0: pin control handle
988c2ecf20Sopenharmony_ci  - pinctrl-names: names of the pin control states to use
998c2ecf20Sopenharmony_ci  - sti,panel: phandle of the panel connected to the DVO output
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_cisti-hqvdp:
1028c2ecf20Sopenharmony_ci  must be a child of sti-display-subsystem
1038c2ecf20Sopenharmony_ci  Required properties:
1048c2ecf20Sopenharmony_ci  - compatible: "st,stih<chip>-hqvdp"
1058c2ecf20Sopenharmony_ci  - reg: Physical base address of the IP registers and length of memory mapped region.
1068c2ecf20Sopenharmony_ci  - clocks: from common clock binding: handle hardware IP needed clocks, the
1078c2ecf20Sopenharmony_ci    number of clocks may depend of the SoC type.
1088c2ecf20Sopenharmony_ci    See ../clocks/clock-bindings.txt for details.
1098c2ecf20Sopenharmony_ci  - clock-names: names of the clocks listed in clocks property in the same
1108c2ecf20Sopenharmony_ci    order.
1118c2ecf20Sopenharmony_ci  - resets: resets to be used by the device
1128c2ecf20Sopenharmony_ci    See ../reset/reset.txt for details.
1138c2ecf20Sopenharmony_ci  - reset-names: names of the resets listed in resets property in the same
1148c2ecf20Sopenharmony_ci    order.
1158c2ecf20Sopenharmony_ci  - st,vtg: phandle on vtg main device node.
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ciExample:
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci/ {
1208c2ecf20Sopenharmony_ci	...
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci	vtg_main_slave: sti-vtg-main-slave@fe85a800 {
1238c2ecf20Sopenharmony_ci		compatible	= "st,vtg";
1248c2ecf20Sopenharmony_ci		reg		= <0xfe85A800 0x300>;
1258c2ecf20Sopenharmony_ci		interrupts	= <GIC_SPI 175 IRQ_TYPE_NONE>;
1268c2ecf20Sopenharmony_ci	};
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci	vtg_main: sti-vtg-main-master@fd348000 {
1298c2ecf20Sopenharmony_ci		compatible	= "st,vtg";
1308c2ecf20Sopenharmony_ci		reg		= <0xfd348000 0x400>;
1318c2ecf20Sopenharmony_ci		st,slave	= <&vtg_main_slave>;
1328c2ecf20Sopenharmony_ci	};
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ci	vtg_aux_slave: sti-vtg-aux-slave@fd348400 {
1358c2ecf20Sopenharmony_ci		compatible	= "st,vtg";
1368c2ecf20Sopenharmony_ci		reg		= <0xfe858200 0x300>;
1378c2ecf20Sopenharmony_ci		interrupts	= <GIC_SPI 176 IRQ_TYPE_NONE>;
1388c2ecf20Sopenharmony_ci	};
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ci	vtg_aux: sti-vtg-aux-master@fd348400 {
1418c2ecf20Sopenharmony_ci		compatible	= "st,vtg";
1428c2ecf20Sopenharmony_ci		reg		= <0xfd348400 0x400>;
1438c2ecf20Sopenharmony_ci		st,slave	= <&vtg_aux_slave>;
1448c2ecf20Sopenharmony_ci	};
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci	sti-vtac-rx-main@fee82800 {
1488c2ecf20Sopenharmony_ci		compatible	= "st,vtac-main";
1498c2ecf20Sopenharmony_ci		reg		= <0xfee82800 0x200>;
1508c2ecf20Sopenharmony_ci		clock-names     = "vtac";
1518c2ecf20Sopenharmony_ci		clocks          = <&clk_m_a2_div0 CLK_M_VTAC_MAIN_PHY>;
1528c2ecf20Sopenharmony_ci	};
1538c2ecf20Sopenharmony_ci
1548c2ecf20Sopenharmony_ci	sti-vtac-rx-aux@fee82a00 {
1558c2ecf20Sopenharmony_ci		compatible	= "st,vtac-aux";
1568c2ecf20Sopenharmony_ci		reg		= <0xfee82a00 0x200>;
1578c2ecf20Sopenharmony_ci		clock-names     = "vtac";
1588c2ecf20Sopenharmony_ci		clocks          = <&clk_m_a2_div0 CLK_M_VTAC_AUX_PHY>;
1598c2ecf20Sopenharmony_ci	};
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci	sti-vtac-tx-main@fd349000 {
1628c2ecf20Sopenharmony_ci		compatible	= "st,vtac-main";
1638c2ecf20Sopenharmony_ci		reg		= <0xfd349000 0x200>, <0xfd320000 0x10000>;
1648c2ecf20Sopenharmony_ci		clock-names     = "vtac";
1658c2ecf20Sopenharmony_ci		clocks           = <&clk_s_a1_hs CLK_S_VTAC_TX_PHY>;
1668c2ecf20Sopenharmony_ci	};
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ci	sti-vtac-tx-aux@fd349200 {
1698c2ecf20Sopenharmony_ci		compatible	= "st,vtac-aux";
1708c2ecf20Sopenharmony_ci		reg		= <0xfd349200 0x200>, <0xfd320000 0x10000>;
1718c2ecf20Sopenharmony_ci		clock-names     = "vtac";
1728c2ecf20Sopenharmony_ci		clocks          = <&clk_s_a1_hs CLK_S_VTAC_TX_PHY>;
1738c2ecf20Sopenharmony_ci	};
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci	sti-display-subsystem {
1768c2ecf20Sopenharmony_ci		compatible = "st,sti-display-subsystem";
1778c2ecf20Sopenharmony_ci		ranges;
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ci		sti-compositor@fd340000 {
1808c2ecf20Sopenharmony_ci			compatible	= "st,stih416-compositor";
1818c2ecf20Sopenharmony_ci			reg		= <0xfd340000 0x1000>;
1828c2ecf20Sopenharmony_ci			clock-names	= "compo_main", "compo_aux",
1838c2ecf20Sopenharmony_ci			                  "pix_main", "pix_aux";
1848c2ecf20Sopenharmony_ci			clocks          = <&clk_m_a2_div1 CLK_M_COMPO_MAIN>, <&clk_m_a2_div1 CLK_M_COMPO_AUX>,
1858c2ecf20Sopenharmony_ci					  <&clockgen_c_vcc CLK_S_PIX_MAIN>, <&clockgen_c_vcc CLK_S_PIX_AUX>;
1868c2ecf20Sopenharmony_ci			reset-names     = "compo-main", "compo-aux";
1878c2ecf20Sopenharmony_ci			resets          = <&softreset STIH416_COMPO_M_SOFTRESET>, <&softreset STIH416_COMPO_A_SOFTRESET>;
1888c2ecf20Sopenharmony_ci			st,vtg		= <&vtg_main>, <&vtg_aux>;
1898c2ecf20Sopenharmony_ci		};
1908c2ecf20Sopenharmony_ci
1918c2ecf20Sopenharmony_ci		sti-tvout@fe000000 {
1928c2ecf20Sopenharmony_ci			compatible	= "st,stih416-tvout";
1938c2ecf20Sopenharmony_ci			reg		= <0xfe000000 0x1000>, <0xfe85a000 0x400>, <0xfe830000 0x10000>;
1948c2ecf20Sopenharmony_ci			reg-names	= "tvout-reg", "hda-reg", "syscfg";
1958c2ecf20Sopenharmony_ci			reset-names     = "tvout";
1968c2ecf20Sopenharmony_ci			resets          = <&softreset STIH416_HDTVOUT_SOFTRESET>;
1978c2ecf20Sopenharmony_ci		};
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_ci		sti-hdmi@fe85c000 {
2008c2ecf20Sopenharmony_ci			compatible	= "st,stih416-hdmi";
2018c2ecf20Sopenharmony_ci			reg		= <0xfe85c000 0x1000>, <0xfe830000 0x10000>;
2028c2ecf20Sopenharmony_ci			reg-names	= "hdmi-reg", "syscfg";
2038c2ecf20Sopenharmony_ci			interrupts	= <GIC_SPI 173 IRQ_TYPE_NONE>;
2048c2ecf20Sopenharmony_ci			interrupt-names	= "irq";
2058c2ecf20Sopenharmony_ci			clock-names	= "pix", "tmds", "phy", "audio";
2068c2ecf20Sopenharmony_ci			clocks          = <&clockgen_c_vcc CLK_S_PIX_HDMI>, <&clockgen_c_vcc CLK_S_TMDS_HDMI>, <&clockgen_c_vcc CLK_S_HDMI_REJECT_PLL>, <&clockgen_b1 CLK_S_PCM_0>;
2078c2ecf20Sopenharmony_ci		};
2088c2ecf20Sopenharmony_ci
2098c2ecf20Sopenharmony_ci		sti-hda@fe85a000 {
2108c2ecf20Sopenharmony_ci			compatible	= "st,stih416-hda";
2118c2ecf20Sopenharmony_ci			reg		= <0xfe85a000 0x400>, <0xfe83085c 0x4>;
2128c2ecf20Sopenharmony_ci			reg-names	= "hda-reg", "video-dacs-ctrl";
2138c2ecf20Sopenharmony_ci			clock-names	= "pix", "hddac";
2148c2ecf20Sopenharmony_ci			clocks          = <&clockgen_c_vcc CLK_S_PIX_HD>, <&clockgen_c_vcc CLK_S_HDDAC>;
2158c2ecf20Sopenharmony_ci		};
2168c2ecf20Sopenharmony_ci
2178c2ecf20Sopenharmony_ci		sti-dvo@8d00400 {
2188c2ecf20Sopenharmony_ci			compatible	= "st,stih407-dvo";
2198c2ecf20Sopenharmony_ci			reg		= <0x8d00400 0x200>;
2208c2ecf20Sopenharmony_ci			reg-names	= "dvo-reg";
2218c2ecf20Sopenharmony_ci			clock-names	= "dvo_pix", "dvo",
2228c2ecf20Sopenharmony_ci					  "main_parent", "aux_parent";
2238c2ecf20Sopenharmony_ci			clocks		= <&clk_s_d2_flexgen CLK_PIX_DVO>, <&clk_s_d2_flexgen CLK_DVO>,
2248c2ecf20Sopenharmony_ci					  <&clk_s_d2_quadfs 0>, <&clk_s_d2_quadfs 1>;
2258c2ecf20Sopenharmony_ci			pinctrl-names	= "default";
2268c2ecf20Sopenharmony_ci			pinctrl-0	= <&pinctrl_dvo>;
2278c2ecf20Sopenharmony_ci			sti,panel	= <&panel_dvo>;
2288c2ecf20Sopenharmony_ci		};
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_ci		sti-hqvdp@9c000000 {
2318c2ecf20Sopenharmony_ci				compatible	= "st,stih407-hqvdp";
2328c2ecf20Sopenharmony_ci				reg		= <0x9C00000 0x100000>;
2338c2ecf20Sopenharmony_ci				clock-names	= "hqvdp", "pix_main";
2348c2ecf20Sopenharmony_ci				clocks		= <&clk_s_c0_flexgen CLK_MAIN_DISP>, <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>;
2358c2ecf20Sopenharmony_ci				reset-names     = "hqvdp";
2368c2ecf20Sopenharmony_ci				resets          = <&softreset STIH407_HDQVDP_SOFTRESET>;
2378c2ecf20Sopenharmony_ci				st,vtg		= <&vtg_main>;
2388c2ecf20Sopenharmony_ci		};
2398c2ecf20Sopenharmony_ci	};
2408c2ecf20Sopenharmony_ci	...
2418c2ecf20Sopenharmony_ci};
242