xref: /linux/scripts/dtc/include-prefixes/arm64/renesas/ulcb-kf.dtsi (revision bb235b728bf6ba0a1e369c9f88265ddf4f284aad)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the Kingfisher (ULCB extension) board
4 *
5 * Copyright (C) 2017 Renesas Electronics Corp.
6 * Copyright (C) 2017 Cogent Embedded, Inc.
7 */
8
9/ {
10	aliases {
11		serial1 = &hscif0;
12		serial2 = &scif1;
13		serial3 = &hscif1;
14		mmc2 = &sdhi3;
15	};
16
17	clksndsel: clksndsel {
18		#clock-cells = <0>;
19		compatible = "gpio-mux-clock";
20		clocks = <&cs2000>, <&audio_clk_a>; /* clk8snd, clksnd */
21		select-gpios = <&gpio_exp_75 13 GPIO_ACTIVE_HIGH>;
22	};
23
24	hdmi1-out {
25		compatible = "hdmi-connector";
26		type = "a";
27
28		port {
29			hdmi1_con: endpoint {
30				remote-endpoint = <&adv7513_out>;
31			};
32		};
33	};
34
35	hdmi_1v8: regulator-hdmi-1v8 {
36		compatible = "regulator-fixed";
37		regulator-name = "hdmi-1v8";
38		regulator-min-microvolt = <1800000>;
39		regulator-max-microvolt = <1800000>;
40	};
41
42	snd_vcc5v: regulator-snd_vcc5v {
43		compatible = "regulator-fixed";
44		regulator-name = "snd-vcc5v";
45		regulator-min-microvolt = <5000000>;
46		regulator-max-microvolt = <5000000>;
47	};
48
49	wlan_en: regulator-wlan_en {
50		compatible = "regulator-fixed";
51		regulator-name = "wlan-en-regulator";
52
53		regulator-min-microvolt = <3300000>;
54		regulator-max-microvolt = <3300000>;
55
56		gpio = <&gpio_exp_74 4 GPIO_ACTIVE_HIGH>;
57		startup-delay-us = <70000>;
58		enable-active-high;
59	};
60};
61
62&can0 {
63	pinctrl-0 = <&can0_pins>;
64	pinctrl-names = "default";
65	status = "okay";
66};
67
68&can1 {
69	pinctrl-0 = <&can1_pins>;
70	pinctrl-names = "default";
71	status = "okay";
72};
73
74&du {
75	ports {
76		port@0 {
77			du_out_rgb: endpoint {
78				remote-endpoint = <&adv7513_in>;
79			};
80		};
81	};
82};
83
84&ehci0 {
85	dr_mode = "otg";
86	status = "okay";
87};
88
89&hscif0 {
90	pinctrl-0 = <&hscif0_pins>;
91	pinctrl-names = "default";
92	uart-has-rtscts;
93
94	status = "okay";
95};
96
97&hscif1 {
98	pinctrl-0 = <&hscif1_pins>;
99	pinctrl-names = "default";
100	uart-has-rtscts;
101
102	status = "okay";
103};
104
105&hsusb {
106	dr_mode = "otg";
107	status = "okay";
108};
109
110&i2c2 {
111	i2cmux2: i2c-mux@71 {
112		compatible = "nxp,pca9548";
113		#address-cells = <1>;
114		#size-cells = <0>;
115		reg = <0x71>;
116		reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
117
118		/* HDMIoSDA, HDMIoSCL */
119		i2c@4 {
120			#address-cells = <1>;
121			#size-cells = <0>;
122			reg = <4>;
123
124			hdmi@3d {
125				compatible = "adi,adv7513";
126				reg = <0x3d>;
127
128				pinctrl-0 = <&hdmi1_pins>;
129				pinctrl-names = "default";
130
131				interrupt-parent = <&gpio2>;
132				interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
133
134				clocks = <&cs2000>;
135				clock-names = "cec";
136
137				pd-gpios = <&gpio_exp_75 5 GPIO_ACTIVE_LOW>;
138
139				avdd-supply = <&hdmi_1v8>;
140				dvdd-supply = <&hdmi_1v8>;
141				pvdd-supply = <&hdmi_1v8>;
142				dvdd-3v-supply = <&reg_3p3v>;
143				bgvdd-supply = <&hdmi_1v8>;
144
145				adi,input-depth = <8>;
146				adi,input-colorspace = "rgb";
147				adi,input-clock = "1x";
148
149				ports {
150					#address-cells = <1>;
151					#size-cells = <0>;
152
153					port@0 {
154						reg = <0>;
155						adv7513_in: endpoint {
156							remote-endpoint = <&du_out_rgb>;
157						};
158					};
159
160					port@1 {
161						reg = <1>;
162						adv7513_out: endpoint {
163							remote-endpoint = <&hdmi1_con>;
164						};
165					};
166				};
167			};
168		};
169
170		/* Audio_SDA, Audio_SCL */
171		i2c@7 {
172			#address-cells = <1>;
173			#size-cells = <0>;
174			reg = <7>;
175
176			accelerometer@1d {
177				compatible = "st,lsm9ds0-imu";
178				reg = <0x1d>;
179
180				vdd-supply = <&reg_3p3v>;
181				vddio-supply = <&reg_3p3v>;
182			};
183
184			pcm3168a: audio-codec@44 {
185				#sound-dai-cells = <0>;
186				compatible = "ti,pcm3168a";
187				reg = <0x44>;
188				clocks = <&clksndsel>;
189				clock-names = "scki";
190
191				VDD1-supply = <&reg_3p3v>;
192				VDD2-supply = <&reg_3p3v>;
193				VCCAD1-supply = <&snd_vcc5v>;
194				VCCAD2-supply = <&snd_vcc5v>;
195				VCCDA1-supply = <&snd_vcc5v>;
196				VCCDA2-supply = <&snd_vcc5v>;
197			};
198
199			gyroscope@6b {
200				compatible = "st,lsm9ds0-gyro";
201				reg = <0x6b>;
202
203				vdd-supply = <&reg_3p3v>;
204				vddio-supply = <&reg_3p3v>;
205			};
206		};
207	};
208
209	/* U11 */
210	gpio_exp_74: gpio@74 {
211		compatible = "ti,tca9539";
212		reg = <0x74>;
213		gpio-controller;
214		#gpio-cells = <2>;
215		interrupt-controller;
216		interrupt-parent = <&gpio6>;
217		interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
218
219		audio-out-off-hog {
220			gpio-hog;
221			gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */
222			output-high;
223			line-name = "Audio_Out_OFF";
224		};
225
226		hub-pwen-hog {
227			gpio-hog;
228			gpios = <6 GPIO_ACTIVE_HIGH>;
229			output-high;
230			line-name = "HUB pwen";
231		};
232
233		hub-rst-hog {
234			gpio-hog;
235			gpios = <7 GPIO_ACTIVE_HIGH>;
236			output-high;
237			line-name = "HUB rst";
238		};
239
240		otg-extlpn-hog {
241			gpio-hog;
242			gpios = <9 GPIO_ACTIVE_HIGH>;
243			output-high;
244			line-name = "OTG EXTLPn";
245		};
246
247		otg-offvbusn-hog {
248			gpio-hog;
249			gpios = <8 GPIO_ACTIVE_HIGH>;
250			output-low;
251			line-name = "OTG OFFVBUSn";
252		};
253
254		sd-wifi-mux-hog {
255			gpio-hog;
256			gpios = <5 GPIO_ACTIVE_HIGH>;
257			output-low;	/* Connect WL1837 */
258			line-name = "SD WiFi mux";
259		};
260
261		snd-rst-hog {
262			gpio-hog;
263			gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */
264			output-high;
265			line-name = "SND_RST";
266		};
267	};
268
269	/* U5 */
270	gpio_exp_75: gpio@75 {
271		compatible = "ti,tca9539";
272		reg = <0x75>;
273		gpio-controller;
274		#gpio-cells = <2>;
275		interrupt-controller;
276		interrupt-parent = <&gpio6>;
277		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
278	};
279};
280
281&i2c4 {
282	i2cmux4: i2c-mux@71 {
283		compatible = "nxp,pca9548";
284		#address-cells = <1>;
285		#size-cells = <0>;
286		reg = <0x71>;
287		reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
288	};
289
290	gpio_exp_76: gpio@76 {
291		compatible = "ti,tca9539";
292		reg = <0x76>;
293		gpio-controller;
294		#gpio-cells = <2>;
295		interrupt-controller;
296		interrupt-parent = <&gpio7>;
297		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
298	};
299
300	gpio_exp_77: gpio@77 {
301		compatible = "ti,tca9539";
302		reg = <0x77>;
303		gpio-controller;
304		#gpio-cells = <2>;
305		interrupt-controller;
306		interrupt-parent = <&gpio5>;
307		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
308	};
309};
310
311&ohci0 {
312	dr_mode = "otg";
313	status = "okay";
314};
315
316&pcie_bus_clk {
317	clock-frequency = <100000000>;
318};
319
320&pciec0 {
321	status = "okay";
322};
323
324&pciec1 {
325	status = "okay";
326};
327
328&pfc {
329	can0_pins: can0 {
330		groups = "can0_data_a";
331		function = "can0";
332	};
333
334	can1_pins: can1 {
335		groups = "can1_data";
336		function = "can1";
337	};
338
339	hdmi1_pins: hdmi1 {
340		adv7513-interrupt {
341			pins = "GP_2_14";
342			bias-pull-up;
343		};
344
345		du {
346			groups = "du_rgb888", "du_sync", "du_clk_out_0",
347				 "du_disp";
348			function = "du";
349		};
350	};
351
352	hscif0_pins: hscif0 {
353		groups = "hscif0_data", "hscif0_ctrl";
354		function = "hscif0";
355	};
356
357	hscif1_pins: hscif1 {
358		groups = "hscif1_data_a", "hscif1_ctrl_a";
359		function = "hscif1";
360	};
361
362	scif1_pins: scif1 {
363		groups = "scif1_data_b";
364		function = "scif1";
365	};
366
367	sdhi3_pins: sdhi3 {
368		groups = "sdhi3_data4", "sdhi3_ctrl";
369		function = "sdhi3";
370		power-source = <3300>;
371	};
372
373	sound_pcm_pins: sound-pcm {
374		groups = "ssi349_ctrl", "ssi3_data", "ssi4_data";
375		function = "ssi";
376	};
377
378	usb0_pins: usb0 {
379		groups = "usb0";
380		function = "usb0";
381	};
382};
383
384&rcar_sound {
385	pinctrl-0 = <&sound_pins
386		     &sound_clk_pins
387		     &sound_pcm_pins>;
388};
389
390&scif1 {
391	pinctrl-0 = <&scif1_pins>;
392	pinctrl-names = "default";
393
394	status = "okay";
395};
396
397&sdhi3 {
398	pinctrl-0 = <&sdhi3_pins>;
399	pinctrl-names = "default";
400
401	vmmc-supply = <&wlan_en>;
402	vqmmc-supply = <&wlan_en>;
403	bus-width = <4>;
404	no-1-8-v;
405	non-removable;
406	cap-power-off-card;
407	keep-power-in-suspend;
408	max-frequency = <26000000>;
409	status = "okay";
410
411	#address-cells = <1>;
412	#size-cells = <0>;
413	wlcore: wlcore@2 {
414		compatible = "ti,wl1837";
415		reg = <2>;
416		interrupt-parent = <&gpio1>;
417		interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
418	};
419};
420
421&ssi4 {
422	shared-pin;
423};
424
425&usb2_phy0 {
426	pinctrl-0 = <&usb0_pins>;
427	pinctrl-names = "default";
428
429	status = "okay";
430};
431
432&xhci0 {
433	status = "okay";
434};
435
436/*
437 * For sound-test.
438 *
439 * We can switch Audio Card for testing
440 * see also ulcb.dtsi
441 *
442 * #include "ulcb-kf-simple-audio-card.dtsi"
443 * #include "ulcb-kf-simple-audio-card-mix+split.dtsi"
444 * #include "ulcb-kf-audio-graph-card.dtsi"
445 * #include "ulcb-kf-audio-graph-card-mix+split.dtsi"
446 * #include "ulcb-kf-audio-graph-card2-mix+split.dtsi"
447 */
448#include "ulcb-kf-audio-graph-card2.dtsi"
449