1 // SPDX-License-Identifier: (GPL-2.0-or-later 2 /* 3 * Copyright (C) 2020 STMicroelectronics - All 4 * Copyright (C) 2021 Rouven Czerwinski, Pengu 5 * Copyright (C) 2023 Leonard Göhrs, Pengutro 6 */ 7 8 #include "stm32mp15xc.dtsi" 9 #include "stm32mp15xx-osd32.dtsi" 10 #include "stm32mp15xxac-pinctrl.dtsi" 11 12 #include <dt-bindings/gpio/gpio.h> 13 #include <dt-bindings/input/input.h> 14 #include <dt-bindings/leds/common.h> 15 #include <dt-bindings/pwm/pwm.h> 16 17 / { 18 aliases { 19 ethernet0 = ðernet0; 20 ethernet1 = &port_uplink; 21 ethernet2 = &port_dut; 22 mmc1 = &sdmmc2; 23 serial0 = &uart4; 24 serial1 = &usart3; 25 }; 26 27 chosen { 28 stdout-path = &uart4; 29 }; 30 31 led-controller-0 { 32 compatible = "gpio-leds"; 33 34 led-0 { 35 label = "tac:green:use 36 gpios = <&gpiof 10 GPI 37 linux,default-trigger 38 }; 39 40 led-1 { 41 label = "tac:green:use 42 gpios = <&gpiog 7 GPIO 43 }; 44 45 led-2 { 46 label = "tac:green:sta 47 gpios = <&gpioa 13 GPI 48 }; 49 50 /* led-3 and led-4 are interna 51 * another inside the ethernet 52 * GPIOA14 ---+---|led-3|>--+- 53 * +--<|led-4|---+ 54 * E.g. only one of the LEDs c 55 * the other output must be dr 56 * This should likely be imple 57 * driver for antiparallel LED 58 */ 59 led-3 { 60 label = "tac:green:sta 61 gpios = <&gpioa 14 GPI 62 }; 63 64 led-4 { 65 label = "tac:orange:st 66 gpios = <&gpiod 15 GPI 67 }; 68 }; 69 70 gpio-keys { 71 compatible = "gpio-keys"; 72 73 button-lower { 74 label = "USER_BTN2"; 75 linux,code = <KEY_ESC> 76 gpios = <&gpioe 7 (GPI 77 }; 78 79 button-upper { 80 label = "USER_BTN"; 81 linux,code = <KEY_HOME 82 gpios = <&gpioi 11 (GP 83 }; 84 }; 85 86 /* supplied by either barrel connector 87 reg_12v: regulator-12v { 88 compatible = "regulator-fixed" 89 regulator-name = "12V"; 90 regulator-min-microvolt = <120 91 regulator-max-microvolt = <120 92 regulator-always-on; 93 }; 94 95 reg_5v: regulator-5v { 96 compatible = "regulator-fixed" 97 regulator-name = "5V"; 98 regulator-min-microvolt = <500 99 regulator-max-microvolt = <500 100 regulator-always-on; 101 vin-supply = <®_12v>; 102 }; 103 104 reg_1v2: regulator-1v2 { 105 compatible = "regulator-fixed" 106 regulator-name = "1V2"; 107 regulator-min-microvolt = <120 108 regulator-max-microvolt = <120 109 regulator-always-on; 110 vin-supply = <®_5v>; 111 }; 112 113 reg_pb_5v: regulator-pb-5v { 114 compatible = "regulator-fixed" 115 regulator-name = "5V_POWERBOAR 116 regulator-min-microvolt = <500 117 regulator-max-microvolt = <500 118 regulator-always-on; 119 vin-supply = <®_5v>; 120 }; 121 122 reg_pb_3v3: regulator-pb-3v3 { 123 compatible = "regulator-fixed" 124 regulator-name = "3V3_POWERBOA 125 regulator-min-microvolt = <330 126 regulator-max-microvolt = <330 127 regulator-always-on; 128 vin-supply = <®_pb_5v>; 129 }; 130 131 output-iobus-12v { 132 compatible = "regulator-output 133 vout-supply = <®_iobus_12v> 134 }; 135 136 output-vuart { 137 compatible = "regulator-output 138 vout-supply = <&v3v3_hdmi>; 139 }; 140 }; 141 142 baseboard_eeprom: &sip_eeprom { 143 }; 144 145 &adc { 146 pinctrl-names = "default"; 147 pinctrl-0 = <&adc1_ain_pins_a>; 148 vdd-supply = <&vdd>; 149 vdda-supply = <&vdda>; 150 vref-supply = <&vrefbuf>; 151 status = "okay"; 152 153 adc1: adc@0 { 154 st,adc-channels = <0 1 2 5 9 1 155 st,min-sample-time-nsecs = <50 156 #address-cells = <1>; 157 #size-cells = <0>; 158 status = "okay"; 159 160 channel@0 { 161 reg = <0>; 162 label = "HOST_2_CURR_F 163 }; 164 165 channel@1 { 166 reg = <1>; 167 label = "HOST_3_CURR_F 168 }; 169 170 channel@2 { 171 reg = <2>; 172 label = "OUT_0_FB"; 173 }; 174 175 channel@5 { 176 reg = <5>; 177 label = "IOBUS_CURR_FB 178 }; 179 180 channel@9 { 181 reg = <9>; 182 label = "IOBUS_VOLT_FB 183 }; 184 185 channel@10 { 186 reg = <10>; 187 label = "OUT_1_FB"; 188 }; 189 190 channel@13 { 191 reg = <13>; 192 label = "HOST_CURR_FB" 193 }; 194 195 channel@15 { 196 reg = <15>; 197 label = "HOST_1_CURR_F 198 }; 199 }; 200 201 adc2: adc@100 { 202 st,adc-channels = <12>; 203 st,min-sample-time-nsecs = <50 204 #address-cells = <1>; 205 #size-cells = <0>; 206 status = "okay"; 207 208 channel@12 { 209 reg = <12>; 210 label = "TEMP_INTERNAL 211 }; 212 }; 213 }; 214 215 &crc1 { 216 status = "okay"; 217 }; 218 219 &cryp1 { 220 status = "okay"; 221 }; 222 223 &dts { 224 status = "okay"; 225 }; 226 227 ðernet0 { 228 assigned-clocks = <&rcc ETHCK_K>, <&rc 229 assigned-clock-parents = <&rcc PLL4_P> 230 assigned-clock-rates = <125000000>; /* 231 232 pinctrl-names = "default", "sleep"; 233 pinctrl-0 = <ðernet0_rgmii_pins_e>; 234 pinctrl-1 = <ðernet0_rgmii_sleep_pi 235 236 st,eth-clk-sel; 237 phy-mode = "rgmii-id"; 238 239 status = "okay"; 240 241 fixed-link { 242 speed = <1000>; 243 full-duplex; 244 }; 245 }; 246 247 ðernet0_rgmii_pins_e { 248 pins1 { 249 /* Reduce EMI emission by redu 250 slew-rate = <1>; 251 }; 252 }; 253 254 &gpiob { 255 gpio-line-names = "", "", "", "", "", 256 "", "USB_RESET", "", "", "", 257 "", "", "", "", "", 258 ""; 259 }; 260 261 &gpiod { 262 gpio-line-names = "", "", "", "", "TP3 263 "TP39", "", "", "TP41", "TP42", 264 "OLED_DC", "", "", "ETH_CS", "", 265 "ETH_LAB_LEDRN"; 266 }; 267 268 &gpioe { 269 gpio-line-names = "TP35", "", "", "", 270 "", "", "USER_BTN2", "TP48", "UART_TX_ 271 "UART_RX_EN", "TP24", "", "TP25", "TP2 272 "TP27"; 273 }; 274 275 &gpiof { 276 gpio-line-names = "TP36", "TP37", "", 277 "", "", "", "", "", 278 "USER_LED1", "", "STACK_CS0", "", "", 279 ""; 280 }; 281 282 &gpiog { 283 gpio-line-names = "ETH_RESET", "", "", 284 "IOBUS_FLT_FB", "", "USER_LED2", "ETH1 285 "TP49", "", "", "", "", 286 ""; 287 }; 288 289 &gpioh { 290 gpio-line-names = "", "", "OUT_1", "OU 291 "", "", "", "", "", 292 "ETH1_PPS_B", "ETH_GPIO2", "", "IOBUS_ 293 "TP33"; 294 }; 295 296 &gpioi { 297 gpio-line-names = "TIM_RTS", "", "", " 298 "", "", "", "ETH_WOL", "TP43", 299 "", "USER_BTN"; 300 }; 301 302 &gpioz { 303 gpio-line-names = "HWID0", "HWID1", "H 304 "", "HWID4", "HWID5"; 305 }; 306 307 &hash1 { 308 status = "okay"; 309 }; 310 311 &i2c1 { 312 pinctrl-names = "default", "sleep"; 313 pinctrl-0 = <&i2c1_pins_b>; 314 pinctrl-1 = <&i2c1_sleep_pins_b>; 315 status = "okay"; 316 317 powerboard_eeprom: eeprom@50 { 318 compatible = "atmel,24c02"; 319 reg = <0x50>; 320 vcc-supply = <&v3v3>; 321 }; 322 323 temperature-sensor@48 { 324 compatible = "national,lm75a"; 325 reg = <0x48>; 326 status = "disabled"; 327 }; 328 }; 329 330 &i2c5 { 331 /delete-property/dmas; 332 /delete-property/dma-names; 333 334 pinctrl-names = "default", "sleep"; 335 pinctrl-0 = <&i2c5_pins_b>; 336 pinctrl-1 = <&i2c5_sleep_pins_b>; 337 338 status = "okay"; 339 340 usbhub: usbhub@2c { 341 compatible ="microchip,usb2514 342 reg = <0x2c>; 343 vdd-supply = <&v3v3>; 344 reset-gpios = <&gpiob 6 GPIO_A 345 }; 346 }; 347 348 &iwdg2 { 349 timeout-sec = <8>; 350 status = "okay"; 351 }; 352 353 &m_can1 { 354 pinctrl-names = "default", "sleep"; 355 pinctrl-0 = <&m_can1_pins_b>; 356 pinctrl-1 = <&m_can1_sleep_pins_b>; 357 status = "okay"; 358 }; 359 360 &m_can2 { 361 pinctrl-names = "default", "sleep"; 362 pinctrl-0 = <&m_can2_pins_a>; 363 pinctrl-1 = <&m_can2_sleep_pins_a>; 364 status = "okay"; 365 }; 366 367 &pmic { 368 regulators { 369 buck1-supply = <®_5v>; 370 buck2-supply = <®_5v>; 371 buck3-supply = <®_5v>; 372 buck4-supply = <®_5v>; 373 ldo2-supply = <®_5v>; 374 ldo4-supply = <®_5v>; 375 ldo5-supply = <®_5v>; 376 vref_ddr-supply = <®_5v>; 377 boost-supply = <®_5v>; 378 pwr_sw2-supply = <&bst_out>; 379 }; 380 }; 381 382 &rtc { 383 status = "okay"; 384 }; 385 386 &sdmmc2 { 387 pinctrl-names = "default", "opendrain" 388 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2 389 pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdm 390 pinctrl-2 = <&sdmmc2_b4_sleep_pins_a & 391 vmmc-supply = <&v3v3>; 392 393 bus-width = <8>; 394 mmc-ddr-3_3v; 395 no-1-8-v; 396 non-removable; 397 no-sd; 398 no-sdio; 399 st,neg-edge; 400 401 status = "okay"; 402 }; 403 404 &spi2 { 405 pinctrl-names = "default"; 406 pinctrl-0 = <&spi2_pins_c>; 407 cs-gpios = <&gpiof 12 (GPIO_ACTIVE_LOW 408 status = "okay"; 409 }; 410 411 &spi4 { 412 pinctrl-names = "default"; 413 pinctrl-0 = <&spi4_pins_a>; 414 cs-gpios = <&gpiof 4 GPIO_ACTIVE_LOW>; 415 status = "okay"; 416 417 lcd: display@0 { 418 compatible = "shineworld,lh133 419 reg = <0>; 420 power-supply = <&v3v3>; 421 io-supply = <&v3v3>; 422 backlight = <&backlight>; 423 dc-gpios = <&gpiod 10 GPIO_ACT 424 reset-gpios = <&gpioh 4 GPIO_A 425 spi-3wire; 426 spi-max-frequency = <32000000> 427 428 width-mm = <23>; 429 height-mm = <23>; 430 rotation = <180>; 431 432 panel-timing { 433 hactive = <240>; 434 vactive = <240>; 435 hback-porch = <0>; 436 vback-porch = <0>; 437 438 clock-frequency = <0>; 439 hfront-porch = <0>; 440 hsync-len = <0>; 441 vfront-porch = <0>; 442 vsync-len = <0>; 443 }; 444 }; 445 }; 446 447 &spi5 { 448 pinctrl-names = "default"; 449 pinctrl-0 = <&spi5_pins_a>; 450 451 /* spare dmas for other usage */ 452 /delete-property/dmas; 453 /delete-property/dma-names; 454 455 cs-gpios = <&gpiod 13 GPIO_ACTIVE_LOW> 456 457 status = "okay"; 458 459 switch: switch@0 { 460 compatible = "microchip,ksz956 461 reg = <0>; 462 463 reset-gpios = <&gpiog 0 GPIO_A 464 spi-max-frequency = <44000000> 465 466 interrupt-parent = <&gpioa>; 467 interrupts = <6 IRQ_TYPE_EDGE_ 468 469 /* Reduce RGMII EMI emissions 470 microchip,hi-drive-strength-mi 471 microchip,lo-drive-strength-mi 472 473 ports { 474 #address-cells = <1>; 475 #size-cells = <0>; 476 port_dut: port@0 { 477 reg = <0>; 478 label = "dut"; 479 }; 480 481 port_uplink: port@1 { 482 reg = <1>; 483 label = "uplin 484 }; 485 486 port_cpu: port@2 { 487 reg = <2>; 488 label = "cpu"; 489 490 ethernet = <&e 491 492 phy-mode = "rg 493 rx-internal-de 494 tx-internal-de 495 496 fixed-link { 497 speed 498 full-d 499 }; 500 }; 501 }; 502 }; 503 }; 504 505 &timers2 { 506 /* spare dmas for other usage */ 507 /delete-property/dmas; 508 /delete-property/dma-names; 509 510 status = "okay"; 511 512 timer@1 { 513 status = "okay"; 514 }; 515 }; 516 517 &timers3 { 518 /* spare dmas for other usage */ 519 /delete-property/dmas; 520 /delete-property/dma-names; 521 522 status = "okay"; 523 524 timer@2 { 525 status = "okay"; 526 }; 527 }; 528 529 &timers4 { 530 /* spare dmas for other usage */ 531 /delete-property/dmas; 532 /delete-property/dma-names; 533 534 status = "okay"; 535 536 timer@3 { 537 status = "okay"; 538 }; 539 }; 540 541 &uart4 { 542 label = "debug"; 543 544 pinctrl-names = "default"; 545 pinctrl-0 = <&uart4_pins_a>; 546 547 /* spare dmas for other usage */ 548 /delete-property/dmas; 549 /delete-property/dma-names; 550 551 status = "okay"; 552 }; 553 554 &usart3 { 555 label = "dut"; 556 uart-has-rtscts; 557 558 pinctrl-names = "default"; 559 pinctrl-0 = <&usart3_pins_f>; 560 561 /* spare dmas for other usage */ 562 /delete-property/dmas; 563 /delete-property/dma-names; 564 565 status = "okay"; 566 }; 567 568 &usbh_ehci { 569 status = "okay"; 570 }; 571 572 &usbotg_hs { 573 phys = <&usbphyc_port1 0>; 574 phy-names = "usb2-phy"; 575 576 vusb_d-supply = <&vdd_usb>; 577 vusb_a-supply = <®18>; 578 579 dr_mode = "peripheral"; 580 581 status = "okay"; 582 }; 583 584 &usbphyc { 585 status = "okay"; 586 }; 587 588 &vrefbuf { 589 regulator-min-microvolt = <2500000>; 590 regulator-max-microvolt = <2500000>; 591 vdda-supply = <&vdda>; 592 593 status = "okay"; 594 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.