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 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; 237 #interrupt-cells = <2>; 238 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; 298 #interrupt-cells = <2>; 299 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; 319 #interrupt-cells = <2>; 320 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; 330 #interrupt-cells = <2>; 331 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" 474