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