xref: /openbmc/u-boot/arch/arm/dts/r8a7793-gose.dts (revision 30754ef7)
1/*
2 * Device Tree Source for the Gose board
3 *
4 * Copyright (C) 2014-2015 Renesas Electronics Corporation
5 *
6 * SPDX-License-Identifier:	GPL-2.0
7 */
8
9/*
10 * SSI-AK4643
11 *
12 * SW1: 1: AK4643
13 *      2: CN22
14 *      3: ADV7511
15 *
16 * This command is required when Playback/Capture
17 *
18 *	amixer set "LINEOUT Mixer DACL" on
19 *	amixer set "DVC Out" 100%
20 *	amixer set "DVC In" 100%
21 *
22 * You can use Mute
23 *
24 *	amixer set "DVC Out Mute" on
25 *	amixer set "DVC In Mute" on
26 *
27 * You can use Volume Ramp
28 *
29 *	amixer set "DVC Out Ramp Up Rate"   "0.125 dB/64 steps"
30 *	amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
31 *	amixer set "DVC Out Ramp" on
32 *	aplay xxx.wav &
33 *	amixer set "DVC Out"  80%  // Volume Down
34 *	amixer set "DVC Out" 100%  // Volume Up
35 */
36
37/dts-v1/;
38#include "r8a7793.dtsi"
39#include <dt-bindings/gpio/gpio.h>
40#include <dt-bindings/input/input.h>
41
42/ {
43	model = "Gose";
44	compatible = "renesas,gose", "renesas,r8a7793";
45
46	aliases {
47		serial0 = &scif0;
48		serial1 = &scif1;
49	};
50
51	chosen {
52		bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
53		stdout-path = "serial0:115200n8";
54	};
55
56	memory@40000000 {
57		device_type = "memory";
58		reg = <0 0x40000000 0 0x40000000>;
59	};
60
61	gpio-keys {
62		compatible = "gpio-keys";
63
64		key-1 {
65		        gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
66		        linux,code = <KEY_1>;
67		        label = "SW2-1";
68		        wakeup-source;
69		        debounce-interval = <20>;
70		};
71		key-2 {
72		        gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
73		        linux,code = <KEY_2>;
74		        label = "SW2-2";
75		        wakeup-source;
76		        debounce-interval = <20>;
77		};
78		key-3 {
79		        gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
80		        linux,code = <KEY_3>;
81		        label = "SW2-3";
82		        wakeup-source;
83		        debounce-interval = <20>;
84		};
85		key-4 {
86		        gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
87		        linux,code = <KEY_4>;
88		        label = "SW2-4";
89		        wakeup-source;
90		        debounce-interval = <20>;
91		};
92		key-a {
93		        gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
94		        linux,code = <KEY_A>;
95		        label = "SW30";
96		        wakeup-source;
97		        debounce-interval = <20>;
98		};
99		key-b {
100		        gpios = <&gpio7 1 GPIO_ACTIVE_LOW>;
101		        linux,code = <KEY_B>;
102		        label = "SW31";
103		        wakeup-source;
104		        debounce-interval = <20>;
105		};
106		key-c {
107		        gpios = <&gpio7 2 GPIO_ACTIVE_LOW>;
108		        linux,code = <KEY_C>;
109		        label = "SW32";
110		        wakeup-source;
111		        debounce-interval = <20>;
112		};
113		key-d {
114		        gpios = <&gpio7 3 GPIO_ACTIVE_LOW>;
115		        linux,code = <KEY_D>;
116		        label = "SW33";
117		        wakeup-source;
118		        debounce-interval = <20>;
119		};
120		key-e {
121		        gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
122		        linux,code = <KEY_E>;
123		        label = "SW34";
124		        wakeup-source;
125		        debounce-interval = <20>;
126		};
127		key-f {
128		        gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
129		        linux,code = <KEY_F>;
130		        label = "SW35";
131		        wakeup-source;
132		        debounce-interval = <20>;
133		};
134		key-g {
135		        gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
136		        linux,code = <KEY_G>;
137		        label = "SW36";
138		        wakeup-source;
139		        debounce-interval = <20>;
140		};
141	};
142
143	leds {
144		compatible = "gpio-leds";
145		led6 {
146			gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
147			label = "LED6";
148		};
149		led7 {
150			gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
151			label = "LED7";
152		};
153		led8 {
154			gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
155			label = "LED8";
156		};
157	};
158
159	vcc_sdhi0: regulator-vcc-sdhi0 {
160		compatible = "regulator-fixed";
161
162		regulator-name = "SDHI0 Vcc";
163		regulator-min-microvolt = <3300000>;
164		regulator-max-microvolt = <3300000>;
165
166		gpio = <&gpio7 17 GPIO_ACTIVE_HIGH>;
167		enable-active-high;
168	};
169
170	vccq_sdhi0: regulator-vccq-sdhi0 {
171		compatible = "regulator-gpio";
172
173		regulator-name = "SDHI0 VccQ";
174		regulator-min-microvolt = <1800000>;
175		regulator-max-microvolt = <3300000>;
176
177		gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
178		gpios-states = <1>;
179		states = <3300000 1
180			  1800000 0>;
181	};
182
183	vcc_sdhi1: regulator-vcc-sdhi1 {
184		compatible = "regulator-fixed";
185
186		regulator-name = "SDHI1 Vcc";
187		regulator-min-microvolt = <3300000>;
188		regulator-max-microvolt = <3300000>;
189
190		gpio = <&gpio7 18 GPIO_ACTIVE_HIGH>;
191		enable-active-high;
192	};
193
194	vccq_sdhi1: regulator-vccq-sdhi1 {
195		compatible = "regulator-gpio";
196
197		regulator-name = "SDHI1 VccQ";
198		regulator-min-microvolt = <1800000>;
199		regulator-max-microvolt = <3300000>;
200
201		gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
202		gpios-states = <1>;
203		states = <3300000 1
204			  1800000 0>;
205	};
206
207	vcc_sdhi2: regulator-vcc-sdhi2 {
208		compatible = "regulator-fixed";
209
210		regulator-name = "SDHI2 Vcc";
211		regulator-min-microvolt = <3300000>;
212		regulator-max-microvolt = <3300000>;
213
214		gpio = <&gpio7 19 GPIO_ACTIVE_HIGH>;
215		enable-active-high;
216	};
217
218	vccq_sdhi2: regulator-vccq-sdhi2 {
219		compatible = "regulator-gpio";
220
221		regulator-name = "SDHI2 VccQ";
222		regulator-min-microvolt = <1800000>;
223		regulator-max-microvolt = <3300000>;
224
225		gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
226		gpios-states = <1>;
227		states = <3300000 1
228			  1800000 0>;
229	};
230
231	audio_clock: audio_clock {
232		compatible = "fixed-clock";
233		#clock-cells = <0>;
234		clock-frequency = <11289600>;
235	};
236
237	rsnd_ak4643: sound {
238		compatible = "simple-audio-card";
239
240		simple-audio-card,format = "left_j";
241		simple-audio-card,bitclock-master = <&sndcodec>;
242		simple-audio-card,frame-master = <&sndcodec>;
243
244		sndcpu: simple-audio-card,cpu {
245			sound-dai = <&rcar_sound>;
246		};
247
248		sndcodec: simple-audio-card,codec {
249			sound-dai = <&ak4643>;
250			clocks = <&audio_clock>;
251		};
252	};
253
254	hdmi-in {
255		compatible = "hdmi-connector";
256		type = "a";
257
258		port {
259			hdmi_con_in: endpoint {
260				remote-endpoint = <&adv7612_in>;
261			};
262		};
263	};
264
265	hdmi-out {
266		compatible = "hdmi-connector";
267		type = "a";
268
269		port {
270			hdmi_con_out: endpoint {
271				remote-endpoint = <&adv7511_out>;
272			};
273		};
274	};
275
276	composite-in {
277		compatible = "composite-video-connector";
278
279		port {
280			composite_con_in: endpoint {
281				remote-endpoint = <&adv7180_in>;
282			};
283		};
284	};
285
286	x2_clk: x2-clock {
287		compatible = "fixed-clock";
288		#clock-cells = <0>;
289		clock-frequency = <74250000>;
290	};
291
292	x13_clk: x13-clock {
293		compatible = "fixed-clock";
294		#clock-cells = <0>;
295		clock-frequency = <148500000>;
296	};
297};
298
299&du {
300	pinctrl-0 = <&du_pins>;
301	pinctrl-names = "default";
302	status = "okay";
303
304	clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>,
305		 <&x13_clk>, <&x2_clk>;
306	clock-names = "du.0", "du.1", "lvds.0",
307		      "dclkin.0", "dclkin.1";
308
309	ports {
310		port@0 {
311			endpoint {
312				remote-endpoint = <&adv7511_in>;
313			};
314		};
315		port@1 {
316			lvds_connector: endpoint {
317			};
318		};
319	};
320};
321
322&extal_clk {
323	clock-frequency = <20000000>;
324};
325
326&pfc {
327	pinctrl-0 = <&scif_clk_pins>;
328	pinctrl-names = "default";
329
330	i2c2_pins: i2c2 {
331		groups = "i2c2";
332		function = "i2c2";
333	};
334
335	du_pins: du {
336		groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
337		function = "du";
338	};
339
340	scif0_pins: scif0 {
341		groups = "scif0_data_d";
342		function = "scif0";
343	};
344
345	scif1_pins: scif1 {
346		groups = "scif1_data_d";
347		function = "scif1";
348	};
349
350	scif_clk_pins: scif_clk {
351		groups = "scif_clk";
352		function = "scif_clk";
353	};
354
355	ether_pins: ether {
356		groups = "eth_link", "eth_mdio", "eth_rmii";
357		function = "eth";
358	};
359
360	phy1_pins: phy1 {
361		groups = "intc_irq0";
362		function = "intc";
363	};
364
365	sdhi0_pins: sd0 {
366		groups = "sdhi0_data4", "sdhi0_ctrl";
367		function = "sdhi0";
368		power-source = <3300>;
369	};
370
371	sdhi0_pins_uhs: sd0_uhs {
372		groups = "sdhi0_data4", "sdhi0_ctrl";
373		function = "sdhi0";
374		power-source = <1800>;
375	};
376
377	sdhi1_pins: sd1 {
378		groups = "sdhi1_data4", "sdhi1_ctrl";
379		function = "sdhi1";
380		power-source = <3300>;
381	};
382
383	sdhi1_pins_uhs: sd1_uhs {
384		groups = "sdhi1_data4", "sdhi1_ctrl";
385		function = "sdhi1";
386		power-source = <1800>;
387	};
388
389	sdhi2_pins: sd2 {
390		groups = "sdhi2_data4", "sdhi2_ctrl";
391		function = "sdhi2";
392		power-source = <3300>;
393	};
394
395	sdhi2_pins_uhs: sd2_uhs {
396		groups = "sdhi2_data4", "sdhi2_ctrl";
397		function = "sdhi2";
398		power-source = <1800>;
399	};
400
401	qspi_pins: qspi {
402		groups = "qspi_ctrl", "qspi_data4";
403		function = "qspi";
404	};
405
406	sound_pins: sound {
407		groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
408		function = "ssi";
409	};
410
411	sound_clk_pins: sound_clk {
412		groups = "audio_clk_a";
413		function = "audio_clk";
414	};
415
416	vin0_pins: vin0 {
417		groups = "vin0_data24", "vin0_sync", "vin0_clkenb", "vin0_clk";
418		function = "vin0";
419	};
420
421	vin1_pins: vin1 {
422		groups = "vin1_data8", "vin1_clk";
423		function = "vin1";
424	};
425};
426
427&ether {
428	pinctrl-0 = <&ether_pins &phy1_pins>;
429	pinctrl-names = "default";
430
431	phy-handle = <&phy1>;
432	renesas,ether-link-active-low;
433	status = "okay";
434
435	phy1: ethernet-phy@1 {
436		reg = <1>;
437		interrupt-parent = <&irqc0>;
438		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
439		micrel,led-mode = <1>;
440	};
441};
442
443&cmt0 {
444	status = "okay";
445};
446
447&scif0 {
448	pinctrl-0 = <&scif0_pins>;
449	pinctrl-names = "default";
450
451	status = "okay";
452};
453
454&scif1 {
455	pinctrl-0 = <&scif1_pins>;
456	pinctrl-names = "default";
457
458	status = "okay";
459};
460
461&scif_clk {
462	clock-frequency = <14745600>;
463};
464
465&sdhi0 {
466	pinctrl-0 = <&sdhi0_pins>;
467	pinctrl-1 = <&sdhi0_pins_uhs>;
468	pinctrl-names = "default", "state_uhs";
469
470	vmmc-supply = <&vcc_sdhi0>;
471	vqmmc-supply = <&vccq_sdhi0>;
472	cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
473	wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
474	sd-uhs-sdr50;
475	sd-uhs-sdr104;
476	status = "okay";
477};
478
479&sdhi1 {
480	pinctrl-0 = <&sdhi1_pins>;
481	pinctrl-1 = <&sdhi1_pins_uhs>;
482	pinctrl-names = "default", "state_uhs";
483
484	vmmc-supply = <&vcc_sdhi1>;
485	vqmmc-supply = <&vccq_sdhi1>;
486	cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
487	wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
488	sd-uhs-sdr50;
489	status = "okay";
490};
491
492&sdhi2 {
493	pinctrl-0 = <&sdhi2_pins>;
494	pinctrl-1 = <&sdhi2_pins_uhs>;
495	pinctrl-names = "default", "state_uhs";
496
497	vmmc-supply = <&vcc_sdhi2>;
498	vqmmc-supply = <&vccq_sdhi2>;
499	cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
500	sd-uhs-sdr50;
501	status = "okay";
502};
503
504&qspi {
505	pinctrl-0 = <&qspi_pins>;
506	pinctrl-names = "default";
507
508	status = "okay";
509
510	flash@0 {
511		compatible = "spansion,s25fl512s", "jedec,spi-nor";
512		reg = <0>;
513		spi-max-frequency = <30000000>;
514		spi-tx-bus-width = <4>;
515		spi-rx-bus-width = <4>;
516		spi-cpol;
517		spi-cpha;
518		m25p,fast-read;
519
520		partitions {
521			compatible = "fixed-partitions";
522			#address-cells = <1>;
523			#size-cells = <1>;
524
525			partition@0 {
526				label = "loader";
527				reg = <0x00000000 0x00040000>;
528				read-only;
529			};
530			partition@40000 {
531				label = "user";
532				reg = <0x00040000 0x00400000>;
533				read-only;
534			};
535			partition@440000 {
536				label = "flash";
537				reg = <0x00440000 0x03bc0000>;
538			};
539		};
540	};
541};
542
543&i2c2 {
544	pinctrl-0 = <&i2c2_pins>;
545	pinctrl-names = "default";
546
547	status = "okay";
548	clock-frequency = <100000>;
549
550	ak4643: codec@12 {
551		compatible = "asahi-kasei,ak4643";
552		#sound-dai-cells = <0>;
553		reg = <0x12>;
554	};
555
556	composite-in@20 {
557		compatible = "adi,adv7180cp";
558		reg = <0x20>;
559		remote = <&vin1>;
560
561		port {
562			#address-cells = <1>;
563			#size-cells = <0>;
564
565			port@0 {
566				reg = <0>;
567				adv7180_in: endpoint {
568					remote-endpoint = <&composite_con_in>;
569				};
570			};
571
572			port@3 {
573				reg = <3>;
574				adv7180_out: endpoint {
575					bus-width = <8>;
576					remote-endpoint = <&vin1ep>;
577				};
578			};
579		};
580	};
581
582	hdmi@39 {
583		compatible = "adi,adv7511w";
584		reg = <0x39>;
585		interrupt-parent = <&gpio3>;
586		interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
587
588		adi,input-depth = <8>;
589		adi,input-colorspace = "rgb";
590		adi,input-clock = "1x";
591		adi,input-style = <1>;
592		adi,input-justification = "evenly";
593
594		ports {
595			#address-cells = <1>;
596			#size-cells = <0>;
597
598			port@0 {
599				reg = <0>;
600				adv7511_in: endpoint {
601					remote-endpoint = <&du_out_rgb>;
602				};
603			};
604
605			port@1 {
606				reg = <1>;
607				adv7511_out: endpoint {
608					remote-endpoint = <&hdmi_con_out>;
609				};
610			};
611		};
612	};
613
614	hdmi-in@4c {
615		compatible = "adi,adv7612";
616		reg = <0x4c>;
617		interrupt-parent = <&gpio4>;
618		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
619		default-input = <0>;
620
621		port {
622			#address-cells = <1>;
623			#size-cells = <0>;
624
625			port@0 {
626				reg = <0>;
627				adv7612_in: endpoint {
628					remote-endpoint = <&hdmi_con_in>;
629				};
630			};
631
632			port@2 {
633				reg = <2>;
634				adv7612_out: endpoint {
635					remote-endpoint = <&vin0ep2>;
636				};
637			};
638		};
639	};
640
641	eeprom@50 {
642		compatible = "renesas,r1ex24002", "atmel,24c02";
643		reg = <0x50>;
644		pagesize = <16>;
645	};
646};
647
648&i2c6 {
649	status = "okay";
650	clock-frequency = <100000>;
651
652	pmic@58 {
653		compatible = "dlg,da9063";
654		reg = <0x58>;
655		interrupt-parent = <&irqc0>;
656		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
657		interrupt-controller;
658
659		rtc {
660			compatible = "dlg,da9063-rtc";
661		};
662
663		wdt {
664			compatible = "dlg,da9063-watchdog";
665		};
666	};
667};
668
669&rcar_sound {
670	pinctrl-0 = <&sound_pins &sound_clk_pins>;
671	pinctrl-names = "default";
672
673	/* Single DAI */
674	#sound-dai-cells = <0>;
675
676	status = "okay";
677
678	rcar_sound,dai {
679		dai0 {
680			playback = <&ssi0 &src2 &dvc0>;
681			capture  = <&ssi1 &src3 &dvc1>;
682		};
683	};
684};
685
686&ssi1 {
687	shared-pin;
688};
689
690/* HDMI video input */
691&vin0 {
692	status = "okay";
693	pinctrl-0 = <&vin0_pins>;
694	pinctrl-names = "default";
695
696	port {
697		#address-cells = <1>;
698		#size-cells = <0>;
699
700		vin0ep2: endpoint {
701			remote-endpoint = <&adv7612_out>;
702			bus-width = <24>;
703			hsync-active = <0>;
704			vsync-active = <0>;
705			pclk-sample = <1>;
706			data-active = <1>;
707		};
708	};
709};
710
711/* composite video input */
712&vin1 {
713	pinctrl-0 = <&vin1_pins>;
714	pinctrl-names = "default";
715
716	status = "okay";
717
718	port {
719		#address-cells = <1>;
720		#size-cells = <0>;
721
722		vin1ep: endpoint {
723			remote-endpoint = <&adv7180_out>;
724			bus-width = <8>;
725		};
726	};
727};
728