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