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