blob: 50de17e4fb3f25ed0ad490d9b4e593cab2b2cc5a [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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 aliases {
11 serial1 = &hscif0;
12 serial2 = &scif1;
13 serial3 = &hscif1;
14 mmc2 = &sdhi3;
15 };
16
17 clksndsel: clksndsel {
18 #clock-cells = <0>;
19 compatible = "gpio-mux-clock";
20 clocks = <&cs2000>, <&audio_clk_a>; /* clk8snd, clksnd */
21 select-gpios = <&gpio_exp_75 13 GPIO_ACTIVE_HIGH>;
22 };
23
24 hdmi1-out {
25 compatible = "hdmi-connector";
26 type = "a";
27
28 port {
29 hdmi1_con: endpoint {
30 remote-endpoint = <&adv7513_out>;
31 };
32 };
33 };
34
35 accel_3v3: regulator-acc-3v3 {
36 compatible = "regulator-fixed";
37 regulator-name = "accel-3v3";
38 regulator-min-microvolt = <3300000>;
39 regulator-max-microvolt = <3300000>;
40 };
41
42 hdmi_1v8: regulator-hdmi-1v8 {
43 compatible = "regulator-fixed";
44 regulator-name = "hdmi-1v8";
45 regulator-min-microvolt = <1800000>;
46 regulator-max-microvolt = <1800000>;
47 };
48
49 hdmi_3v3: regulator-hdmi-3v3 {
50 compatible = "regulator-fixed";
51 regulator-name = "hdmi-3v3";
52 regulator-min-microvolt = <3300000>;
53 regulator-max-microvolt = <3300000>;
54 };
55
56 snd_3p3v: regulator-snd_3p3v {
57 compatible = "regulator-fixed";
58 regulator-name = "snd-3.3v";
59 regulator-min-microvolt = <3300000>;
60 regulator-max-microvolt = <3300000>;
61 };
62
63 snd_vcc5v: regulator-snd_vcc5v {
64 compatible = "regulator-fixed";
65 regulator-name = "snd-vcc5v";
66 regulator-min-microvolt = <5000000>;
67 regulator-max-microvolt = <5000000>;
68 };
69
70 wlan_en: regulator-wlan_en {
71 compatible = "regulator-fixed";
72 regulator-name = "wlan-en-regulator";
73
74 regulator-min-microvolt = <3300000>;
75 regulator-max-microvolt = <3300000>;
76
77 gpio = <&gpio_exp_74 4 GPIO_ACTIVE_HIGH>;
78 startup-delay-us = <70000>;
79 enable-active-high;
80 };
81};
82
83&can0 {
84 pinctrl-0 = <&can0_pins>;
85 pinctrl-names = "default";
86 status = "okay";
87};
88
89&can1 {
90 pinctrl-0 = <&can1_pins>;
91 pinctrl-names = "default";
92 status = "okay";
93};
94
95&du {
96 ports {
97 port@0 {
98 du_out_rgb: endpoint {
99 remote-endpoint = <&adv7513_in>;
100 };
101 };
102 };
103};
104
105&ehci0 {
106 dr_mode = "otg";
107 status = "okay";
108};
109
110&hscif0 {
111 pinctrl-0 = <&hscif0_pins>;
112 pinctrl-names = "default";
113 uart-has-rtscts;
114
115 status = "okay";
116};
117
118&hscif1 {
119 pinctrl-0 = <&hscif1_pins>;
120 pinctrl-names = "default";
121 uart-has-rtscts;
122
123 status = "okay";
124};
125
126&hsusb {
127 dr_mode = "otg";
128 status = "okay";
129};
130
131&i2c2 {
132 i2cmux2: i2c-mux@71 {
133 compatible = "nxp,pca9548";
134 #address-cells = <1>;
135 #size-cells = <0>;
136 reg = <0x71>;
137 reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
138
139 /* HDMIoSDA, HDMIoSCL */
140 i2c@4 {
141 #address-cells = <1>;
142 #size-cells = <0>;
143 reg = <4>;
144
145 hdmi@3d {
146 compatible = "adi,adv7513";
147 reg = <0x3d>;
148
149 pinctrl-0 = <&hdmi1_pins>;
150 pinctrl-names = "default";
151
152 interrupt-parent = <&gpio2>;
153 interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
154
155 clocks = <&cs2000>;
156 clock-names = "cec";
157
158 pd-gpios = <&gpio_exp_75 5 GPIO_ACTIVE_LOW>;
159
160 avdd-supply = <&hdmi_1v8>;
161 dvdd-supply = <&hdmi_1v8>;
162 pvdd-supply = <&hdmi_1v8>;
163 dvdd-3v-supply = <&hdmi_3v3>;
164 bgvdd-supply = <&hdmi_1v8>;
165
166 adi,input-depth = <8>;
167 adi,input-colorspace = "rgb";
168 adi,input-clock = "1x";
169
170 ports {
171 #address-cells = <1>;
172 #size-cells = <0>;
173
174 port@0 {
175 reg = <0>;
176 adv7513_in: endpoint {
177 remote-endpoint = <&du_out_rgb>;
178 };
179 };
180
181 port@1 {
182 reg = <1>;
183 adv7513_out: endpoint {
184 remote-endpoint = <&hdmi1_con>;
185 };
186 };
187 };
188 };
189 };
190
191 /* Audio_SDA, Audio_SCL */
192 i2c@7 {
193 #address-cells = <1>;
194 #size-cells = <0>;
195 reg = <7>;
196
197 accelerometer@1d {
198 compatible = "st,lsm9ds0-imu";
199 reg = <0x1d>;
200
201 vdd-supply = <&accel_3v3>;
202 vddio-supply = <&accel_3v3>;
203 };
204
205 pcm3168a: audio-codec@44 {
206 #sound-dai-cells = <0>;
207 compatible = "ti,pcm3168a";
208 reg = <0x44>;
209 clocks = <&clksndsel>;
210 clock-names = "scki";
211
212 VDD1-supply = <&snd_3p3v>;
213 VDD2-supply = <&snd_3p3v>;
214 VCCAD1-supply = <&snd_vcc5v>;
215 VCCAD2-supply = <&snd_vcc5v>;
216 VCCDA1-supply = <&snd_vcc5v>;
217 VCCDA2-supply = <&snd_vcc5v>;
218 };
219
220 gyroscope@6b {
221 compatible = "st,lsm9ds0-gyro";
222 reg = <0x6b>;
223
224 vdd-supply = <&accel_3v3>;
225 vddio-supply = <&accel_3v3>;
226 };
227 };
228 };
229
230 /* U11 */
231 gpio_exp_74: gpio@74 {
232 compatible = "ti,tca9539";
233 reg = <0x74>;
234 gpio-controller;
235 #gpio-cells = <2>;
236 interrupt-controller;
Tom Rini93743d22024-04-01 09:08:13 -0400237 #interrupt-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -0500238 interrupt-parent = <&gpio6>;
239 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
240
241 audio-out-off-hog {
242 gpio-hog;
243 gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */
244 output-high;
245 line-name = "Audio_Out_OFF";
246 };
247
248 hub-pwen-hog {
249 gpio-hog;
250 gpios = <6 GPIO_ACTIVE_HIGH>;
251 output-high;
252 line-name = "HUB pwen";
253 };
254
255 hub-rst-hog {
256 gpio-hog;
257 gpios = <7 GPIO_ACTIVE_HIGH>;
258 output-high;
259 line-name = "HUB rst";
260 };
261
262 otg-extlpn-hog {
263 gpio-hog;
264 gpios = <9 GPIO_ACTIVE_HIGH>;
265 output-high;
266 line-name = "OTG EXTLPn";
267 };
268
269 otg-offvbusn-hog {
270 gpio-hog;
271 gpios = <8 GPIO_ACTIVE_HIGH>;
272 output-low;
273 line-name = "OTG OFFVBUSn";
274 };
275
276 sd-wifi-mux-hog {
277 gpio-hog;
278 gpios = <5 GPIO_ACTIVE_HIGH>;
279 output-low; /* Connect WL1837 */
280 line-name = "SD WiFi mux";
281 };
282
283 snd-rst-hog {
284 gpio-hog;
285 gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */
286 output-high;
287 line-name = "SND_RST";
288 };
289 };
290
291 /* U5 */
292 gpio_exp_75: gpio@75 {
293 compatible = "ti,tca9539";
294 reg = <0x75>;
295 gpio-controller;
296 #gpio-cells = <2>;
297 interrupt-controller;
Tom Rini93743d22024-04-01 09:08:13 -0400298 #interrupt-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -0500299 interrupt-parent = <&gpio6>;
300 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
301 };
302};
303
304&i2c4 {
305 i2cmux4: i2c-mux@71 {
306 compatible = "nxp,pca9548";
307 #address-cells = <1>;
308 #size-cells = <0>;
309 reg = <0x71>;
310 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
311 };
312
313 gpio_exp_76: gpio@76 {
314 compatible = "ti,tca9539";
315 reg = <0x76>;
316 gpio-controller;
317 #gpio-cells = <2>;
318 interrupt-controller;
Tom Rini93743d22024-04-01 09:08:13 -0400319 #interrupt-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -0500320 interrupt-parent = <&gpio7>;
321 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
322 };
323
324 gpio_exp_77: gpio@77 {
325 compatible = "ti,tca9539";
326 reg = <0x77>;
327 gpio-controller;
328 #gpio-cells = <2>;
329 interrupt-controller;
Tom Rini93743d22024-04-01 09:08:13 -0400330 #interrupt-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -0500331 interrupt-parent = <&gpio5>;
332 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
333 };
334};
335
336&ohci0 {
337 dr_mode = "otg";
338 status = "okay";
339};
340
341&pcie_bus_clk {
342 clock-frequency = <100000000>;
343};
344
345&pciec0 {
346 status = "okay";
347};
348
349&pciec1 {
350 status = "okay";
351};
352
353&pfc {
354 can0_pins: can0 {
355 groups = "can0_data_a";
356 function = "can0";
357 };
358
359 can1_pins: can1 {
360 groups = "can1_data";
361 function = "can1";
362 };
363
364 hdmi1_pins: hdmi1 {
365 adv7513-interrupt {
366 pins = "GP_2_14";
367 bias-pull-up;
368 };
369
370 du {
371 groups = "du_rgb888", "du_sync", "du_clk_out_0",
372 "du_disp";
373 function = "du";
374 };
375 };
376
377 hscif0_pins: hscif0 {
378 groups = "hscif0_data", "hscif0_ctrl";
379 function = "hscif0";
380 };
381
382 hscif1_pins: hscif1 {
383 groups = "hscif1_data_a", "hscif1_ctrl_a";
384 function = "hscif1";
385 };
386
387 scif1_pins: scif1 {
388 groups = "scif1_data_b";
389 function = "scif1";
390 };
391
392 sdhi3_pins: sdhi3 {
393 groups = "sdhi3_data4", "sdhi3_ctrl";
394 function = "sdhi3";
395 power-source = <3300>;
396 };
397
398 sound_pcm_pins: sound-pcm {
399 groups = "ssi349_ctrl", "ssi3_data", "ssi4_data";
400 function = "ssi";
401 };
402
403 usb0_pins: usb0 {
404 groups = "usb0";
405 function = "usb0";
406 };
407};
408
409&rcar_sound {
410 pinctrl-0 = <&sound_pins
411 &sound_clk_pins
412 &sound_pcm_pins>;
413};
414
415&scif1 {
416 pinctrl-0 = <&scif1_pins>;
417 pinctrl-names = "default";
418
419 status = "okay";
420};
421
422&sdhi3 {
423 pinctrl-0 = <&sdhi3_pins>;
424 pinctrl-names = "default";
425
426 vmmc-supply = <&wlan_en>;
427 vqmmc-supply = <&wlan_en>;
428 bus-width = <4>;
429 no-1-8-v;
430 non-removable;
431 cap-power-off-card;
432 keep-power-in-suspend;
433 max-frequency = <26000000>;
434 status = "okay";
435
436 #address-cells = <1>;
437 #size-cells = <0>;
438 wlcore: wlcore@2 {
439 compatible = "ti,wl1837";
440 reg = <2>;
441 interrupt-parent = <&gpio1>;
442 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
443 };
444};
445
446&ssi4 {
447 shared-pin;
448};
449
450&usb2_phy0 {
451 pinctrl-0 = <&usb0_pins>;
452 pinctrl-names = "default";
453
454 status = "okay";
455};
456
457&xhci0 {
458 status = "okay";
459};
460
461/*
462 * For sound-test.
463 *
464 * We can switch Audio Card for testing
465 * see also ulcb.dtsi
466 *
467 * #include "ulcb-kf-simple-audio-card.dtsi"
468 * #include "ulcb-kf-simple-audio-card-mix+split.dtsi"
469 * #include "ulcb-kf-audio-graph-card.dtsi"
470 * #include "ulcb-kf-audio-graph-card-mix+split.dtsi"
471 * #include "ulcb-kf-audio-graph-card2-mix+split.dtsi"
472 */
473#include "ulcb-kf-audio-graph-card2.dtsi"