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