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