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 43&can0 { 44 pinctrl-0 = <&can0_pins>; 45 pinctrl-names = "default"; 46 status = "okay"; 47}; 48 49&can1 { 50 pinctrl-0 = <&can1_pins>; 51 pinctrl-names = "default"; 52 status = "okay"; 53}; 54 55&ehci0 { 56 dr_mode = "otg"; 57 status = "okay"; 58}; 59 60&hscif0 { 61 pinctrl-0 = <&hscif0_pins>; 62 pinctrl-names = "default"; 63 uart-has-rtscts; 64 65 status = "okay"; 66}; 67 68&hsusb { 69 dr_mode = "otg"; 70 status = "okay"; 71}; 72 73&i2c2 { 74 /* U11 */ 75 gpio_exp_74: gpio@74 { 76 compatible = "ti,tca9539"; 77 reg = <0x74>; 78 gpio-controller; 79 #gpio-cells = <2>; 80 interrupt-controller; 81 interrupt-parent = <&gpio6>; 82 interrupts = <8 IRQ_TYPE_EDGE_FALLING>; 83 84 audio_out_off { 85 gpio-hog; 86 gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */ 87 output-high; 88 line-name = "Audio_Out_OFF"; 89 }; 90 91 hub_pwen { 92 gpio-hog; 93 gpios = <6 GPIO_ACTIVE_HIGH>; 94 output-high; 95 line-name = "HUB pwen"; 96 }; 97 98 hub_rst { 99 gpio-hog; 100 gpios = <7 GPIO_ACTIVE_HIGH>; 101 output-high; 102 line-name = "HUB rst"; 103 }; 104 105 otg_offvbusn { 106 gpio-hog; 107 gpios = <8 GPIO_ACTIVE_HIGH>; 108 output-low; 109 line-name = "OTG OFFVBUSn"; 110 }; 111 112 otg_extlpn { 113 gpio-hog; 114 gpios = <9 GPIO_ACTIVE_HIGH>; 115 output-high; 116 line-name = "OTG EXTLPn"; 117 }; 118 119 snd_rst { 120 gpio-hog; 121 gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */ 122 output-high; 123 line-name = "SND_RST"; 124 }; 125 }; 126 127 /* U5 */ 128 gpio_exp_75: gpio@75 { 129 compatible = "ti,tca9539"; 130 reg = <0x75>; 131 gpio-controller; 132 #gpio-cells = <2>; 133 interrupt-controller; 134 interrupt-parent = <&gpio6>; 135 interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 136 }; 137 138 i2cswitch2: i2c-switch@71 { 139 compatible = "nxp,pca9548"; 140 #address-cells = <1>; 141 #size-cells = <0>; 142 reg = <0x71>; 143 reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; 144 145 /* Audio_SDA, Audio_SCL */ 146 i2c@7 { 147 #address-cells = <1>; 148 #size-cells = <0>; 149 reg = <7>; 150 151 pcm3168a: audio-codec@44 { 152 #sound-dai-cells = <0>; 153 compatible = "ti,pcm3168a"; 154 reg = <0x44>; 155 clocks = <&clksndsel>; 156 clock-names = "scki"; 157 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>; 164 165 ports { 166 #address-cells = <1>; 167 #size-cells = <0>; 168 mclk-fs = <512>; 169 port@0 { 170 reg = <0>; 171 pcm3168a_endpoint_p: endpoint { 172 remote-endpoint = <&rsnd_for_pcm3168a_play>; 173 clocks = <&clksndsel>; 174 }; 175 }; 176 port@1 { 177 reg = <1>; 178 pcm3168a_endpoint_c: endpoint { 179 remote-endpoint = <&rsnd_for_pcm3168a_capture>; 180 clocks = <&clksndsel>; 181 }; 182 }; 183 }; 184 }; 185 }; 186 }; 187}; 188 189&i2c4 { 190 gpio_exp_76: gpio@76 { 191 compatible = "ti,tca9539"; 192 reg = <0x76>; 193 gpio-controller; 194 #gpio-cells = <2>; 195 interrupt-controller; 196 interrupt-parent = <&gpio7>; 197 interrupts = <3 IRQ_TYPE_EDGE_FALLING>; 198 }; 199 200 gpio_exp_77: gpio@77 { 201 compatible = "ti,tca9539"; 202 reg = <0x77>; 203 gpio-controller; 204 #gpio-cells = <2>; 205 interrupt-controller; 206 interrupt-parent = <&gpio5>; 207 interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 208 }; 209 210 i2cswitch4: i2c-switch@71 { 211 compatible = "nxp,pca9548"; 212 #address-cells = <1>; 213 #size-cells = <0>; 214 reg = <0x71>; 215 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; 216 }; 217}; 218 219&ohci0 { 220 dr_mode = "otg"; 221 status = "okay"; 222}; 223 224&pcie_bus_clk { 225 clock-frequency = <100000000>; 226}; 227 228&pciec0 { 229 status = "okay"; 230}; 231 232&pciec1 { 233 status = "okay"; 234}; 235 236&pfc { 237 can0_pins: can0 { 238 groups = "can0_data_a"; 239 function = "can0"; 240 }; 241 242 can1_pins: can1 { 243 groups = "can1_data"; 244 function = "can1"; 245 }; 246 247 hscif0_pins: hscif0 { 248 groups = "hscif0_data", "hscif0_ctrl"; 249 function = "hscif0"; 250 }; 251 252 scif1_pins: scif1 { 253 groups = "scif1_data_b", "scif1_ctrl"; 254 function = "scif1"; 255 }; 256 257 usb0_pins: usb0 { 258 groups = "usb0"; 259 function = "usb0"; 260 }; 261 262 sound_pcm_pins: sound-pcm { 263 groups = "ssi349_ctrl", "ssi3_data", "ssi4_data"; 264 function = "ssi"; 265 }; 266}; 267 268&scif1 { 269 pinctrl-0 = <&scif1_pins>; 270 pinctrl-names = "default"; 271 uart-has-rtscts; 272 273 status = "okay"; 274}; 275 276&usb2_phy0 { 277 pinctrl-0 = <&usb0_pins>; 278 pinctrl-names = "default"; 279 280 status = "okay"; 281}; 282 283&xhci0 { 284 status = "okay"; 285}; 286 287&sound_card { 288 dais = <&rsnd_port0 /* ak4613 */ 289 &rsnd_port1 /* HDMI0 */ 290 &rsnd_port2 /* pcm3168a playback */ 291 &rsnd_port3 /* pcm3168a capture */ 292 >; 293}; 294 295&rcar_sound { 296 pinctrl-0 = <&sound_pins 297 &sound_clk_pins 298 &sound_pcm_pins>; 299 300 ports { 301 /* rsnd_port0/1 are on salvator-common */ 302 rsnd_port2: port@2 { 303 reg = <2>; 304 rsnd_for_pcm3168a_play: endpoint { 305 remote-endpoint = <&pcm3168a_endpoint_p>; 306 307 dai-format = "i2s"; 308 bitclock-master = <&rsnd_for_pcm3168a_play>; 309 frame-master = <&rsnd_for_pcm3168a_play>; 310 dai-tdm-slot-num = <8>; 311 312 playback = <&ssi3>; 313 }; 314 }; 315 rsnd_port3: port@3 { 316 reg = <3>; 317 rsnd_for_pcm3168a_capture: endpoint { 318 remote-endpoint = <&pcm3168a_endpoint_c>; 319 320 dai-format = "i2s"; 321 bitclock-master = <&rsnd_for_pcm3168a_capture>; 322 frame-master = <&rsnd_for_pcm3168a_capture>; 323 dai-tdm-slot-num = <6>; 324 325 capture = <&ssi4>; 326 }; 327 }; 328 }; 329}; 330 331&ssi4 { 332 shared-pin; 333}; 334