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