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-parent = <&gpio6>; 217 interrupts = <8 IRQ_TYPE_EDGE_FALLING>; 218 219 audio-out-off-hog { 220 gpio-hog; 221 gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */ 222 output-high; 223 line-name = "Audio_Out_OFF"; 224 }; 225 226 hub-pwen-hog { 227 gpio-hog; 228 gpios = <6 GPIO_ACTIVE_HIGH>; 229 output-high; 230 line-name = "HUB pwen"; 231 }; 232 233 hub-rst-hog { 234 gpio-hog; 235 gpios = <7 GPIO_ACTIVE_HIGH>; 236 output-high; 237 line-name = "HUB rst"; 238 }; 239 240 otg-extlpn-hog { 241 gpio-hog; 242 gpios = <9 GPIO_ACTIVE_HIGH>; 243 output-high; 244 line-name = "OTG EXTLPn"; 245 }; 246 247 otg-offvbusn-hog { 248 gpio-hog; 249 gpios = <8 GPIO_ACTIVE_HIGH>; 250 output-low; 251 line-name = "OTG OFFVBUSn"; 252 }; 253 254 sd-wifi-mux-hog { 255 gpio-hog; 256 gpios = <5 GPIO_ACTIVE_HIGH>; 257 output-low; /* Connect WL1837 */ 258 line-name = "SD WiFi mux"; 259 }; 260 261 snd-rst-hog { 262 gpio-hog; 263 gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */ 264 output-high; 265 line-name = "SND_RST"; 266 }; 267 }; 268 269 /* U5 */ 270 gpio_exp_75: gpio@75 { 271 compatible = "ti,tca9539"; 272 reg = <0x75>; 273 gpio-controller; 274 #gpio-cells = <2>; 275 interrupt-controller; 276 interrupt-parent = <&gpio6>; 277 interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 278 }; 279}; 280 281&i2c4 { 282 i2cmux4: i2c-mux@71 { 283 compatible = "nxp,pca9548"; 284 #address-cells = <1>; 285 #size-cells = <0>; 286 reg = <0x71>; 287 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; 288 }; 289 290 gpio_exp_76: gpio@76 { 291 compatible = "ti,tca9539"; 292 reg = <0x76>; 293 gpio-controller; 294 #gpio-cells = <2>; 295 interrupt-controller; 296 interrupt-parent = <&gpio7>; 297 interrupts = <3 IRQ_TYPE_EDGE_FALLING>; 298 }; 299 300 gpio_exp_77: gpio@77 { 301 compatible = "ti,tca9539"; 302 reg = <0x77>; 303 gpio-controller; 304 #gpio-cells = <2>; 305 interrupt-controller; 306 interrupt-parent = <&gpio5>; 307 interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 308 }; 309}; 310 311&ohci0 { 312 dr_mode = "otg"; 313 status = "okay"; 314}; 315 316&pcie_bus_clk { 317 clock-frequency = <100000000>; 318}; 319 320&pciec0 { 321 status = "okay"; 322}; 323 324&pciec1 { 325 status = "okay"; 326}; 327 328&pfc { 329 can0_pins: can0 { 330 groups = "can0_data_a"; 331 function = "can0"; 332 }; 333 334 can1_pins: can1 { 335 groups = "can1_data"; 336 function = "can1"; 337 }; 338 339 hdmi1_pins: hdmi1 { 340 adv7513-interrupt { 341 pins = "GP_2_14"; 342 bias-pull-up; 343 }; 344 345 du { 346 groups = "du_rgb888", "du_sync", "du_clk_out_0", 347 "du_disp"; 348 function = "du"; 349 }; 350 }; 351 352 hscif0_pins: hscif0 { 353 groups = "hscif0_data", "hscif0_ctrl"; 354 function = "hscif0"; 355 }; 356 357 hscif1_pins: hscif1 { 358 groups = "hscif1_data_a", "hscif1_ctrl_a"; 359 function = "hscif1"; 360 }; 361 362 scif1_pins: scif1 { 363 groups = "scif1_data_b"; 364 function = "scif1"; 365 }; 366 367 sdhi3_pins: sdhi3 { 368 groups = "sdhi3_data4", "sdhi3_ctrl"; 369 function = "sdhi3"; 370 power-source = <3300>; 371 }; 372 373 sound_pcm_pins: sound-pcm { 374 groups = "ssi349_ctrl", "ssi3_data", "ssi4_data"; 375 function = "ssi"; 376 }; 377 378 usb0_pins: usb0 { 379 groups = "usb0"; 380 function = "usb0"; 381 }; 382}; 383 384&rcar_sound { 385 pinctrl-0 = <&sound_pins 386 &sound_clk_pins 387 &sound_pcm_pins>; 388}; 389 390&scif1 { 391 pinctrl-0 = <&scif1_pins>; 392 pinctrl-names = "default"; 393 394 status = "okay"; 395}; 396 397&sdhi3 { 398 pinctrl-0 = <&sdhi3_pins>; 399 pinctrl-names = "default"; 400 401 vmmc-supply = <&wlan_en>; 402 vqmmc-supply = <&wlan_en>; 403 bus-width = <4>; 404 no-1-8-v; 405 non-removable; 406 cap-power-off-card; 407 keep-power-in-suspend; 408 max-frequency = <26000000>; 409 status = "okay"; 410 411 #address-cells = <1>; 412 #size-cells = <0>; 413 wlcore: wlcore@2 { 414 compatible = "ti,wl1837"; 415 reg = <2>; 416 interrupt-parent = <&gpio1>; 417 interrupts = <25 IRQ_TYPE_EDGE_FALLING>; 418 }; 419}; 420 421&ssi4 { 422 shared-pin; 423}; 424 425&usb2_phy0 { 426 pinctrl-0 = <&usb0_pins>; 427 pinctrl-names = "default"; 428 429 status = "okay"; 430}; 431 432&xhci0 { 433 status = "okay"; 434}; 435 436/* 437 * For sound-test. 438 * 439 * We can switch Audio Card for testing 440 * see also ulcb.dtsi 441 * 442 * #include "ulcb-kf-simple-audio-card.dtsi" 443 * #include "ulcb-kf-simple-audio-card-mix+split.dtsi" 444 * #include "ulcb-kf-audio-graph-card.dtsi" 445 * #include "ulcb-kf-audio-graph-card-mix+split.dtsi" 446 * #include "ulcb-kf-audio-graph-card2-mix+split.dtsi" 447 */ 448#include "ulcb-kf-audio-graph-card2.dtsi" 449