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