ae75a1db3d9ae25505e86dbec0b987b774e44aa9
[platform/kernel/linux-starfive.git] / arch / arm / boot / dts / iwg20d-q7-common.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree Source for the iWave-RZ/G1M/G1N Qseven carrier board
4  *
5  * Copyright (C) 2017 Renesas Electronics Corp.
6  */
7
8 /*
9  * SSI-SGTL5000
10  *
11  * This command is required when Playback/Capture
12  *
13  *      amixer set "DVC Out" 100%
14  *      amixer set "DVC In" 100%
15  *
16  * You can use Mute
17  *
18  *      amixer set "DVC Out Mute" on
19  *      amixer set "DVC In Mute" on
20  *
21  * You can use Volume Ramp
22  *
23  *      amixer set "DVC Out Ramp Up Rate"   "0.125 dB/64 steps"
24  *      amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
25  *      amixer set "DVC Out Ramp" on
26  *      aplay xxx.wav &
27  *      amixer set "DVC Out"  80%  // Volume Down
28  *      amixer set "DVC Out" 100%  // Volume Up
29  */
30
31 / {
32         aliases {
33                 serial0 = &scif0;
34                 serial3 = &scifb1;
35                 ethernet0 = &avb;
36         };
37
38         chosen {
39                 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
40                 stdout-path = "serial0:115200n8";
41         };
42
43         audio_clock: audio_clock {
44                 compatible = "fixed-clock";
45                 #clock-cells = <0>;
46                 clock-frequency = <26000000>;
47         };
48
49         reg_1p5v: 1p5v {
50                 compatible = "regulator-fixed";
51                 regulator-name = "1P5V";
52                 regulator-min-microvolt = <1500000>;
53                 regulator-max-microvolt = <1500000>;
54                 regulator-always-on;
55         };
56
57         rsnd_sgtl5000: sound {
58                 compatible = "simple-audio-card";
59
60                 simple-audio-card,format = "i2s";
61                 simple-audio-card,bitclock-master = <&sndcodec>;
62                 simple-audio-card,frame-master = <&sndcodec>;
63
64                 sndcpu: simple-audio-card,cpu {
65                         sound-dai = <&rcar_sound>;
66                 };
67
68                 sndcodec: simple-audio-card,codec {
69                         sound-dai = <&sgtl5000>;
70                 };
71         };
72
73         vcc_sdhi1: regulator-vcc-sdhi1 {
74                 compatible = "regulator-fixed";
75
76                 regulator-name = "SDHI1 Vcc";
77                 regulator-min-microvolt = <3300000>;
78                 regulator-max-microvolt = <3300000>;
79
80                 gpio = <&gpio1 16 GPIO_ACTIVE_LOW>;
81         };
82
83         vccq_sdhi1: regulator-vccq-sdhi1 {
84                 compatible = "regulator-gpio";
85
86                 regulator-name = "SDHI1 VccQ";
87                 regulator-min-microvolt = <1800000>;
88                 regulator-max-microvolt = <3300000>;
89
90                 gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
91                 gpios-states = <1>;
92                 states = <3300000 1
93                           1800000 0>;
94         };
95 };
96
97 &avb {
98         pinctrl-0 = <&avb_pins>;
99         pinctrl-names = "default";
100
101         phy-handle = <&phy3>;
102         phy-mode = "gmii";
103         renesas,no-ether-link;
104         status = "okay";
105
106         phy3: ethernet-phy@3 {
107                 reg = <3>;
108                 micrel,led-mode = <1>;
109         };
110 };
111
112 &can0 {
113         pinctrl-0 = <&can0_pins>;
114         pinctrl-names = "default";
115
116         status = "okay";
117 };
118
119 &cmt0 {
120         status = "okay";
121 };
122
123 &hsusb {
124         status = "okay";
125         pinctrl-0 = <&usb0_pins>;
126         pinctrl-names = "default";
127 };
128
129 &i2c2 {
130         pinctrl-0 = <&i2c2_pins>;
131         pinctrl-names = "default";
132
133         status = "okay";
134         clock-frequency = <400000>;
135
136         rtc@68 {
137                 compatible = "ti,bq32000";
138                 reg = <0x68>;
139         };
140
141         sgtl5000: codec@a {
142                 compatible = "fsl,sgtl5000";
143                 #sound-dai-cells = <0>;
144                 reg = <0x0a>;
145                 clocks = <&audio_clock>;
146                 VDDA-supply = <&reg_3p3v>;
147                 VDDIO-supply = <&reg_3p3v>;
148                 VDDD-supply = <&reg_1p5v>;
149         };
150 };
151
152 &pci0 {
153         pinctrl-0 = <&usb0_pins>;
154         pinctrl-names = "default";
155 };
156
157 &pci1 {
158         status = "okay";
159         pinctrl-0 = <&usb1_pins>;
160         pinctrl-names = "default";
161 };
162
163 &pcie_bus_clk {
164         clock-frequency = <100000000>;
165 };
166
167 &pfc {
168         can0_pins: can0 {
169                 groups = "can0_data_d";
170                 function = "can0";
171         };
172
173         avb_pins: avb {
174                 groups = "avb_mdio", "avb_gmii";
175                 function = "avb";
176         };
177
178         i2c2_pins: i2c2 {
179                 groups = "i2c2";
180                 function = "i2c2";
181         };
182
183         scif0_pins: scif0 {
184                 groups = "scif0_data_d";
185                 function = "scif0";
186         };
187
188         scifb1_pins: scifb1 {
189                 groups = "scifb1_data_d", "scifb1_ctrl";
190                 function = "scifb1";
191         };
192
193         sdhi1_pins: sd1 {
194                 groups = "sdhi1_data4", "sdhi1_ctrl";
195                 function = "sdhi1";
196                 power-source = <3300>;
197         };
198
199         sdhi1_pins_uhs: sd1_uhs {
200                 groups = "sdhi1_data4", "sdhi1_ctrl";
201                 function = "sdhi1";
202                 power-source = <1800>;
203         };
204
205         sound_pins: sound {
206                 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
207                 function = "ssi";
208         };
209
210         usb0_pins: usb0 {
211                 groups = "usb0";
212                 function = "usb0";
213         };
214
215         usb1_pins: usb1 {
216                 groups = "usb1";
217                 function = "usb1";
218         };
219 };
220
221 &rcar_sound {
222         pinctrl-0 = <&sound_pins>;
223         pinctrl-names = "default";
224         status = "okay";
225
226         /* Single DAI */
227         #sound-dai-cells = <0>;
228
229         rcar_sound,dai {
230                 dai0 {
231                         playback = <&ssi1 &src3 &dvc1>;
232                         capture = <&ssi0 &src2 &dvc0>;
233                 };
234         };
235 };
236
237 &rwdt {
238         timeout-sec = <60>;
239         status = "okay";
240 };
241
242 &scif0 {
243         pinctrl-0 = <&scif0_pins>;
244         pinctrl-names = "default";
245
246         status = "okay";
247 };
248
249 &scifb1 {
250         pinctrl-0 = <&scifb1_pins>;
251         pinctrl-names = "default";
252
253         uart-has-rtscts;
254         status = "okay";
255 };
256
257 &sdhi1 {
258         pinctrl-0 = <&sdhi1_pins>;
259         pinctrl-1 = <&sdhi1_pins_uhs>;
260         pinctrl-names = "default", "state_uhs";
261
262         vmmc-supply = <&vcc_sdhi1>;
263         vqmmc-supply = <&vccq_sdhi1>;
264         cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
265         wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
266         sd-uhs-sdr50;
267         status = "okay";
268 };
269
270 &ssi1 {
271         shared-pin;
272 };
273
274 &usbphy {
275         status = "okay";
276 };