1// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2/*
3 * Device Tree Source for the RZ/{G2L,G2LC,V2L} SMARC EVK common parts
4 *
5 * Copyright (C) 2022 Renesas Electronics Corp.
6 */
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
10
11/*
12 * SSI-WM8978
13 *
14 * This command is required when Playback/Capture
15 *
16 *	amixer cset name='Left Input Mixer L2 Switch' on
17 *	amixer cset name='Right Input Mixer R2 Switch' on
18 *	amixer cset name='Headphone Playback Volume' 100
19 *	amixer cset name='PCM Volume' 100%
20 *	amixer cset name='Input PGA Volume' 25
21 *
22 */
23
24/ {
25	aliases {
26		serial0 = &scif0;
27		i2c0 = &i2c0;
28		i2c1 = &i2c1;
29		i2c3 = &i2c3;
30	};
31
32	chosen {
33		stdout-path = "serial0:115200n8";
34	};
35
36	audio_mclock: audio_mclock {
37		compatible = "fixed-clock";
38		#clock-cells = <0>;
39		clock-frequency = <11289600>;
40	};
41
42	snd_rzg2l: sound {
43		compatible = "simple-audio-card";
44		simple-audio-card,format = "i2s";
45		simple-audio-card,bitclock-master = <&cpu_dai>;
46		simple-audio-card,frame-master = <&cpu_dai>;
47		simple-audio-card,mclk-fs = <256>;
48
49		simple-audio-card,widgets = "Microphone", "Microphone Jack";
50		simple-audio-card,routing =
51			    "L2", "Mic Bias",
52			    "R2", "Mic Bias",
53			    "Mic Bias", "Microphone Jack";
54
55		cpu_dai: simple-audio-card,cpu {
56			sound-dai = <&ssi0>;
57		};
58
59		codec_dai: simple-audio-card,codec {
60			clocks = <&audio_mclock>;
61			sound-dai = <&wm8978>;
62		};
63	};
64
65	usb0_vbus_otg: regulator-usb0-vbus-otg {
66		compatible = "regulator-fixed";
67
68		regulator-name = "USB0_VBUS_OTG";
69		regulator-min-microvolt = <5000000>;
70		regulator-max-microvolt = <5000000>;
71	};
72
73	vccq_sdhi1: regulator-vccq-sdhi1 {
74		compatible = "regulator-gpio";
75		regulator-name = "SDHI1 VccQ";
76		regulator-min-microvolt = <1800000>;
77		regulator-max-microvolt = <3300000>;
78		gpios = <&pinctrl RZG2L_GPIO(39, 1) GPIO_ACTIVE_HIGH>;
79		gpios-states = <1>;
80		states = <3300000 1>, <1800000 0>;
81	};
82};
83
84&audio_clk1{
85	clock-frequency = <11289600>;
86};
87
88&audio_clk2{
89	clock-frequency = <12288000>;
90};
91
92&canfd {
93	pinctrl-0 = <&can0_pins &can1_pins>;
94	pinctrl-names = "default";
95	status = "okay";
96
97	channel0 {
98		status = "okay";
99	};
100
101	channel1 {
102		status = "okay";
103	};
104};
105
106&ehci0 {
107	dr_mode = "otg";
108	status = "okay";
109};
110
111&ehci1 {
112	status = "okay";
113};
114
115&hsusb {
116	dr_mode = "otg";
117	status = "okay";
118};
119
120&i2c0 {
121	pinctrl-0 = <&i2c0_pins>;
122	pinctrl-names = "default";
123
124	status = "okay";
125};
126
127&i2c1 {
128	pinctrl-0 = <&i2c1_pins>;
129	pinctrl-names = "default";
130
131	status = "okay";
132};
133
134&i2c3 {
135	pinctrl-0 = <&i2c3_pins>;
136	pinctrl-names = "default";
137	clock-frequency = <400000>;
138
139	status = "okay";
140
141	wm8978: codec@1a {
142		compatible = "wlf,wm8978";
143		#sound-dai-cells = <0>;
144		reg = <0x1a>;
145	};
146};
147
148&ohci0 {
149	dr_mode = "otg";
150	status = "okay";
151};
152
153&ohci1 {
154	status = "okay";
155};
156
157&phyrst {
158	status = "okay";
159};
160
161&scif0 {
162	pinctrl-0 = <&scif0_pins>;
163	pinctrl-names = "default";
164	status = "okay";
165};
166
167&sdhi1 {
168	pinctrl-0 = <&sdhi1_pins>;
169	pinctrl-1 = <&sdhi1_pins_uhs>;
170	pinctrl-names = "default", "state_uhs";
171
172	vmmc-supply = <&reg_3p3v>;
173	vqmmc-supply = <&vccq_sdhi1>;
174	bus-width = <4>;
175	sd-uhs-sdr50;
176	sd-uhs-sdr104;
177	status = "okay";
178};
179
180&spi1 {
181	pinctrl-0 = <&spi1_pins>;
182	pinctrl-names = "default";
183
184	status = "okay";
185};
186
187&ssi0 {
188	pinctrl-0 = <&ssi0_pins>;
189	pinctrl-names = "default";
190
191	status = "okay";
192};
193
194&usb2_phy0 {
195	pinctrl-0 = <&usb0_pins>;
196	pinctrl-names = "default";
197
198	vbus-supply = <&usb0_vbus_otg>;
199	status = "okay";
200};
201
202&usb2_phy1 {
203	pinctrl-0 = <&usb1_pins>;
204	pinctrl-names = "default";
205
206	status = "okay";
207};
208