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