1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (C) 2014 STMicroelectronics Limited.
4*724ba675SRob Herring * Author: Peter Griffin <peter.griffin@linaro.org>
5*724ba675SRob Herring */
6*724ba675SRob Herring#include "stih410-clock.dtsi"
7*724ba675SRob Herring#include "stih407-family.dtsi"
8*724ba675SRob Herring#include "stih410-pinctrl.dtsi"
9*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
10*724ba675SRob Herring/ {
11*724ba675SRob Herring	aliases {
12*724ba675SRob Herring		bdisp0 = &bdisp0;
13*724ba675SRob Herring	};
14*724ba675SRob Herring
15*724ba675SRob Herring	usb2_picophy1: phy2 {
16*724ba675SRob Herring		compatible = "st,stih407-usb2-phy";
17*724ba675SRob Herring		#phy-cells = <0>;
18*724ba675SRob Herring		st,syscfg = <&syscfg_core 0xf8 0xf4>;
19*724ba675SRob Herring		resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
20*724ba675SRob Herring			 <&picophyreset STIH407_PICOPHY0_RESET>;
21*724ba675SRob Herring		reset-names = "global", "port";
22*724ba675SRob Herring
23*724ba675SRob Herring		status = "disabled";
24*724ba675SRob Herring	};
25*724ba675SRob Herring
26*724ba675SRob Herring	usb2_picophy2: phy3 {
27*724ba675SRob Herring		compatible = "st,stih407-usb2-phy";
28*724ba675SRob Herring		#phy-cells = <0>;
29*724ba675SRob Herring		st,syscfg = <&syscfg_core 0xfc 0xf4>;
30*724ba675SRob Herring		resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
31*724ba675SRob Herring			 <&picophyreset STIH407_PICOPHY1_RESET>;
32*724ba675SRob Herring		reset-names = "global", "port";
33*724ba675SRob Herring
34*724ba675SRob Herring		status = "disabled";
35*724ba675SRob Herring	};
36*724ba675SRob Herring
37*724ba675SRob Herring	soc {
38*724ba675SRob Herring		ohci0: usb@9a03c00 {
39*724ba675SRob Herring			compatible = "st,st-ohci-300x";
40*724ba675SRob Herring			reg = <0x9a03c00 0x100>;
41*724ba675SRob Herring			interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
42*724ba675SRob Herring			clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
43*724ba675SRob Herring				 <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
44*724ba675SRob Herring			resets = <&powerdown STIH407_USB2_PORT0_POWERDOWN>,
45*724ba675SRob Herring				 <&softreset STIH407_USB2_PORT0_SOFTRESET>;
46*724ba675SRob Herring			reset-names = "power", "softreset";
47*724ba675SRob Herring			phys = <&usb2_picophy1>;
48*724ba675SRob Herring			phy-names = "usb";
49*724ba675SRob Herring
50*724ba675SRob Herring			status = "disabled";
51*724ba675SRob Herring		};
52*724ba675SRob Herring
53*724ba675SRob Herring		ehci0: usb@9a03e00 {
54*724ba675SRob Herring			compatible = "st,st-ehci-300x";
55*724ba675SRob Herring			reg = <0x9a03e00 0x100>;
56*724ba675SRob Herring			interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
57*724ba675SRob Herring			pinctrl-names = "default";
58*724ba675SRob Herring			pinctrl-0 = <&pinctrl_usb0>;
59*724ba675SRob Herring			clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
60*724ba675SRob Herring				 <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
61*724ba675SRob Herring			resets = <&powerdown STIH407_USB2_PORT0_POWERDOWN>,
62*724ba675SRob Herring				 <&softreset STIH407_USB2_PORT0_SOFTRESET>;
63*724ba675SRob Herring			reset-names = "power", "softreset";
64*724ba675SRob Herring			phys = <&usb2_picophy1>;
65*724ba675SRob Herring			phy-names = "usb";
66*724ba675SRob Herring
67*724ba675SRob Herring			status = "disabled";
68*724ba675SRob Herring		};
69*724ba675SRob Herring
70*724ba675SRob Herring		ohci1: usb@9a83c00 {
71*724ba675SRob Herring			compatible = "st,st-ohci-300x";
72*724ba675SRob Herring			reg = <0x9a83c00 0x100>;
73*724ba675SRob Herring			interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
74*724ba675SRob Herring			clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
75*724ba675SRob Herring				 <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
76*724ba675SRob Herring			resets = <&powerdown STIH407_USB2_PORT1_POWERDOWN>,
77*724ba675SRob Herring				 <&softreset STIH407_USB2_PORT1_SOFTRESET>;
78*724ba675SRob Herring			reset-names = "power", "softreset";
79*724ba675SRob Herring			phys = <&usb2_picophy2>;
80*724ba675SRob Herring			phy-names = "usb";
81*724ba675SRob Herring
82*724ba675SRob Herring			status = "disabled";
83*724ba675SRob Herring		};
84*724ba675SRob Herring
85*724ba675SRob Herring		ehci1: usb@9a83e00 {
86*724ba675SRob Herring			compatible = "st,st-ehci-300x";
87*724ba675SRob Herring			reg = <0x9a83e00 0x100>;
88*724ba675SRob Herring			interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
89*724ba675SRob Herring			pinctrl-names = "default";
90*724ba675SRob Herring			pinctrl-0 = <&pinctrl_usb1>;
91*724ba675SRob Herring			clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
92*724ba675SRob Herring				 <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
93*724ba675SRob Herring			resets = <&powerdown STIH407_USB2_PORT1_POWERDOWN>,
94*724ba675SRob Herring				 <&softreset STIH407_USB2_PORT1_SOFTRESET>;
95*724ba675SRob Herring			reset-names = "power", "softreset";
96*724ba675SRob Herring			phys = <&usb2_picophy2>;
97*724ba675SRob Herring			phy-names = "usb";
98*724ba675SRob Herring
99*724ba675SRob Herring			status = "disabled";
100*724ba675SRob Herring		};
101*724ba675SRob Herring
102*724ba675SRob Herring		sti-display-subsystem@0 {
103*724ba675SRob Herring			compatible = "st,sti-display-subsystem";
104*724ba675SRob Herring			#address-cells = <1>;
105*724ba675SRob Herring			#size-cells = <1>;
106*724ba675SRob Herring
107*724ba675SRob Herring			reg = <0 0>;
108*724ba675SRob Herring			assigned-clocks = <&clk_s_d2_quadfs 0>,
109*724ba675SRob Herring					  <&clk_s_d2_quadfs 1>,
110*724ba675SRob Herring					  <&clk_s_c0_pll1 0>,
111*724ba675SRob Herring					  <&clk_s_c0_flexgen CLK_COMPO_DVP>,
112*724ba675SRob Herring					  <&clk_s_c0_flexgen CLK_MAIN_DISP>,
113*724ba675SRob Herring					  <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
114*724ba675SRob Herring					  <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
115*724ba675SRob Herring					  <&clk_s_d2_flexgen CLK_PIX_GDP1>,
116*724ba675SRob Herring					  <&clk_s_d2_flexgen CLK_PIX_GDP2>,
117*724ba675SRob Herring					  <&clk_s_d2_flexgen CLK_PIX_GDP3>,
118*724ba675SRob Herring					  <&clk_s_d2_flexgen CLK_PIX_GDP4>;
119*724ba675SRob Herring
120*724ba675SRob Herring			assigned-clock-parents = <0>,
121*724ba675SRob Herring						 <0>,
122*724ba675SRob Herring						 <0>,
123*724ba675SRob Herring						 <&clk_s_c0_pll1 0>,
124*724ba675SRob Herring						 <&clk_s_c0_pll1 0>,
125*724ba675SRob Herring						 <&clk_s_d2_quadfs 0>,
126*724ba675SRob Herring						 <&clk_s_d2_quadfs 1>,
127*724ba675SRob Herring						 <&clk_s_d2_quadfs 0>,
128*724ba675SRob Herring						 <&clk_s_d2_quadfs 0>,
129*724ba675SRob Herring						 <&clk_s_d2_quadfs 0>,
130*724ba675SRob Herring						 <&clk_s_d2_quadfs 0>;
131*724ba675SRob Herring
132*724ba675SRob Herring			assigned-clock-rates = <297000000>,
133*724ba675SRob Herring					       <297000000>,
134*724ba675SRob Herring					       <0>,
135*724ba675SRob Herring					       <400000000>,
136*724ba675SRob Herring					       <400000000>;
137*724ba675SRob Herring
138*724ba675SRob Herring			ranges;
139*724ba675SRob Herring
140*724ba675SRob Herring			sti-compositor@9d11000 {
141*724ba675SRob Herring				compatible = "st,stih407-compositor";
142*724ba675SRob Herring				reg = <0x9d11000 0x1000>;
143*724ba675SRob Herring
144*724ba675SRob Herring				clock-names = "compo_main",
145*724ba675SRob Herring					      "compo_aux",
146*724ba675SRob Herring					      "pix_main",
147*724ba675SRob Herring					      "pix_aux",
148*724ba675SRob Herring					      "pix_gdp1",
149*724ba675SRob Herring					      "pix_gdp2",
150*724ba675SRob Herring					      "pix_gdp3",
151*724ba675SRob Herring					      "pix_gdp4",
152*724ba675SRob Herring					      "main_parent",
153*724ba675SRob Herring					      "aux_parent";
154*724ba675SRob Herring
155*724ba675SRob Herring				clocks = <&clk_s_c0_flexgen CLK_COMPO_DVP>,
156*724ba675SRob Herring					 <&clk_s_c0_flexgen CLK_COMPO_DVP>,
157*724ba675SRob Herring					 <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
158*724ba675SRob Herring					 <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
159*724ba675SRob Herring					 <&clk_s_d2_flexgen CLK_PIX_GDP1>,
160*724ba675SRob Herring					 <&clk_s_d2_flexgen CLK_PIX_GDP2>,
161*724ba675SRob Herring					 <&clk_s_d2_flexgen CLK_PIX_GDP3>,
162*724ba675SRob Herring					 <&clk_s_d2_flexgen CLK_PIX_GDP4>,
163*724ba675SRob Herring					 <&clk_s_d2_quadfs 0>,
164*724ba675SRob Herring					 <&clk_s_d2_quadfs 1>;
165*724ba675SRob Herring
166*724ba675SRob Herring				reset-names = "compo-main", "compo-aux";
167*724ba675SRob Herring				resets = <&softreset STIH407_COMPO_SOFTRESET>,
168*724ba675SRob Herring					 <&softreset STIH407_COMPO_SOFTRESET>;
169*724ba675SRob Herring				st,vtg = <&vtg_main>, <&vtg_aux>;
170*724ba675SRob Herring			};
171*724ba675SRob Herring
172*724ba675SRob Herring			sti-tvout@8d08000 {
173*724ba675SRob Herring				compatible = "st,stih407-tvout";
174*724ba675SRob Herring				reg = <0x8d08000 0x1000>;
175*724ba675SRob Herring				reg-names = "tvout-reg";
176*724ba675SRob Herring				reset-names = "tvout";
177*724ba675SRob Herring				resets = <&softreset STIH407_HDTVOUT_SOFTRESET>;
178*724ba675SRob Herring				#address-cells = <1>;
179*724ba675SRob Herring				#size-cells = <1>;
180*724ba675SRob Herring				assigned-clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
181*724ba675SRob Herring						  <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
182*724ba675SRob Herring						  <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
183*724ba675SRob Herring						  <&clk_s_d0_flexgen CLK_PCM_0>,
184*724ba675SRob Herring						  <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
185*724ba675SRob Herring						  <&clk_s_d2_flexgen CLK_HDDAC>;
186*724ba675SRob Herring
187*724ba675SRob Herring				assigned-clock-parents = <&clk_s_d2_quadfs 0>,
188*724ba675SRob Herring							 <&clk_tmdsout_hdmi>,
189*724ba675SRob Herring							 <&clk_s_d2_quadfs 0>,
190*724ba675SRob Herring							 <&clk_s_d0_quadfs 0>,
191*724ba675SRob Herring							 <&clk_s_d2_quadfs 0>,
192*724ba675SRob Herring							 <&clk_s_d2_quadfs 0>;
193*724ba675SRob Herring			};
194*724ba675SRob Herring
195*724ba675SRob Herring			sti_hdmi: sti-hdmi@8d04000 {
196*724ba675SRob Herring				compatible = "st,stih407-hdmi";
197*724ba675SRob Herring				reg = <0x8d04000 0x1000>;
198*724ba675SRob Herring				reg-names = "hdmi-reg";
199*724ba675SRob Herring				#sound-dai-cells = <0>;
200*724ba675SRob Herring				interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
201*724ba675SRob Herring				interrupt-names = "irq";
202*724ba675SRob Herring				clock-names = "pix",
203*724ba675SRob Herring					      "tmds",
204*724ba675SRob Herring					      "phy",
205*724ba675SRob Herring					      "audio",
206*724ba675SRob Herring					      "main_parent",
207*724ba675SRob Herring					      "aux_parent";
208*724ba675SRob Herring
209*724ba675SRob Herring				clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
210*724ba675SRob Herring					 <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
211*724ba675SRob Herring					 <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
212*724ba675SRob Herring					 <&clk_s_d0_flexgen CLK_PCM_0>,
213*724ba675SRob Herring					 <&clk_s_d2_quadfs 0>,
214*724ba675SRob Herring					 <&clk_s_d2_quadfs 1>;
215*724ba675SRob Herring
216*724ba675SRob Herring				hdmi,hpd-gpio = <&pio5 3 GPIO_ACTIVE_LOW>;
217*724ba675SRob Herring				reset-names = "hdmi";
218*724ba675SRob Herring				resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>;
219*724ba675SRob Herring				ddc = <&hdmiddc>;
220*724ba675SRob Herring			};
221*724ba675SRob Herring
222*724ba675SRob Herring			sti-hda@8d02000 {
223*724ba675SRob Herring				compatible = "st,stih407-hda";
224*724ba675SRob Herring				status = "disabled";
225*724ba675SRob Herring				reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
226*724ba675SRob Herring				reg-names = "hda-reg", "video-dacs-ctrl";
227*724ba675SRob Herring				clock-names = "pix",
228*724ba675SRob Herring					      "hddac",
229*724ba675SRob Herring					      "main_parent",
230*724ba675SRob Herring					      "aux_parent";
231*724ba675SRob Herring				clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
232*724ba675SRob Herring					 <&clk_s_d2_flexgen CLK_HDDAC>,
233*724ba675SRob Herring					 <&clk_s_d2_quadfs 0>,
234*724ba675SRob Herring					 <&clk_s_d2_quadfs 1>;
235*724ba675SRob Herring			};
236*724ba675SRob Herring
237*724ba675SRob Herring			sti-hqvdp@9c00000 {
238*724ba675SRob Herring				compatible = "st,stih407-hqvdp";
239*724ba675SRob Herring				reg = <0x9C00000 0x100000>;
240*724ba675SRob Herring				clock-names = "hqvdp", "pix_main";
241*724ba675SRob Herring				clocks = <&clk_s_c0_flexgen CLK_MAIN_DISP>,
242*724ba675SRob Herring					 <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>;
243*724ba675SRob Herring				reset-names = "hqvdp";
244*724ba675SRob Herring				resets = <&softreset STIH407_HDQVDP_SOFTRESET>;
245*724ba675SRob Herring				st,vtg = <&vtg_main>;
246*724ba675SRob Herring			};
247*724ba675SRob Herring		};
248*724ba675SRob Herring
249*724ba675SRob Herring		bdisp0:bdisp@9f10000 {
250*724ba675SRob Herring			compatible = "st,stih407-bdisp";
251*724ba675SRob Herring			reg = <0x9f10000 0x1000>;
252*724ba675SRob Herring			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
253*724ba675SRob Herring			clock-names = "bdisp";
254*724ba675SRob Herring			clocks = <&clk_s_c0_flexgen CLK_IC_BDISP_0>;
255*724ba675SRob Herring		};
256*724ba675SRob Herring
257*724ba675SRob Herring		hva@8c85000 {
258*724ba675SRob Herring			compatible = "st,st-hva";
259*724ba675SRob Herring			reg = <0x8c85000 0x400>, <0x6000000 0x40000>;
260*724ba675SRob Herring			reg-names = "hva_registers", "hva_esram";
261*724ba675SRob Herring			interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
262*724ba675SRob Herring				     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
263*724ba675SRob Herring			clock-names = "clk_hva";
264*724ba675SRob Herring			clocks = <&clk_s_c0_flexgen CLK_HVA>;
265*724ba675SRob Herring		};
266*724ba675SRob Herring
267*724ba675SRob Herring		thermal@91a0000 {
268*724ba675SRob Herring			compatible = "st,stih407-thermal";
269*724ba675SRob Herring			reg = <0x91a0000 0x28>;
270*724ba675SRob Herring			clock-names = "thermal";
271*724ba675SRob Herring			clocks = <&clk_sysin>;
272*724ba675SRob Herring			interrupts = <GIC_SPI 205 IRQ_TYPE_EDGE_RISING>;
273*724ba675SRob Herring		};
274*724ba675SRob Herring
275*724ba675SRob Herring		cec@94a087c {
276*724ba675SRob Herring			compatible = "st,stih-cec";
277*724ba675SRob Herring			reg = <0x94a087c 0x64>;
278*724ba675SRob Herring			clocks = <&clk_sysin>;
279*724ba675SRob Herring			clock-names = "cec-clk";
280*724ba675SRob Herring			interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
281*724ba675SRob Herring			interrupt-names = "cec-irq";
282*724ba675SRob Herring			pinctrl-names = "default";
283*724ba675SRob Herring			pinctrl-0 = <&pinctrl_cec0_default>;
284*724ba675SRob Herring			resets = <&softreset STIH407_LPM_SOFTRESET>;
285*724ba675SRob Herring			hdmi-phandle = <&sti_hdmi>;
286*724ba675SRob Herring		};
287*724ba675SRob Herring	};
288*724ba675SRob Herring};
289