1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de> 4 */ 5 6#include "stm32mp15-pinctrl.dtsi" 7#include "stm32mp15xxaa-pinctrl.dtsi" 8#include <dt-bindings/gpio/gpio.h> 9#include <dt-bindings/mfd/st,stpmic1.h> 10 11/ { 12 aliases { 13 ethernet0 = ðernet0; 14 ethernet1 = &ksz8851; 15 }; 16 17 memory@c0000000 { 18 device_type = "memory"; 19 reg = <0xC0000000 0x40000000>; 20 }; 21 22 reserved-memory { 23 #address-cells = <1>; 24 #size-cells = <1>; 25 ranges; 26 27 mcuram2: mcuram2@10000000 { 28 compatible = "shared-dma-pool"; 29 reg = <0x10000000 0x40000>; 30 no-map; 31 }; 32 33 vdev0vring0: vdev0vring0@10040000 { 34 compatible = "shared-dma-pool"; 35 reg = <0x10040000 0x1000>; 36 no-map; 37 }; 38 39 vdev0vring1: vdev0vring1@10041000 { 40 compatible = "shared-dma-pool"; 41 reg = <0x10041000 0x1000>; 42 no-map; 43 }; 44 45 vdev0buffer: vdev0buffer@10042000 { 46 compatible = "shared-dma-pool"; 47 reg = <0x10042000 0x4000>; 48 no-map; 49 }; 50 51 mcuram: mcuram@30000000 { 52 compatible = "shared-dma-pool"; 53 reg = <0x30000000 0x40000>; 54 no-map; 55 }; 56 57 retram: retram@38000000 { 58 compatible = "shared-dma-pool"; 59 reg = <0x38000000 0x10000>; 60 no-map; 61 }; 62 }; 63 64 ethernet_vio: vioregulator { 65 compatible = "regulator-fixed"; 66 regulator-name = "vio"; 67 regulator-min-microvolt = <3300000>; 68 regulator-max-microvolt = <3300000>; 69 gpio = <&gpiog 3 GPIO_ACTIVE_LOW>; 70 regulator-always-on; 71 regulator-boot-on; 72 vin-supply = <&vdd>; 73 }; 74}; 75 76&adc { 77 vdd-supply = <&vdd>; 78 vdda-supply = <&vdda>; 79 vref-supply = <&vdda>; 80 status = "okay"; 81 82 adc1: adc@0 { 83 st,min-sample-time-nsecs = <5000>; 84 st,adc-channels = <0>; 85 status = "okay"; 86 }; 87 88 adc2: adc@100 { 89 st,adc-channels = <1>; 90 st,min-sample-time-nsecs = <5000>; 91 status = "okay"; 92 }; 93}; 94 95&crc1 { 96 status = "okay"; 97}; 98 99&dac { 100 pinctrl-names = "default"; 101 pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>; 102 vref-supply = <&vdda>; 103 status = "okay"; 104 105 dac1: dac@1 { 106 status = "okay"; 107 }; 108 dac2: dac@2 { 109 status = "okay"; 110 }; 111}; 112 113&dts { 114 status = "okay"; 115}; 116 117ðernet0 { 118 status = "okay"; 119 pinctrl-0 = <ðernet0_rmii_pins_a>; 120 pinctrl-1 = <ðernet0_rmii_sleep_pins_a>; 121 pinctrl-names = "default", "sleep"; 122 phy-mode = "rmii"; 123 max-speed = <100>; 124 phy-handle = <&phy0>; 125 st,eth-ref-clk-sel; 126 phy-reset-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>; 127 128 mdio0 { 129 #address-cells = <1>; 130 #size-cells = <0>; 131 compatible = "snps,dwmac-mdio"; 132 133 phy0: ethernet-phy@1 { 134 reg = <1>; 135 interrupt-parent = <&gpioi>; 136 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 137 }; 138 }; 139}; 140 141&fmc { 142 pinctrl-names = "default", "sleep"; 143 pinctrl-0 = <&fmc_pins_b>; 144 pinctrl-1 = <&fmc_sleep_pins_b>; 145 status = "okay"; 146 147 ksz8851: ks8851mll@1,0 { 148 compatible = "micrel,ks8851-mll"; 149 reg = <1 0x0 0x2>, <1 0x2 0x20000>; 150 interrupt-parent = <&gpioc>; 151 interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 152 bank-width = <2>; 153 154 /* Timing values are in nS */ 155 st,fmc2-ebi-cs-mux-enable; 156 st,fmc2-ebi-cs-transaction-type = <4>; 157 st,fmc2-ebi-cs-buswidth = <16>; 158 st,fmc2-ebi-cs-address-setup-ns = <5>; 159 st,fmc2-ebi-cs-address-hold-ns = <5>; 160 st,fmc2-ebi-cs-bus-turnaround-ns = <5>; 161 st,fmc2-ebi-cs-data-setup-ns = <45>; 162 st,fmc2-ebi-cs-data-hold-ns = <1>; 163 st,fmc2-ebi-cs-write-address-setup-ns = <5>; 164 st,fmc2-ebi-cs-write-address-hold-ns = <5>; 165 st,fmc2-ebi-cs-write-bus-turnaround-ns = <5>; 166 st,fmc2-ebi-cs-write-data-setup-ns = <45>; 167 st,fmc2-ebi-cs-write-data-hold-ns = <1>; 168 }; 169}; 170 171&gpioa { 172 gpio-line-names = "", "", "", "", 173 "", "", "DHCOM-K", "", 174 "", "", "", "", 175 "", "", "", ""; 176}; 177 178&gpiob { 179 gpio-line-names = "", "", "", "", 180 "", "", "", "", 181 "DHCOM-Q", "", "", "", 182 "", "", "", ""; 183}; 184 185&gpioc { 186 gpio-line-names = "", "", "", "", 187 "", "", "DHCOM-E", "", 188 "", "", "", "", 189 "", "", "", ""; 190 status = "okay"; 191}; 192 193&gpiod { 194 gpio-line-names = "", "", "", "", 195 "", "", "DHCOM-B", "", 196 "", "", "", "DHCOM-F", 197 "DHCOM-D", "", "", ""; 198}; 199 200&gpioe { 201 gpio-line-names = "", "", "", "", 202 "", "", "DHCOM-P", "", 203 "", "", "", "", 204 "", "", "", ""; 205}; 206 207&gpiof { 208 gpio-line-names = "", "", "", "DHCOM-A", 209 "", "", "", "", 210 "", "", "", "", 211 "", "", "", ""; 212}; 213 214&gpiog { 215 gpio-line-names = "DHCOM-C", "", "", "", 216 "", "", "", "", 217 "DHCOM-L", "", "", "", 218 "", "", "", ""; 219}; 220 221&gpioh { 222 gpio-line-names = "", "", "", "", 223 "", "", "", "DHCOM-N", 224 "DHCOM-J", "DHCOM-W", "DHCOM-V", "DHCOM-U", 225 "DHCOM-T", "", "DHCOM-S", ""; 226}; 227 228&gpioi { 229 gpio-line-names = "DHCOM-G", "DHCOM-O", "DHCOM-H", "DHCOM-I", 230 "DHCOM-R", "DHCOM-M", "", "", 231 "", "", "", "", 232 "", "", "", ""; 233}; 234 235&i2c4 { 236 pinctrl-names = "default"; 237 pinctrl-0 = <&i2c4_pins_a>; 238 i2c-scl-rising-time-ns = <185>; 239 i2c-scl-falling-time-ns = <20>; 240 status = "okay"; 241 /* spare dmas for other usage */ 242 /delete-property/dmas; 243 /delete-property/dma-names; 244 245 rtc@32 { 246 compatible = "microcrystal,rv8803"; 247 reg = <0x32>; 248 }; 249 250 pmic: stpmic@33 { 251 compatible = "st,stpmic1"; 252 reg = <0x33>; 253 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>; 254 interrupt-controller; 255 #interrupt-cells = <2>; 256 status = "okay"; 257 258 regulators { 259 compatible = "st,stpmic1-regulators"; 260 ldo1-supply = <&v3v3>; 261 ldo2-supply = <&v3v3>; 262 ldo3-supply = <&vdd_ddr>; 263 ldo5-supply = <&v3v3>; 264 ldo6-supply = <&v3v3>; 265 pwr_sw1-supply = <&bst_out>; 266 pwr_sw2-supply = <&bst_out>; 267 268 vddcore: buck1 { 269 regulator-name = "vddcore"; 270 regulator-min-microvolt = <800000>; 271 regulator-max-microvolt = <1350000>; 272 regulator-always-on; 273 regulator-initial-mode = <0>; 274 regulator-over-current-protection; 275 }; 276 277 vdd_ddr: buck2 { 278 regulator-name = "vdd_ddr"; 279 regulator-min-microvolt = <1350000>; 280 regulator-max-microvolt = <1350000>; 281 regulator-always-on; 282 regulator-initial-mode = <0>; 283 regulator-over-current-protection; 284 }; 285 286 vdd: buck3 { 287 regulator-name = "vdd"; 288 regulator-min-microvolt = <3300000>; 289 regulator-max-microvolt = <3300000>; 290 regulator-always-on; 291 st,mask-reset; 292 regulator-initial-mode = <0>; 293 regulator-over-current-protection; 294 }; 295 296 v3v3: buck4 { 297 regulator-name = "v3v3"; 298 regulator-min-microvolt = <3300000>; 299 regulator-max-microvolt = <3300000>; 300 regulator-always-on; 301 regulator-over-current-protection; 302 regulator-initial-mode = <0>; 303 }; 304 305 vdda: ldo1 { 306 regulator-name = "vdda"; 307 regulator-always-on; 308 regulator-min-microvolt = <2900000>; 309 regulator-max-microvolt = <2900000>; 310 interrupts = <IT_CURLIM_LDO1 0>; 311 }; 312 313 v2v8: ldo2 { 314 regulator-name = "v2v8"; 315 regulator-min-microvolt = <2800000>; 316 regulator-max-microvolt = <2800000>; 317 interrupts = <IT_CURLIM_LDO2 0>; 318 }; 319 320 vtt_ddr: ldo3 { 321 regulator-name = "vtt_ddr"; 322 regulator-min-microvolt = <500000>; 323 regulator-max-microvolt = <750000>; 324 regulator-always-on; 325 regulator-over-current-protection; 326 }; 327 328 vdd_usb: ldo4 { 329 regulator-name = "vdd_usb"; 330 regulator-min-microvolt = <3300000>; 331 regulator-max-microvolt = <3300000>; 332 interrupts = <IT_CURLIM_LDO4 0>; 333 }; 334 335 vdd_sd: ldo5 { 336 regulator-name = "vdd_sd"; 337 regulator-min-microvolt = <2900000>; 338 regulator-max-microvolt = <2900000>; 339 interrupts = <IT_CURLIM_LDO5 0>; 340 regulator-boot-on; 341 }; 342 343 v1v8: ldo6 { 344 regulator-name = "v1v8"; 345 regulator-min-microvolt = <1800000>; 346 regulator-max-microvolt = <1800000>; 347 interrupts = <IT_CURLIM_LDO6 0>; 348 }; 349 350 vref_ddr: vref_ddr { 351 regulator-name = "vref_ddr"; 352 regulator-always-on; 353 regulator-over-current-protection; 354 }; 355 356 bst_out: boost { 357 regulator-name = "bst_out"; 358 interrupts = <IT_OCP_BOOST 0>; 359 }; 360 361 vbus_otg: pwr_sw1 { 362 regulator-name = "vbus_otg"; 363 interrupts = <IT_OCP_OTG 0>; 364 }; 365 366 vbus_sw: pwr_sw2 { 367 regulator-name = "vbus_sw"; 368 interrupts = <IT_OCP_SWOUT 0>; 369 regulator-active-discharge; 370 }; 371 }; 372 373 onkey { 374 compatible = "st,stpmic1-onkey"; 375 interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>; 376 interrupt-names = "onkey-falling", "onkey-rising"; 377 power-off-time-sec = <10>; 378 status = "okay"; 379 }; 380 381 watchdog { 382 compatible = "st,stpmic1-wdt"; 383 status = "disabled"; 384 }; 385 }; 386 387 touchscreen@49 { 388 compatible = "ti,tsc2004"; 389 reg = <0x49>; 390 vio-supply = <&v3v3>; 391 interrupts-extended = <&gpioh 15 IRQ_TYPE_EDGE_FALLING>; 392 }; 393 394 eeprom@50 { 395 compatible = "atmel,24c02"; 396 reg = <0x50>; 397 pagesize = <16>; 398 }; 399}; 400 401&ipcc { 402 status = "okay"; 403}; 404 405&iwdg2 { 406 timeout-sec = <32>; 407 status = "okay"; 408}; 409 410&m4_rproc { 411 memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, 412 <&vdev0vring1>, <&vdev0buffer>; 413 mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; 414 mbox-names = "vq0", "vq1", "shutdown"; 415 interrupt-parent = <&exti>; 416 interrupts = <68 1>; 417 status = "okay"; 418}; 419 420&pwr_regulators { 421 vdd-supply = <&vdd>; 422 vdd_3v3_usbfs-supply = <&vdd_usb>; 423}; 424 425&qspi { 426 pinctrl-names = "default", "sleep"; 427 pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>; 428 pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>; 429 reg = <0x58003000 0x1000>, <0x70000000 0x4000000>; 430 #address-cells = <1>; 431 #size-cells = <0>; 432 status = "okay"; 433 434 flash0: mx66l51235l@0 { 435 compatible = "jedec,spi-nor"; 436 reg = <0>; 437 spi-rx-bus-width = <4>; 438 spi-max-frequency = <108000000>; 439 #address-cells = <1>; 440 #size-cells = <1>; 441 }; 442}; 443 444&rng1 { 445 status = "okay"; 446}; 447 448&rtc { 449 status = "okay"; 450}; 451 452&sdmmc1 { 453 pinctrl-names = "default", "opendrain", "sleep", "init"; 454 pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>; 455 pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>; 456 pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>; 457 pinctrl-3 = <&sdmmc1_b4_init_pins_a &sdmmc1_dir_init_pins_a>; 458 cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; 459 disable-wp; 460 st,sig-dir; 461 st,neg-edge; 462 st,use-ckin; 463 st,cmd-gpios = <&gpiod 2 0>; 464 st,ck-gpios = <&gpioc 12 0>; 465 st,ckin-gpios = <&gpioe 4 0>; 466 bus-width = <4>; 467 vmmc-supply = <&vdd_sd>; 468 status = "okay"; 469}; 470 471&sdmmc1_b4_pins_a { 472 /* 473 * SD bus pull-up resistors: 474 * - optional on SoMs with SD voltage translator 475 * - mandatory on SoMs without SD voltage translator 476 */ 477 pins1 { 478 bias-pull-up; 479 }; 480 pins2 { 481 bias-pull-up; 482 }; 483}; 484 485&sdmmc2 { 486 pinctrl-names = "default", "opendrain", "sleep"; 487 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>; 488 pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>; 489 pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>; 490 non-removable; 491 no-sd; 492 no-sdio; 493 st,neg-edge; 494 bus-width = <8>; 495 vmmc-supply = <&v3v3>; 496 vqmmc-supply = <&v3v3>; 497 mmc-ddr-3_3v; 498 status = "okay"; 499}; 500 501&sdmmc3 { 502 pinctrl-names = "default", "opendrain", "sleep"; 503 pinctrl-0 = <&sdmmc3_b4_pins_a>; 504 pinctrl-1 = <&sdmmc3_b4_od_pins_a>; 505 pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>; 506 broken-cd; 507 st,neg-edge; 508 bus-width = <4>; 509 vmmc-supply = <&v3v3>; 510 vqmmc-supply = <&v3v3>; 511 mmc-ddr-3_3v; 512 status = "okay"; 513}; 514 515&uart4 { 516 pinctrl-names = "default"; 517 pinctrl-0 = <&uart4_pins_a>; 518 status = "okay"; 519}; 520