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
21 clksndsel: clksndsel {
23 compatible = "gpio-mux-clock";
24 clocks = <&cs2000>, <&audio_clk_a>; /* clk8snd, clksnd */
25 select-gpios = <&gpio_exp_75 13 GPIO_ACTIVE_HIGH>;
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>;
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>;
44 pinctrl-0 = <&can0_pins>;
45 pinctrl-names = "default";
50 pinctrl-0 = <&can1_pins>;
51 pinctrl-names = "default";
61 pinctrl-0 = <&hscif0_pins>;
62 pinctrl-names = "default";
75 gpio_exp_74: gpio@74 {
76 compatible = "ti,tca9539";
81 interrupt-parent = <&gpio6>;
82 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
86 gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */
88 line-name = "Audio_Out_OFF";
93 gpios = <6 GPIO_ACTIVE_HIGH>;
95 line-name = "HUB pwen";
100 gpios = <7 GPIO_ACTIVE_HIGH>;
102 line-name = "HUB rst";
107 gpios = <8 GPIO_ACTIVE_HIGH>;
109 line-name = "OTG OFFVBUSn";
114 gpios = <9 GPIO_ACTIVE_HIGH>;
116 line-name = "OTG EXTLPn";
121 gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */
123 line-name = "SND_RST";
128 gpio_exp_75: gpio@75 {
129 compatible = "ti,tca9539";
133 interrupt-controller;
134 interrupt-parent = <&gpio6>;
135 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
138 i2cswitch2: i2c-switch@71 {
139 compatible = "nxp,pca9548";
140 #address-cells = <1>;
143 reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
145 /* Audio_SDA, Audio_SCL */
147 #address-cells = <1>;
151 pcm3168a: audio-codec@44 {
152 #sound-dai-cells = <0>;
153 compatible = "ti,pcm3168a";
155 clocks = <&clksndsel>;
156 clock-names = "scki";
158 VDD1-supply = <&snd_3p3v>;
159 VDD2-supply = <&snd_3p3v>;
160 VCCAD1-supply = <&snd_vcc5v>;
161 VCCAD2-supply = <&snd_vcc5v>;
162 VCCDA1-supply = <&snd_vcc5v>;
163 VCCDA2-supply = <&snd_vcc5v>;
166 #address-cells = <1>;
171 pcm3168a_endpoint_p: endpoint {
172 remote-endpoint = <&rsnd_for_pcm3168a_play>;
173 clocks = <&clksndsel>;
178 pcm3168a_endpoint_c: endpoint {
179 remote-endpoint = <&rsnd_for_pcm3168a_capture>;
180 clocks = <&clksndsel>;
190 gpio_exp_76: gpio@76 {
191 compatible = "ti,tca9539";
195 interrupt-controller;
196 interrupt-parent = <&gpio7>;
197 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
200 gpio_exp_77: gpio@77 {
201 compatible = "ti,tca9539";
205 interrupt-controller;
206 interrupt-parent = <&gpio5>;
207 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
210 i2cswitch4: i2c-switch@71 {
211 compatible = "nxp,pca9548";
212 #address-cells = <1>;
215 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
225 clock-frequency = <100000000>;
238 groups = "can0_data_a";
243 groups = "can1_data";
247 hscif0_pins: hscif0 {
248 groups = "hscif0_data", "hscif0_ctrl";
253 groups = "scif1_data_b", "scif1_ctrl";
262 sound_pcm_pins: sound-pcm {
263 groups = "ssi349_ctrl", "ssi3_data", "ssi4_data";
269 pinctrl-0 = <&scif1_pins>;
270 pinctrl-names = "default";
277 pinctrl-0 = <&usb0_pins>;
278 pinctrl-names = "default";
288 dais = <&rsnd_port0 /* ak4613 */
289 &rsnd_port1 /* HDMI0 */
290 &rsnd_port2 /* pcm3168a playback */
291 &rsnd_port3 /* pcm3168a capture */
296 pinctrl-0 = <&sound_pins
301 /* rsnd_port0/1 are on salvator-common */
304 rsnd_for_pcm3168a_play: endpoint {
305 remote-endpoint = <&pcm3168a_endpoint_p>;
308 bitclock-master = <&rsnd_for_pcm3168a_play>;
309 frame-master = <&rsnd_for_pcm3168a_play>;
310 dai-tdm-slot-num = <8>;
317 rsnd_for_pcm3168a_capture: endpoint {
318 remote-endpoint = <&pcm3168a_endpoint_c>;
321 bitclock-master = <&rsnd_for_pcm3168a_capture>;
322 frame-master = <&rsnd_for_pcm3168a_capture>;
323 dai-tdm-slot-num = <6>;