1 // SPDX-License-Identifier: GPL-2.0 1 // SPDX-License-Identifier: GPL-2.0 2 /* 2 /* 3 * Device Tree Source for the Kingfisher (ULCB 3 * Device Tree Source for the Kingfisher (ULCB extension) board 4 * 4 * 5 * Copyright (C) 2017 Renesas Electronics Corp 5 * Copyright (C) 2017 Renesas Electronics Corp. 6 * Copyright (C) 2017 Cogent Embedded, Inc. 6 * Copyright (C) 2017 Cogent Embedded, Inc. 7 */ 7 */ 8 8 >> 9 /* >> 10 * SSI-PCM3168A >> 11 * aplay -D plughw:0,2 xxx.wav >> 12 * arecord -D plughw:0,3 xxx.wav >> 13 */ >> 14 9 / { 15 / { 10 aliases { 16 aliases { 11 serial1 = &hscif0; 17 serial1 = &hscif0; 12 serial2 = &scif1; 18 serial2 = &scif1; 13 serial3 = &hscif1; << 14 mmc2 = &sdhi3; << 15 }; 19 }; 16 20 17 clksndsel: clksndsel { 21 clksndsel: clksndsel { 18 #clock-cells = <0>; 22 #clock-cells = <0>; 19 compatible = "gpio-mux-clock"; 23 compatible = "gpio-mux-clock"; 20 clocks = <&cs2000>, <&audio_cl 24 clocks = <&cs2000>, <&audio_clk_a>; /* clk8snd, clksnd */ 21 select-gpios = <&gpio_exp_75 1 25 select-gpios = <&gpio_exp_75 13 GPIO_ACTIVE_HIGH>; 22 }; 26 }; 23 27 24 hdmi1-out { !! 28 snd_3p3v: regulator-snd_3p3v { 25 compatible = "hdmi-connector"; << 26 type = "a"; << 27 << 28 port { << 29 hdmi1_con: endpoint { << 30 remote-endpoin << 31 }; << 32 }; << 33 }; << 34 << 35 reg_t1p8v: regulator-t1p8v { << 36 compatible = "regulator-fixed" << 37 regulator-name = "T1.8V"; << 38 regulator-min-microvolt = <180 << 39 regulator-max-microvolt = <180 << 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 = <150 << 48 regulator-max-microvolt = <150 << 49 gpio = <&gpio_exp_77 15 GPIO_A << 50 enable-active-high; << 51 }; << 52 << 53 pcie_3v3: regulator-pcie-3v3 { << 54 compatible = "regulator-fixed" 29 compatible = "regulator-fixed"; 55 regulator-name = "pcie-3v3"; !! 30 regulator-name = "snd-3.3v"; 56 regulator-min-microvolt = <330 31 regulator-min-microvolt = <3300000>; 57 regulator-max-microvolt = <330 32 regulator-max-microvolt = <3300000>; 58 gpio = <&gpio_exp_77 14 GPIO_A << 59 enable-active-high; << 60 }; 33 }; 61 34 62 reg_5v: regulator-5v { !! 35 snd_vcc5v: regulator-snd_vcc5v { 63 compatible = "regulator-fixed" 36 compatible = "regulator-fixed"; 64 regulator-name = "fixed-5V"; !! 37 regulator-name = "snd-vcc5v"; 65 regulator-min-microvolt = <500 38 regulator-min-microvolt = <5000000>; 66 regulator-max-microvolt = <500 39 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-regu << 74 << 75 regulator-min-microvolt = <330 << 76 regulator-max-microvolt = <330 << 77 << 78 gpio = <&gpio_exp_74 4 GPIO_AC << 79 startup-delay-us = <70000>; << 80 enable-active-high; << 81 }; 40 }; 82 }; 41 }; 83 42 84 &can0 { 43 &can0 { 85 pinctrl-0 = <&can0_pins>; 44 pinctrl-0 = <&can0_pins>; 86 pinctrl-names = "default"; 45 pinctrl-names = "default"; 87 status = "okay"; 46 status = "okay"; 88 }; 47 }; 89 48 90 &can1 { 49 &can1 { 91 pinctrl-0 = <&can1_pins>; 50 pinctrl-0 = <&can1_pins>; 92 pinctrl-names = "default"; 51 pinctrl-names = "default"; 93 status = "okay"; 52 status = "okay"; 94 }; 53 }; 95 54 96 &du { << 97 ports { << 98 port@0 { << 99 du_out_rgb: endpoint { << 100 remote-endpoin << 101 }; << 102 }; << 103 }; << 104 }; << 105 << 106 &ehci0 { 55 &ehci0 { 107 dr_mode = "otg"; 56 dr_mode = "otg"; 108 status = "okay"; 57 status = "okay"; 109 }; 58 }; 110 59 111 &hscif0 { 60 &hscif0 { 112 pinctrl-0 = <&hscif0_pins>; 61 pinctrl-0 = <&hscif0_pins>; 113 pinctrl-names = "default"; 62 pinctrl-names = "default"; 114 uart-has-rtscts; 63 uart-has-rtscts; 115 64 116 status = "okay"; 65 status = "okay"; 117 }; 66 }; 118 67 119 &hscif1 { << 120 pinctrl-0 = <&hscif1_pins>; << 121 pinctrl-names = "default"; << 122 uart-has-rtscts; << 123 << 124 status = "okay"; << 125 }; << 126 << 127 &hsusb { 68 &hsusb { 128 dr_mode = "otg"; 69 dr_mode = "otg"; 129 status = "okay"; 70 status = "okay"; 130 }; 71 }; 131 72 132 &i2c2 { 73 &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_A << 139 << 140 /* HDMIoSDA, HDMIoSCL */ << 141 i2c@4 { << 142 #address-cells = <1>; << 143 #size-cells = <0>; << 144 reg = <4>; << 145 << 146 hdmi@3d { << 147 compatible = " << 148 reg = <0x3d>; << 149 << 150 pinctrl-0 = <& << 151 pinctrl-names << 152 << 153 interrupt-pare << 154 interrupts = < << 155 << 156 clocks = <&cs2 << 157 clock-names = << 158 << 159 pd-gpios = <&g << 160 << 161 avdd-supply = << 162 dvdd-supply = << 163 pvdd-supply = << 164 dvdd-3v-supply << 165 bgvdd-supply = << 166 << 167 adi,input-dept << 168 adi,input-colo << 169 adi,input-cloc << 170 << 171 ports { << 172 #addre << 173 #size- << 174 << 175 port@0 << 176 << 177 << 178 << 179 << 180 }; << 181 << 182 port@1 << 183 << 184 << 185 << 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 = " << 200 reg = <0x1d>; << 201 << 202 vdd-supply = < << 203 vddio-supply = << 204 }; << 205 << 206 pcm3168a: audio-codec@ << 207 #sound-dai-cel << 208 compatible = " << 209 reg = <0x44>; << 210 clocks = <&clk << 211 clock-names = << 212 << 213 VDD1-supply = << 214 VDD2-supply = << 215 VCCAD1-supply << 216 VCCAD2-supply << 217 VCCDA1-supply << 218 VCCDA2-supply << 219 }; << 220 << 221 gyroscope@6b { << 222 compatible = " << 223 reg = <0x6b>; << 224 << 225 vdd-supply = < << 226 vddio-supply = << 227 }; << 228 }; << 229 }; << 230 << 231 /* U11 */ 74 /* U11 */ 232 gpio_exp_74: gpio@74 { 75 gpio_exp_74: gpio@74 { 233 compatible = "ti,tca9539"; 76 compatible = "ti,tca9539"; 234 reg = <0x74>; 77 reg = <0x74>; 235 gpio-controller; 78 gpio-controller; 236 #gpio-cells = <2>; 79 #gpio-cells = <2>; 237 interrupt-controller; 80 interrupt-controller; 238 #interrupt-cells = <2>; << 239 interrupt-parent = <&gpio6>; 81 interrupt-parent = <&gpio6>; 240 interrupts = <8 IRQ_TYPE_EDGE_ 82 interrupts = <8 IRQ_TYPE_EDGE_FALLING>; 241 83 242 audio-out-off-hog { !! 84 audio_out_off { 243 gpio-hog; 85 gpio-hog; 244 gpios = <0 GPIO_ACTIVE 86 gpios = <0 GPIO_ACTIVE_HIGH>; /* P00 */ 245 output-high; 87 output-high; 246 line-name = "Audio_Out 88 line-name = "Audio_Out_OFF"; 247 }; 89 }; 248 90 249 hub-pwen-hog { !! 91 hub_pwen { 250 gpio-hog; 92 gpio-hog; 251 gpios = <6 GPIO_ACTIVE 93 gpios = <6 GPIO_ACTIVE_HIGH>; 252 output-high; 94 output-high; 253 line-name = "HUB pwen" 95 line-name = "HUB pwen"; 254 }; 96 }; 255 97 256 hub-rst-hog { !! 98 hub_rst { 257 gpio-hog; 99 gpio-hog; 258 gpios = <7 GPIO_ACTIVE 100 gpios = <7 GPIO_ACTIVE_HIGH>; 259 output-high; 101 output-high; 260 line-name = "HUB rst"; 102 line-name = "HUB rst"; 261 }; 103 }; 262 104 263 otg-extlpn-hog { !! 105 otg_offvbusn { 264 gpio-hog; << 265 gpios = <9 GPIO_ACTIVE << 266 output-high; << 267 line-name = "OTG EXTLP << 268 }; << 269 << 270 otg-offvbusn-hog { << 271 gpio-hog; 106 gpio-hog; 272 gpios = <8 GPIO_ACTIVE 107 gpios = <8 GPIO_ACTIVE_HIGH>; 273 output-low; 108 output-low; 274 line-name = "OTG OFFVB 109 line-name = "OTG OFFVBUSn"; 275 }; 110 }; 276 111 277 sd-wifi-mux-hog { !! 112 otg_extlpn { 278 gpio-hog; 113 gpio-hog; 279 gpios = <5 GPIO_ACTIVE !! 114 gpios = <9 GPIO_ACTIVE_HIGH>; 280 output-low; /* Con !! 115 output-high; 281 line-name = "SD WiFi m !! 116 line-name = "OTG EXTLPn"; 282 }; 117 }; 283 118 284 snd-rst-hog { !! 119 snd_rst { 285 gpio-hog; 120 gpio-hog; 286 gpios = <15 GPIO_ACTIV 121 gpios = <15 GPIO_ACTIVE_HIGH>; /* P17 */ 287 output-high; 122 output-high; 288 line-name = "SND_RST"; 123 line-name = "SND_RST"; 289 }; 124 }; 290 }; 125 }; 291 126 292 /* U5 */ 127 /* U5 */ 293 gpio_exp_75: gpio@75 { 128 gpio_exp_75: gpio@75 { 294 compatible = "ti,tca9539"; 129 compatible = "ti,tca9539"; 295 reg = <0x75>; 130 reg = <0x75>; 296 gpio-controller; 131 gpio-controller; 297 #gpio-cells = <2>; 132 #gpio-cells = <2>; 298 interrupt-controller; 133 interrupt-controller; 299 #interrupt-cells = <2>; << 300 interrupt-parent = <&gpio6>; 134 interrupt-parent = <&gpio6>; 301 interrupts = <4 IRQ_TYPE_EDGE_ 135 interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 302 }; 136 }; 303 }; << 304 137 305 &i2c4 { !! 138 i2cswitch2: i2c-switch@71 { 306 i2cmux4: i2c-mux@71 { << 307 compatible = "nxp,pca9548"; 139 compatible = "nxp,pca9548"; 308 #address-cells = <1>; 140 #address-cells = <1>; 309 #size-cells = <0>; 141 #size-cells = <0>; 310 reg = <0x71>; 142 reg = <0x71>; 311 reset-gpios = <&gpio3 15 GPIO_ !! 143 reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; >> 144 >> 145 /* Audio_SDA, Audio_SCL */ >> 146 i2c@7 { >> 147 #address-cells = <1>; >> 148 #size-cells = <0>; >> 149 reg = <7>; >> 150 >> 151 pcm3168a: audio-codec@44 { >> 152 #sound-dai-cells = <0>; >> 153 compatible = "ti,pcm3168a"; >> 154 reg = <0x44>; >> 155 clocks = <&clksndsel>; >> 156 clock-names = "scki"; >> 157 >> 158 VDD1-supply = <&snd_3p3v>; >> 159 VDD2-supply = <&snd_3p3v>; >> 160 VCCAD1-supply = <&snd_vcc5v>; >> 161 VCCAD2-supply = <&snd_vcc5v>; >> 162 VCCDA1-supply = <&snd_vcc5v>; >> 163 VCCDA2-supply = <&snd_vcc5v>; >> 164 >> 165 ports { >> 166 #address-cells = <1>; >> 167 #size-cells = <0>; >> 168 mclk-fs = <512>; >> 169 port@0 { >> 170 reg = <0>; >> 171 pcm3168a_endpoint_p: endpoint { >> 172 remote-endpoint = <&rsnd_for_pcm3168a_play>; >> 173 clocks = <&clksndsel>; >> 174 }; >> 175 }; >> 176 port@1 { >> 177 reg = <1>; >> 178 pcm3168a_endpoint_c: endpoint { >> 179 remote-endpoint = <&rsnd_for_pcm3168a_capture>; >> 180 clocks = <&clksndsel>; >> 181 }; >> 182 }; >> 183 }; >> 184 }; >> 185 }; 312 }; 186 }; >> 187 }; 313 188 >> 189 &i2c4 { 314 gpio_exp_76: gpio@76 { 190 gpio_exp_76: gpio@76 { 315 compatible = "ti,tca9539"; 191 compatible = "ti,tca9539"; 316 reg = <0x76>; 192 reg = <0x76>; 317 gpio-controller; 193 gpio-controller; 318 #gpio-cells = <2>; 194 #gpio-cells = <2>; 319 interrupt-controller; 195 interrupt-controller; 320 #interrupt-cells = <2>; << 321 interrupt-parent = <&gpio7>; 196 interrupt-parent = <&gpio7>; 322 interrupts = <3 IRQ_TYPE_EDGE_ 197 interrupts = <3 IRQ_TYPE_EDGE_FALLING>; 323 }; 198 }; 324 199 325 gpio_exp_77: gpio@77 { 200 gpio_exp_77: gpio@77 { 326 compatible = "ti,tca9539"; 201 compatible = "ti,tca9539"; 327 reg = <0x77>; 202 reg = <0x77>; 328 gpio-controller; 203 gpio-controller; 329 #gpio-cells = <2>; 204 #gpio-cells = <2>; 330 interrupt-controller; 205 interrupt-controller; 331 #interrupt-cells = <2>; << 332 interrupt-parent = <&gpio5>; 206 interrupt-parent = <&gpio5>; 333 interrupts = <9 IRQ_TYPE_EDGE_ 207 interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 334 }; 208 }; >> 209 >> 210 i2cswitch4: i2c-switch@71 { >> 211 compatible = "nxp,pca9548"; >> 212 #address-cells = <1>; >> 213 #size-cells = <0>; >> 214 reg = <0x71>; >> 215 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; >> 216 }; 335 }; 217 }; 336 218 337 &ohci0 { 219 &ohci0 { 338 dr_mode = "otg"; 220 dr_mode = "otg"; 339 status = "okay"; 221 status = "okay"; 340 }; 222 }; 341 223 342 &pcie_bus_clk { 224 &pcie_bus_clk { 343 clock-frequency = <100000000>; 225 clock-frequency = <100000000>; 344 }; 226 }; 345 227 346 &pciec0 { 228 &pciec0 { 347 status = "okay"; 229 status = "okay"; 348 }; 230 }; 349 231 350 &pciec1 { 232 &pciec1 { 351 status = "okay"; 233 status = "okay"; 352 << 353 vpcie1v5-supply = <&pcie_1v5>; << 354 vpcie3v3-supply = <&pcie_3v3>; << 355 }; 234 }; 356 235 357 &pfc { 236 &pfc { 358 can0_pins: can0 { 237 can0_pins: can0 { 359 groups = "can0_data_a"; 238 groups = "can0_data_a"; 360 function = "can0"; 239 function = "can0"; 361 }; 240 }; 362 241 363 can1_pins: can1 { 242 can1_pins: can1 { 364 groups = "can1_data"; 243 groups = "can1_data"; 365 function = "can1"; 244 function = "can1"; 366 }; 245 }; 367 246 368 hdmi1_pins: hdmi1 { << 369 adv7513-interrupt { << 370 pins = "GP_2_14"; << 371 bias-pull-up; << 372 }; << 373 << 374 du { << 375 groups = "du_rgb888", << 376 "du_disp"; << 377 function = "du"; << 378 }; << 379 }; << 380 << 381 hscif0_pins: hscif0 { 247 hscif0_pins: hscif0 { 382 groups = "hscif0_data", "hscif 248 groups = "hscif0_data", "hscif0_ctrl"; 383 function = "hscif0"; 249 function = "hscif0"; 384 }; 250 }; 385 251 386 hscif1_pins: hscif1 { << 387 groups = "hscif1_data_a", "hsc << 388 function = "hscif1"; << 389 }; << 390 << 391 scif1_pins: scif1 { 252 scif1_pins: scif1 { 392 groups = "scif1_data_b"; !! 253 groups = "scif1_data_b", "scif1_ctrl"; 393 function = "scif1"; 254 function = "scif1"; 394 }; 255 }; 395 256 396 sdhi3_pins: sdhi3 { !! 257 usb0_pins: usb0 { 397 groups = "sdhi3_data4", "sdhi3 !! 258 groups = "usb0"; 398 function = "sdhi3"; !! 259 function = "usb0"; 399 power-source = <3300>; << 400 }; 260 }; 401 261 402 sound_pcm_pins: sound-pcm { 262 sound_pcm_pins: sound-pcm { 403 groups = "ssi349_ctrl", "ssi3_ 263 groups = "ssi349_ctrl", "ssi3_data", "ssi4_data"; 404 function = "ssi"; 264 function = "ssi"; 405 }; 265 }; 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 }; 266 }; 418 267 419 &scif1 { 268 &scif1 { 420 pinctrl-0 = <&scif1_pins>; 269 pinctrl-0 = <&scif1_pins>; 421 pinctrl-names = "default"; 270 pinctrl-names = "default"; >> 271 uart-has-rtscts; 422 272 423 status = "okay"; 273 status = "okay"; 424 << 425 gnss { << 426 compatible = "u-blox,neo-m8"; << 427 reset-gpios = <&gpio_exp_75 6 << 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 << 454 }; << 455 }; << 456 << 457 &ssi4 { << 458 shared-pin; << 459 }; 274 }; 460 275 461 &usb2_phy0 { 276 &usb2_phy0 { 462 pinctrl-0 = <&usb0_pins>; 277 pinctrl-0 = <&usb0_pins>; 463 pinctrl-names = "default"; 278 pinctrl-names = "default"; 464 279 465 status = "okay"; 280 status = "okay"; 466 }; 281 }; 467 282 468 &xhci0 { 283 &xhci0 { 469 status = "okay"; 284 status = "okay"; 470 }; 285 }; 471 286 472 /* !! 287 &sound_card { 473 * For sound-test. !! 288 dais = <&rsnd_port0 /* ak4613 */ 474 * !! 289 &rsnd_port1 /* HDMI0 */ 475 * We can switch Audio Card for testing !! 290 &rsnd_port2 /* pcm3168a playback */ 476 * see also ulcb.dtsi !! 291 &rsnd_port3 /* pcm3168a capture */ 477 * !! 292 >; 478 * #include "ulcb-kf-simple-audio-card.dtsi" !! 293 }; 479 * #include "ulcb-kf-simple-audio-card-mix+spl !! 294 480 * #include "ulcb-kf-audio-graph-card.dtsi" !! 295 &rcar_sound { 481 * #include "ulcb-kf-audio-graph-card-mix+spli !! 296 pinctrl-0 = <&sound_pins 482 * #include "ulcb-kf-audio-graph-card2-mix+spl !! 297 &sound_clk_pins 483 */ !! 298 &sound_pcm_pins>; 484 #include "ulcb-kf-audio-graph-card2.dtsi" !! 299 >> 300 ports { >> 301 /* rsnd_port0/1 are on salvator-common */ >> 302 rsnd_port2: port@2 { >> 303 reg = <2>; >> 304 rsnd_for_pcm3168a_play: endpoint { >> 305 remote-endpoint = <&pcm3168a_endpoint_p>; >> 306 >> 307 dai-format = "i2s"; >> 308 bitclock-master = <&rsnd_for_pcm3168a_play>; >> 309 frame-master = <&rsnd_for_pcm3168a_play>; >> 310 dai-tdm-slot-num = <8>; >> 311 >> 312 playback = <&ssi3>; >> 313 }; >> 314 }; >> 315 rsnd_port3: port@3 { >> 316 reg = <3>; >> 317 rsnd_for_pcm3168a_capture: endpoint { >> 318 remote-endpoint = <&pcm3168a_endpoint_c>; >> 319 >> 320 dai-format = "i2s"; >> 321 bitclock-master = <&rsnd_for_pcm3168a_capture>; >> 322 frame-master = <&rsnd_for_pcm3168a_capture>; >> 323 dai-tdm-slot-num = <6>; >> 324 >> 325 capture = <&ssi4>; >> 326 }; >> 327 }; >> 328 }; >> 329 }; >> 330 >> 331 &ssi4 { >> 332 shared-pin; >> 333 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.