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