]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/gnu/dts/arm64/renesas/ulcb-kf.dtsi
Import DTS files from Linux 5.3
[FreeBSD/FreeBSD.git] / sys / gnu / dts / arm64 / renesas / ulcb-kf.dtsi
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  * SSI-PCM3168A
11  *      aplay   -D plughw:0,2 xxx.wav
12  *      arecord -D plughw:0,3 xxx.wav
13  */
14
15 / {
16         aliases {
17                 serial1 = &hscif0;
18                 serial2 = &scif1;
19         };
20
21         clksndsel: clksndsel {
22                 #clock-cells = <0>;
23                 compatible = "gpio-mux-clock";
24                 clocks = <&cs2000>, <&audio_clk_a>; /* clk8snd, clksnd */
25                 select-gpios = <&gpio_exp_75 13 GPIO_ACTIVE_HIGH>;
26         };
27
28         snd_3p3v: regulator-snd_3p3v {
29                 compatible = "regulator-fixed";
30                 regulator-name = "snd-3.3v";
31                 regulator-min-microvolt = <3300000>;
32                 regulator-max-microvolt = <3300000>;
33         };
34
35         snd_vcc5v: regulator-snd_vcc5v {
36                 compatible = "regulator-fixed";
37                 regulator-name = "snd-vcc5v";
38                 regulator-min-microvolt = <5000000>;
39                 regulator-max-microvolt = <5000000>;
40         };
41
42         wlan_en: regulator-wlan_en {
43                 compatible = "regulator-fixed";
44                 regulator-name = "wlan-en-regulator";
45
46                 regulator-min-microvolt = <3300000>;
47                 regulator-max-microvolt = <3300000>;
48
49                 gpio = <&gpio_exp_74 4 GPIO_ACTIVE_HIGH>;
50                 startup-delay-us = <70000>;
51                 enable-active-high;
52         };
53 };
54
55 &can0 {
56         pinctrl-0 = <&can0_pins>;
57         pinctrl-names = "default";
58         status = "okay";
59 };
60
61 &can1 {
62         pinctrl-0 = <&can1_pins>;
63         pinctrl-names = "default";
64         status = "okay";
65 };
66
67 &ehci0 {
68         dr_mode = "otg";
69         status = "okay";
70 };
71
72 &hscif0 {
73         pinctrl-0 = <&hscif0_pins>;
74         pinctrl-names = "default";
75         uart-has-rtscts;
76
77         status = "okay";
78 };
79
80 &hsusb {
81         dr_mode = "otg";
82         status = "okay";
83 };
84
85 &i2c2 {
86         /* U11 */
87         gpio_exp_74: gpio@74 {
88                 compatible = "ti,tca9539";
89                 reg = <0x74>;
90                 gpio-controller;
91                 #gpio-cells = <2>;
92                 interrupt-controller;
93                 interrupt-parent = <&gpio6>;
94                 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
95
96                 audio_out_off {
97                         gpio-hog;
98                         gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */
99                         output-high;
100                         line-name = "Audio_Out_OFF";
101                 };
102
103                 sd-wifi-mux {
104                         gpio-hog;
105                         gpios = <5 GPIO_ACTIVE_HIGH>;
106                         output-low;     /* Connect WL1837 */
107                         line-name = "SD WiFi mux";
108                 };
109
110                 hub_pwen {
111                         gpio-hog;
112                         gpios = <6 GPIO_ACTIVE_HIGH>;
113                         output-high;
114                         line-name = "HUB pwen";
115                 };
116
117                 hub_rst {
118                         gpio-hog;
119                         gpios = <7 GPIO_ACTIVE_HIGH>;
120                         output-high;
121                         line-name = "HUB rst";
122                 };
123
124                 otg_offvbusn {
125                         gpio-hog;
126                         gpios = <8 GPIO_ACTIVE_HIGH>;
127                         output-low;
128                         line-name = "OTG OFFVBUSn";
129                 };
130
131                 otg_extlpn {
132                         gpio-hog;
133                         gpios = <9 GPIO_ACTIVE_HIGH>;
134                         output-high;
135                         line-name = "OTG EXTLPn";
136                 };
137
138                 snd_rst {
139                         gpio-hog;
140                         gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */
141                         output-high;
142                         line-name = "SND_RST";
143                 };
144         };
145
146         /* U5 */
147         gpio_exp_75: gpio@75 {
148                 compatible = "ti,tca9539";
149                 reg = <0x75>;
150                 gpio-controller;
151                 #gpio-cells = <2>;
152                 interrupt-controller;
153                 interrupt-parent = <&gpio6>;
154                 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
155         };
156
157         i2cswitch2: i2c-switch@71 {
158                 compatible = "nxp,pca9548";
159                 #address-cells = <1>;
160                 #size-cells = <0>;
161                 reg = <0x71>;
162                 reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
163
164                 /* Audio_SDA, Audio_SCL */
165                 i2c@7 {
166                         #address-cells = <1>;
167                         #size-cells = <0>;
168                         reg = <7>;
169
170                         pcm3168a: audio-codec@44 {
171                                 #sound-dai-cells = <0>;
172                                 compatible = "ti,pcm3168a";
173                                 reg = <0x44>;
174                                 clocks = <&clksndsel>;
175                                 clock-names = "scki";
176
177                                 VDD1-supply     = <&snd_3p3v>;
178                                 VDD2-supply     = <&snd_3p3v>;
179                                 VCCAD1-supply   = <&snd_vcc5v>;
180                                 VCCAD2-supply   = <&snd_vcc5v>;
181                                 VCCDA1-supply   = <&snd_vcc5v>;
182                                 VCCDA2-supply   = <&snd_vcc5v>;
183
184                                 ports {
185                                         #address-cells = <1>;
186                                         #size-cells = <0>;
187                                         mclk-fs = <512>;
188                                         port@0 {
189                                                 reg = <0>;
190                                                 pcm3168a_endpoint_p: endpoint {
191                                                         remote-endpoint = <&rsnd_for_pcm3168a_play>;
192                                                         clocks = <&clksndsel>;
193                                                 };
194                                         };
195                                         port@1 {
196                                                 reg = <1>;
197                                                 pcm3168a_endpoint_c: endpoint {
198                                                         remote-endpoint = <&rsnd_for_pcm3168a_capture>;
199                                                         clocks = <&clksndsel>;
200                                                 };
201                                         };
202                                 };
203                         };
204                 };
205         };
206 };
207
208 &i2c4 {
209         gpio_exp_76: gpio@76 {
210                 compatible = "ti,tca9539";
211                 reg = <0x76>;
212                 gpio-controller;
213                 #gpio-cells = <2>;
214                 interrupt-controller;
215                 interrupt-parent = <&gpio7>;
216                 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
217         };
218
219         gpio_exp_77: gpio@77 {
220                 compatible = "ti,tca9539";
221                 reg = <0x77>;
222                 gpio-controller;
223                 #gpio-cells = <2>;
224                 interrupt-controller;
225                 interrupt-parent = <&gpio5>;
226                 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
227         };
228
229         i2cswitch4: i2c-switch@71 {
230                 compatible = "nxp,pca9548";
231                 #address-cells = <1>;
232                 #size-cells = <0>;
233                 reg = <0x71>;
234                 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
235         };
236 };
237
238 &ohci0 {
239         dr_mode = "otg";
240         status = "okay";
241 };
242
243 &pcie_bus_clk {
244         clock-frequency = <100000000>;
245 };
246
247 &pciec0 {
248         status = "okay";
249 };
250
251 &pciec1 {
252         status = "okay";
253 };
254
255 &pfc {
256         can0_pins: can0 {
257                 groups = "can0_data_a";
258                 function = "can0";
259         };
260
261         can1_pins: can1 {
262                 groups = "can1_data";
263                 function = "can1";
264         };
265
266         hscif0_pins: hscif0 {
267                 groups = "hscif0_data", "hscif0_ctrl";
268                 function = "hscif0";
269         };
270
271         scif1_pins: scif1 {
272                 groups = "scif1_data_b", "scif1_ctrl";
273                 function = "scif1";
274         };
275
276         sdhi3_pins: sdhi3 {
277                 groups = "sdhi3_data4", "sdhi3_ctrl";
278                 function = "sdhi3";
279                 power-source = <3300>;
280         };
281
282         usb0_pins: usb0 {
283                 groups = "usb0";
284                 function = "usb0";
285         };
286
287         sound_pcm_pins: sound-pcm {
288                 groups = "ssi349_ctrl", "ssi3_data", "ssi4_data";
289                 function = "ssi";
290         };
291 };
292
293 &scif1 {
294         pinctrl-0 = <&scif1_pins>;
295         pinctrl-names = "default";
296         uart-has-rtscts;
297
298         status = "okay";
299 };
300
301 &sdhi3 {
302         pinctrl-0 = <&sdhi3_pins>;
303         pinctrl-names = "default";
304
305         vmmc-supply = <&wlan_en>;
306         vqmmc-supply = <&wlan_en>;
307         bus-width = <4>;
308         no-1-8-v;
309         non-removable;
310         cap-power-off-card;
311         keep-power-in-suspend;
312         max-frequency = <26000000>;
313         status = "okay";
314
315         #address-cells = <1>;
316         #size-cells = <0>;
317         wlcore: wlcore@2 {
318                 compatible = "ti,wl1837";
319                 reg = <2>;
320                 interrupt-parent = <&gpio1>;
321                 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
322         };
323 };
324
325 &usb2_phy0 {
326         pinctrl-0 = <&usb0_pins>;
327         pinctrl-names = "default";
328
329         status = "okay";
330 };
331
332 &xhci0 {
333         status = "okay";
334 };
335
336 &sound_card {
337         dais = <&rsnd_port0     /* ak4613 */
338                 &rsnd_port1     /* HDMI0  */
339                 &rsnd_port2     /* pcm3168a playback */
340                 &rsnd_port3     /* pcm3168a capture  */
341                 >;
342 };
343
344 &rcar_sound {
345         pinctrl-0 = <&sound_pins
346                      &sound_clk_pins
347                      &sound_pcm_pins>;
348
349         ports {
350                 /* rsnd_port0/1 are on salvator-common */
351                 rsnd_port2: port@2 {
352                         reg = <2>;
353                         rsnd_for_pcm3168a_play: endpoint {
354                                 remote-endpoint = <&pcm3168a_endpoint_p>;
355
356                                 dai-format = "i2s";
357                                 bitclock-master = <&rsnd_for_pcm3168a_play>;
358                                 frame-master = <&rsnd_for_pcm3168a_play>;
359                                 dai-tdm-slot-num = <8>;
360
361                                 playback = <&ssi3>;
362                         };
363                 };
364                 rsnd_port3: port@3 {
365                         reg = <3>;
366                         rsnd_for_pcm3168a_capture: endpoint {
367                                 remote-endpoint = <&pcm3168a_endpoint_c>;
368
369                                 dai-format = "i2s";
370                                 bitclock-master = <&rsnd_for_pcm3168a_capture>;
371                                 frame-master = <&rsnd_for_pcm3168a_capture>;
372                                 dai-tdm-slot-num = <6>;
373
374                                 capture  = <&ssi4>;
375                         };
376                 };
377         };
378 };
379
380 &ssi4 {
381         shared-pin;
382 };