1 // SPDX-License-Identifier: GPL-2.0
3 * Device Tree Source for the Kingfisher (ULCB extension) board
5 * Copyright (C) 2017 Renesas Electronics Corp.
6 * Copyright (C) 2017 Cogent Embedded, Inc.
11 * aplay -D plughw:0,2 xxx.wav
12 * arecord -D plughw:0,3 xxx.wav
22 clksndsel: clksndsel {
24 compatible = "gpio-mux-clock";
25 clocks = <&cs2000>, <&audio_clk_a>; /* clk8snd, clksnd */
26 select-gpios = <&gpio_exp_75 13 GPIO_ACTIVE_HIGH>;
30 compatible = "hdmi-connector";
35 remote-endpoint = <&adv7513_out>;
40 accel_3v3: regulator-acc-3v3 {
41 compatible = "regulator-fixed";
42 regulator-name = "accel-3v3";
43 regulator-min-microvolt = <3300000>;
44 regulator-max-microvolt = <3300000>;
47 hdmi_1v8: regulator-hdmi-1v8 {
48 compatible = "regulator-fixed";
49 regulator-name = "hdmi-1v8";
50 regulator-min-microvolt = <1800000>;
51 regulator-max-microvolt = <1800000>;
54 hdmi_3v3: regulator-hdmi-3v3 {
55 compatible = "regulator-fixed";
56 regulator-name = "hdmi-3v3";
57 regulator-min-microvolt = <3300000>;
58 regulator-max-microvolt = <3300000>;
61 snd_3p3v: regulator-snd_3p3v {
62 compatible = "regulator-fixed";
63 regulator-name = "snd-3.3v";
64 regulator-min-microvolt = <3300000>;
65 regulator-max-microvolt = <3300000>;
68 snd_vcc5v: regulator-snd_vcc5v {
69 compatible = "regulator-fixed";
70 regulator-name = "snd-vcc5v";
71 regulator-min-microvolt = <5000000>;
72 regulator-max-microvolt = <5000000>;
75 wlan_en: regulator-wlan_en {
76 compatible = "regulator-fixed";
77 regulator-name = "wlan-en-regulator";
79 regulator-min-microvolt = <3300000>;
80 regulator-max-microvolt = <3300000>;
82 gpio = <&gpio_exp_74 4 GPIO_ACTIVE_HIGH>;
83 startup-delay-us = <70000>;
89 pinctrl-0 = <&can0_pins>;
90 pinctrl-names = "default";
95 pinctrl-0 = <&can1_pins>;
96 pinctrl-names = "default";
103 du_out_rgb: endpoint {
104 remote-endpoint = <&adv7513_in>;
116 pinctrl-0 = <&hscif0_pins>;
117 pinctrl-names = "default";
129 i2cswitch2: i2c-switch@71 {
130 compatible = "nxp,pca9548";
131 #address-cells = <1>;
134 reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
136 /* HDMIoSDA, HDMIoSCL */
138 #address-cells = <1>;
143 compatible = "adi,adv7513";
146 pinctrl-0 = <&hdmi1_pins>;
147 pinctrl-names = "default";
149 interrupt-parent = <&gpio2>;
150 interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
155 pd-gpios = <&gpio_exp_75 5 GPIO_ACTIVE_LOW>;
157 avdd-supply = <&hdmi_1v8>;
158 dvdd-supply = <&hdmi_1v8>;
159 pvdd-supply = <&hdmi_1v8>;
160 dvdd-3v-supply = <&hdmi_3v3>;
161 bgvdd-supply = <&hdmi_1v8>;
163 adi,input-depth = <8>;
164 adi,input-colorspace = "rgb";
165 adi,input-clock = "1x";
168 #address-cells = <1>;
173 adv7513_in: endpoint {
174 remote-endpoint = <&du_out_rgb>;
180 adv7513_out: endpoint {
181 remote-endpoint = <&hdmi1_con>;
188 /* Audio_SDA, Audio_SCL */
190 #address-cells = <1>;
195 compatible = "st,lsm9ds0-imu";
198 vdd-supply = <&accel_3v3>;
199 vddio-supply = <&accel_3v3>;
202 pcm3168a: audio-codec@44 {
203 #sound-dai-cells = <0>;
204 compatible = "ti,pcm3168a";
206 clocks = <&clksndsel>;
207 clock-names = "scki";
209 VDD1-supply = <&snd_3p3v>;
210 VDD2-supply = <&snd_3p3v>;
211 VCCAD1-supply = <&snd_vcc5v>;
212 VCCAD2-supply = <&snd_vcc5v>;
213 VCCDA1-supply = <&snd_vcc5v>;
214 VCCDA2-supply = <&snd_vcc5v>;
217 #address-cells = <1>;
222 pcm3168a_endpoint_p: endpoint {
223 remote-endpoint = <&rsnd_for_pcm3168a_play>;
224 clocks = <&clksndsel>;
229 pcm3168a_endpoint_c: endpoint {
230 remote-endpoint = <&rsnd_for_pcm3168a_capture>;
231 clocks = <&clksndsel>;
238 compatible = "st,lsm9ds0-gyro";
241 vdd-supply = <&accel_3v3>;
242 vddio-supply = <&accel_3v3>;
248 gpio_exp_74: gpio@74 {
249 compatible = "ti,tca9539";
253 interrupt-controller;
254 #interrupt-cells = <2>;
255 interrupt-parent = <&gpio6>;
256 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
260 gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */
262 line-name = "Audio_Out_OFF";
267 gpios = <6 GPIO_ACTIVE_HIGH>;
269 line-name = "HUB pwen";
274 gpios = <7 GPIO_ACTIVE_HIGH>;
276 line-name = "HUB rst";
281 gpios = <9 GPIO_ACTIVE_HIGH>;
283 line-name = "OTG EXTLPn";
288 gpios = <8 GPIO_ACTIVE_HIGH>;
290 line-name = "OTG OFFVBUSn";
295 gpios = <5 GPIO_ACTIVE_HIGH>;
296 output-low; /* Connect WL1837 */
297 line-name = "SD WiFi mux";
302 gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */
304 line-name = "SND_RST";
309 gpio_exp_75: gpio@75 {
310 compatible = "ti,tca9539";
314 interrupt-controller;
315 #interrupt-cells = <2>;
316 interrupt-parent = <&gpio6>;
317 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
322 i2cswitch4: i2c-switch@71 {
323 compatible = "nxp,pca9548";
324 #address-cells = <1>;
327 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
330 gpio_exp_76: gpio@76 {
331 compatible = "ti,tca9539";
335 interrupt-controller;
336 #interrupt-cells = <2>;
337 interrupt-parent = <&gpio7>;
338 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
341 gpio_exp_77: gpio@77 {
342 compatible = "ti,tca9539";
346 interrupt-controller;
347 #interrupt-cells = <2>;
348 interrupt-parent = <&gpio5>;
349 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
359 clock-frequency = <100000000>;
372 groups = "can0_data_a";
377 groups = "can1_data";
388 groups = "du_rgb888", "du_sync", "du_clk_out_0",
394 hscif0_pins: hscif0 {
395 groups = "hscif0_data", "hscif0_ctrl";
400 groups = "scif1_data_b";
405 groups = "sdhi3_data4", "sdhi3_ctrl";
407 power-source = <3300>;
410 sound_pcm_pins: sound-pcm {
411 groups = "ssi349_ctrl", "ssi3_data", "ssi4_data";
422 pinctrl-0 = <&sound_pins
427 /* rsnd_port0/1 are defined in ulcb.dtsi */
430 rsnd_for_pcm3168a_play: endpoint {
431 remote-endpoint = <&pcm3168a_endpoint_p>;
434 dai-tdm-slot-num = <8>;
440 rsnd_for_pcm3168a_capture: endpoint {
441 remote-endpoint = <&pcm3168a_endpoint_c>;
444 dai-tdm-slot-num = <6>;
452 pinctrl-0 = <&scif1_pins>;
453 pinctrl-names = "default";
459 pinctrl-0 = <&sdhi3_pins>;
460 pinctrl-names = "default";
462 vmmc-supply = <&wlan_en>;
463 vqmmc-supply = <&wlan_en>;
468 keep-power-in-suspend;
469 max-frequency = <26000000>;
472 #address-cells = <1>;
475 compatible = "ti,wl1837";
477 interrupt-parent = <&gpio1>;
478 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
483 links = <&rsnd_port0 /* ak4613 */
484 &rsnd_port1 /* HDMI0 */
485 &rsnd_port2 /* pcm3168a playback */
486 &rsnd_port3 /* pcm3168a capture */
495 pinctrl-0 = <&usb0_pins>;
496 pinctrl-names = "default";