xref: /freebsd/sys/contrib/device-tree/Bindings/display/st,stih4xx.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotSTMicroelectronics stih4xx platforms
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel Vadot- sti-vtg: video timing generator
4*c66ec88fSEmmanuel Vadot  Required properties:
5*c66ec88fSEmmanuel Vadot  - compatible: "st,vtg"
6*c66ec88fSEmmanuel Vadot  - reg: Physical base address of the IP registers and length of memory mapped region.
7*c66ec88fSEmmanuel Vadot  Optional properties:
8*c66ec88fSEmmanuel Vadot  - interrupts : VTG interrupt number to the CPU.
9*c66ec88fSEmmanuel Vadot  - st,slave: phandle on a slave vtg
10*c66ec88fSEmmanuel Vadot
11*c66ec88fSEmmanuel Vadot- sti-vtac: video timing advanced inter dye communication Rx and TX
12*c66ec88fSEmmanuel Vadot  Required properties:
13*c66ec88fSEmmanuel Vadot  - compatible: "st,vtac-main" or "st,vtac-aux"
14*c66ec88fSEmmanuel Vadot  - reg: Physical base address of the IP registers and length of memory mapped region.
15*c66ec88fSEmmanuel Vadot  - clocks: from common clock binding: handle hardware IP needed clocks, the
16*c66ec88fSEmmanuel Vadot    number of clocks may depend of the SoC type.
17*c66ec88fSEmmanuel Vadot    See ../clocks/clock-bindings.txt for details.
18*c66ec88fSEmmanuel Vadot  - clock-names: names of the clocks listed in clocks property in the same
19*c66ec88fSEmmanuel Vadot    order.
20*c66ec88fSEmmanuel Vadot
21*c66ec88fSEmmanuel Vadot- sti-display-subsystem: Master device for DRM sub-components
22*c66ec88fSEmmanuel Vadot  This device must be the parent of all the sub-components and is responsible
23*c66ec88fSEmmanuel Vadot  of bind them.
24*c66ec88fSEmmanuel Vadot  Required properties:
25*c66ec88fSEmmanuel Vadot  - compatible: "st,sti-display-subsystem"
26*c66ec88fSEmmanuel Vadot  - ranges: to allow probing of subdevices
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel Vadot- sti-compositor: frame compositor engine
29*c66ec88fSEmmanuel Vadot  must be a child of sti-display-subsystem
30*c66ec88fSEmmanuel Vadot  Required properties:
31*c66ec88fSEmmanuel Vadot  - compatible: "st,stih<chip>-compositor"
32*c66ec88fSEmmanuel Vadot  - reg: Physical base address of the IP registers and length of memory mapped region.
33*c66ec88fSEmmanuel Vadot  - clocks: from common clock binding: handle hardware IP needed clocks, the
34*c66ec88fSEmmanuel Vadot    number of clocks may depend of the SoC type.
35*c66ec88fSEmmanuel Vadot    See ../clocks/clock-bindings.txt for details.
36*c66ec88fSEmmanuel Vadot  - clock-names: names of the clocks listed in clocks property in the same
37*c66ec88fSEmmanuel Vadot    order.
38*c66ec88fSEmmanuel Vadot  - resets: resets to be used by the device
39*c66ec88fSEmmanuel Vadot    See ../reset/reset.txt for details.
40*c66ec88fSEmmanuel Vadot  - reset-names: names of the resets listed in resets property in the same
41*c66ec88fSEmmanuel Vadot    order.
42*c66ec88fSEmmanuel Vadot  - st,vtg: phandle(s) on vtg device (main and aux) nodes.
43*c66ec88fSEmmanuel Vadot
44*c66ec88fSEmmanuel Vadot- sti-tvout: video out hardware block
45*c66ec88fSEmmanuel Vadot  must be a child of sti-display-subsystem
46*c66ec88fSEmmanuel Vadot  Required properties:
47*c66ec88fSEmmanuel Vadot  - compatible: "st,stih<chip>-tvout"
48*c66ec88fSEmmanuel Vadot  - reg: Physical base address of the IP registers and length of memory mapped region.
49*c66ec88fSEmmanuel Vadot  - reg-names: names of the mapped memory regions listed in regs property in
50*c66ec88fSEmmanuel Vadot    the same order.
51*c66ec88fSEmmanuel Vadot  - resets: resets to be used by the device
52*c66ec88fSEmmanuel Vadot    See ../reset/reset.txt for details.
53*c66ec88fSEmmanuel Vadot  - reset-names: names of the resets listed in resets property in the same
54*c66ec88fSEmmanuel Vadot    order.
55*c66ec88fSEmmanuel Vadot
56*c66ec88fSEmmanuel Vadot- sti-hdmi: hdmi output block
57*c66ec88fSEmmanuel Vadot  must be a child of sti-display-subsystem
58*c66ec88fSEmmanuel Vadot  Required properties:
59*c66ec88fSEmmanuel Vadot  - compatible: "st,stih<chip>-hdmi";
60*c66ec88fSEmmanuel Vadot  - reg: Physical base address of the IP registers and length of memory mapped region.
61*c66ec88fSEmmanuel Vadot  - reg-names: names of the mapped memory regions listed in regs property in
62*c66ec88fSEmmanuel Vadot    the same order.
63*c66ec88fSEmmanuel Vadot  - interrupts : HDMI interrupt number to the CPU.
64*c66ec88fSEmmanuel Vadot  - interrupt-names: names of the interrupts listed in interrupts property in
65*c66ec88fSEmmanuel Vadot    the same order
66*c66ec88fSEmmanuel Vadot  - clocks: from common clock binding: handle hardware IP needed clocks, the
67*c66ec88fSEmmanuel Vadot    number of clocks may depend of the SoC type.
68*c66ec88fSEmmanuel Vadot  - clock-names: names of the clocks listed in clocks property in the same
69*c66ec88fSEmmanuel Vadot    order.
70*c66ec88fSEmmanuel Vadot  - ddc: phandle of an I2C controller used for DDC EDID probing
71*c66ec88fSEmmanuel Vadot
72*c66ec88fSEmmanuel Vadotsti-hda:
73*c66ec88fSEmmanuel Vadot  Required properties:
74*c66ec88fSEmmanuel Vadot  must be a child of sti-display-subsystem
75*c66ec88fSEmmanuel Vadot  - compatible: "st,stih<chip>-hda"
76*c66ec88fSEmmanuel Vadot  - reg: Physical base address of the IP registers and length of memory mapped region.
77*c66ec88fSEmmanuel Vadot  - reg-names: names of the mapped memory regions listed in regs property in
78*c66ec88fSEmmanuel Vadot    the same order.
79*c66ec88fSEmmanuel Vadot  - clocks: from common clock binding: handle hardware IP needed clocks, the
80*c66ec88fSEmmanuel Vadot    number of clocks may depend of the SoC type.
81*c66ec88fSEmmanuel Vadot    See ../clocks/clock-bindings.txt for details.
82*c66ec88fSEmmanuel Vadot  - clock-names: names of the clocks listed in clocks property in the same
83*c66ec88fSEmmanuel Vadot    order.
84*c66ec88fSEmmanuel Vadot
85*c66ec88fSEmmanuel Vadotsti-dvo:
86*c66ec88fSEmmanuel Vadot  Required properties:
87*c66ec88fSEmmanuel Vadot  must be a child of sti-display-subsystem
88*c66ec88fSEmmanuel Vadot  - compatible: "st,stih<chip>-dvo"
89*c66ec88fSEmmanuel Vadot  - reg: Physical base address of the IP registers and length of memory mapped region.
90*c66ec88fSEmmanuel Vadot  - reg-names: names of the mapped memory regions listed in regs property in
91*c66ec88fSEmmanuel Vadot    the same order.
92*c66ec88fSEmmanuel Vadot  - clocks: from common clock binding: handle hardware IP needed clocks, the
93*c66ec88fSEmmanuel Vadot    number of clocks may depend of the SoC type.
94*c66ec88fSEmmanuel Vadot    See ../clocks/clock-bindings.txt for details.
95*c66ec88fSEmmanuel Vadot  - clock-names: names of the clocks listed in clocks property in the same
96*c66ec88fSEmmanuel Vadot    order.
97*c66ec88fSEmmanuel Vadot  - pinctrl-0: pin control handle
98*c66ec88fSEmmanuel Vadot  - pinctrl-names: names of the pin control states to use
99*c66ec88fSEmmanuel Vadot  - sti,panel: phandle of the panel connected to the DVO output
100*c66ec88fSEmmanuel Vadot
101*c66ec88fSEmmanuel Vadotsti-hqvdp:
102*c66ec88fSEmmanuel Vadot  must be a child of sti-display-subsystem
103*c66ec88fSEmmanuel Vadot  Required properties:
104*c66ec88fSEmmanuel Vadot  - compatible: "st,stih<chip>-hqvdp"
105*c66ec88fSEmmanuel Vadot  - reg: Physical base address of the IP registers and length of memory mapped region.
106*c66ec88fSEmmanuel Vadot  - clocks: from common clock binding: handle hardware IP needed clocks, the
107*c66ec88fSEmmanuel Vadot    number of clocks may depend of the SoC type.
108*c66ec88fSEmmanuel Vadot    See ../clocks/clock-bindings.txt for details.
109*c66ec88fSEmmanuel Vadot  - clock-names: names of the clocks listed in clocks property in the same
110*c66ec88fSEmmanuel Vadot    order.
111*c66ec88fSEmmanuel Vadot  - resets: resets to be used by the device
112*c66ec88fSEmmanuel Vadot    See ../reset/reset.txt for details.
113*c66ec88fSEmmanuel Vadot  - reset-names: names of the resets listed in resets property in the same
114*c66ec88fSEmmanuel Vadot    order.
115*c66ec88fSEmmanuel Vadot  - st,vtg: phandle on vtg main device node.
116*c66ec88fSEmmanuel Vadot
117*c66ec88fSEmmanuel VadotExample:
118*c66ec88fSEmmanuel Vadot
119*c66ec88fSEmmanuel Vadot/ {
120*c66ec88fSEmmanuel Vadot	...
121*c66ec88fSEmmanuel Vadot
122*c66ec88fSEmmanuel Vadot	vtg_main_slave: sti-vtg-main-slave@fe85a800 {
123*c66ec88fSEmmanuel Vadot		compatible	= "st,vtg";
124*c66ec88fSEmmanuel Vadot		reg		= <0xfe85A800 0x300>;
125*c66ec88fSEmmanuel Vadot		interrupts	= <GIC_SPI 175 IRQ_TYPE_NONE>;
126*c66ec88fSEmmanuel Vadot	};
127*c66ec88fSEmmanuel Vadot
128*c66ec88fSEmmanuel Vadot	vtg_main: sti-vtg-main-master@fd348000 {
129*c66ec88fSEmmanuel Vadot		compatible	= "st,vtg";
130*c66ec88fSEmmanuel Vadot		reg		= <0xfd348000 0x400>;
131*c66ec88fSEmmanuel Vadot		st,slave	= <&vtg_main_slave>;
132*c66ec88fSEmmanuel Vadot	};
133*c66ec88fSEmmanuel Vadot
134*c66ec88fSEmmanuel Vadot	vtg_aux_slave: sti-vtg-aux-slave@fd348400 {
135*c66ec88fSEmmanuel Vadot		compatible	= "st,vtg";
136*c66ec88fSEmmanuel Vadot		reg		= <0xfe858200 0x300>;
137*c66ec88fSEmmanuel Vadot		interrupts	= <GIC_SPI 176 IRQ_TYPE_NONE>;
138*c66ec88fSEmmanuel Vadot	};
139*c66ec88fSEmmanuel Vadot
140*c66ec88fSEmmanuel Vadot	vtg_aux: sti-vtg-aux-master@fd348400 {
141*c66ec88fSEmmanuel Vadot		compatible	= "st,vtg";
142*c66ec88fSEmmanuel Vadot		reg		= <0xfd348400 0x400>;
143*c66ec88fSEmmanuel Vadot		st,slave	= <&vtg_aux_slave>;
144*c66ec88fSEmmanuel Vadot	};
145*c66ec88fSEmmanuel Vadot
146*c66ec88fSEmmanuel Vadot
147*c66ec88fSEmmanuel Vadot	sti-vtac-rx-main@fee82800 {
148*c66ec88fSEmmanuel Vadot		compatible	= "st,vtac-main";
149*c66ec88fSEmmanuel Vadot		reg		= <0xfee82800 0x200>;
150*c66ec88fSEmmanuel Vadot		clock-names     = "vtac";
151*c66ec88fSEmmanuel Vadot		clocks          = <&clk_m_a2_div0 CLK_M_VTAC_MAIN_PHY>;
152*c66ec88fSEmmanuel Vadot	};
153*c66ec88fSEmmanuel Vadot
154*c66ec88fSEmmanuel Vadot	sti-vtac-rx-aux@fee82a00 {
155*c66ec88fSEmmanuel Vadot		compatible	= "st,vtac-aux";
156*c66ec88fSEmmanuel Vadot		reg		= <0xfee82a00 0x200>;
157*c66ec88fSEmmanuel Vadot		clock-names     = "vtac";
158*c66ec88fSEmmanuel Vadot		clocks          = <&clk_m_a2_div0 CLK_M_VTAC_AUX_PHY>;
159*c66ec88fSEmmanuel Vadot	};
160*c66ec88fSEmmanuel Vadot
161*c66ec88fSEmmanuel Vadot	sti-vtac-tx-main@fd349000 {
162*c66ec88fSEmmanuel Vadot		compatible	= "st,vtac-main";
163*c66ec88fSEmmanuel Vadot		reg		= <0xfd349000 0x200>, <0xfd320000 0x10000>;
164*c66ec88fSEmmanuel Vadot		clock-names     = "vtac";
165*c66ec88fSEmmanuel Vadot		clocks           = <&clk_s_a1_hs CLK_S_VTAC_TX_PHY>;
166*c66ec88fSEmmanuel Vadot	};
167*c66ec88fSEmmanuel Vadot
168*c66ec88fSEmmanuel Vadot	sti-vtac-tx-aux@fd349200 {
169*c66ec88fSEmmanuel Vadot		compatible	= "st,vtac-aux";
170*c66ec88fSEmmanuel Vadot		reg		= <0xfd349200 0x200>, <0xfd320000 0x10000>;
171*c66ec88fSEmmanuel Vadot		clock-names     = "vtac";
172*c66ec88fSEmmanuel Vadot		clocks          = <&clk_s_a1_hs CLK_S_VTAC_TX_PHY>;
173*c66ec88fSEmmanuel Vadot	};
174*c66ec88fSEmmanuel Vadot
175*c66ec88fSEmmanuel Vadot	sti-display-subsystem {
176*c66ec88fSEmmanuel Vadot		compatible = "st,sti-display-subsystem";
177*c66ec88fSEmmanuel Vadot		ranges;
178*c66ec88fSEmmanuel Vadot
179*c66ec88fSEmmanuel Vadot		sti-compositor@fd340000 {
180*c66ec88fSEmmanuel Vadot			compatible	= "st,stih416-compositor";
181*c66ec88fSEmmanuel Vadot			reg		= <0xfd340000 0x1000>;
182*c66ec88fSEmmanuel Vadot			clock-names	= "compo_main", "compo_aux",
183*c66ec88fSEmmanuel Vadot			                  "pix_main", "pix_aux";
184*c66ec88fSEmmanuel Vadot			clocks          = <&clk_m_a2_div1 CLK_M_COMPO_MAIN>, <&clk_m_a2_div1 CLK_M_COMPO_AUX>,
185*c66ec88fSEmmanuel Vadot					  <&clockgen_c_vcc CLK_S_PIX_MAIN>, <&clockgen_c_vcc CLK_S_PIX_AUX>;
186*c66ec88fSEmmanuel Vadot			reset-names     = "compo-main", "compo-aux";
187*c66ec88fSEmmanuel Vadot			resets          = <&softreset STIH416_COMPO_M_SOFTRESET>, <&softreset STIH416_COMPO_A_SOFTRESET>;
188*c66ec88fSEmmanuel Vadot			st,vtg		= <&vtg_main>, <&vtg_aux>;
189*c66ec88fSEmmanuel Vadot		};
190*c66ec88fSEmmanuel Vadot
191*c66ec88fSEmmanuel Vadot		sti-tvout@fe000000 {
192*c66ec88fSEmmanuel Vadot			compatible	= "st,stih416-tvout";
193*c66ec88fSEmmanuel Vadot			reg		= <0xfe000000 0x1000>, <0xfe85a000 0x400>, <0xfe830000 0x10000>;
194*c66ec88fSEmmanuel Vadot			reg-names	= "tvout-reg", "hda-reg", "syscfg";
195*c66ec88fSEmmanuel Vadot			reset-names     = "tvout";
196*c66ec88fSEmmanuel Vadot			resets          = <&softreset STIH416_HDTVOUT_SOFTRESET>;
197*c66ec88fSEmmanuel Vadot		};
198*c66ec88fSEmmanuel Vadot
199*c66ec88fSEmmanuel Vadot		sti-hdmi@fe85c000 {
200*c66ec88fSEmmanuel Vadot			compatible	= "st,stih416-hdmi";
201*c66ec88fSEmmanuel Vadot			reg		= <0xfe85c000 0x1000>, <0xfe830000 0x10000>;
202*c66ec88fSEmmanuel Vadot			reg-names	= "hdmi-reg", "syscfg";
203*c66ec88fSEmmanuel Vadot			interrupts	= <GIC_SPI 173 IRQ_TYPE_NONE>;
204*c66ec88fSEmmanuel Vadot			interrupt-names	= "irq";
205*c66ec88fSEmmanuel Vadot			clock-names	= "pix", "tmds", "phy", "audio";
206*c66ec88fSEmmanuel Vadot			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>;
207*c66ec88fSEmmanuel Vadot		};
208*c66ec88fSEmmanuel Vadot
209*c66ec88fSEmmanuel Vadot		sti-hda@fe85a000 {
210*c66ec88fSEmmanuel Vadot			compatible	= "st,stih416-hda";
211*c66ec88fSEmmanuel Vadot			reg		= <0xfe85a000 0x400>, <0xfe83085c 0x4>;
212*c66ec88fSEmmanuel Vadot			reg-names	= "hda-reg", "video-dacs-ctrl";
213*c66ec88fSEmmanuel Vadot			clock-names	= "pix", "hddac";
214*c66ec88fSEmmanuel Vadot			clocks          = <&clockgen_c_vcc CLK_S_PIX_HD>, <&clockgen_c_vcc CLK_S_HDDAC>;
215*c66ec88fSEmmanuel Vadot		};
216*c66ec88fSEmmanuel Vadot
217*c66ec88fSEmmanuel Vadot		sti-dvo@8d00400 {
218*c66ec88fSEmmanuel Vadot			compatible	= "st,stih407-dvo";
219*c66ec88fSEmmanuel Vadot			reg		= <0x8d00400 0x200>;
220*c66ec88fSEmmanuel Vadot			reg-names	= "dvo-reg";
221*c66ec88fSEmmanuel Vadot			clock-names	= "dvo_pix", "dvo",
222*c66ec88fSEmmanuel Vadot					  "main_parent", "aux_parent";
223*c66ec88fSEmmanuel Vadot			clocks		= <&clk_s_d2_flexgen CLK_PIX_DVO>, <&clk_s_d2_flexgen CLK_DVO>,
224*c66ec88fSEmmanuel Vadot					  <&clk_s_d2_quadfs 0>, <&clk_s_d2_quadfs 1>;
225*c66ec88fSEmmanuel Vadot			pinctrl-names	= "default";
226*c66ec88fSEmmanuel Vadot			pinctrl-0	= <&pinctrl_dvo>;
227*c66ec88fSEmmanuel Vadot			sti,panel	= <&panel_dvo>;
228*c66ec88fSEmmanuel Vadot		};
229*c66ec88fSEmmanuel Vadot
230*c66ec88fSEmmanuel Vadot		sti-hqvdp@9c000000 {
231*c66ec88fSEmmanuel Vadot				compatible	= "st,stih407-hqvdp";
232*c66ec88fSEmmanuel Vadot				reg		= <0x9C00000 0x100000>;
233*c66ec88fSEmmanuel Vadot				clock-names	= "hqvdp", "pix_main";
234*c66ec88fSEmmanuel Vadot				clocks		= <&clk_s_c0_flexgen CLK_MAIN_DISP>, <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>;
235*c66ec88fSEmmanuel Vadot				reset-names     = "hqvdp";
236*c66ec88fSEmmanuel Vadot				resets          = <&softreset STIH407_HDQVDP_SOFTRESET>;
237*c66ec88fSEmmanuel Vadot				st,vtg		= <&vtg_main>;
238*c66ec88fSEmmanuel Vadot		};
239*c66ec88fSEmmanuel Vadot	};
240*c66ec88fSEmmanuel Vadot	...
241*c66ec88fSEmmanuel Vadot};
242