1/* 2 * Copyright (c) 2021 Microchip Technology Inc. 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7#include <arm/armv7-m.dtsi> 8 9#include <zephyr/dt-bindings/adc/adc.h> 10#include <zephyr/dt-bindings/clock/mchp_xec_pcr.h> 11#include <zephyr/dt-bindings/gpio/gpio.h> 12#include <zephyr/dt-bindings/gpio/microchip-xec-gpio.h> 13#include <zephyr/dt-bindings/i2c/i2c.h> 14#include <zephyr/dt-bindings/interrupt-controller/mchp-xec-ecia.h> 15#include <freq.h> 16#include <mem.h> 17 18#include "mec172x/mec172x-vw-routing.dtsi" 19 20/ { 21 cpus { 22 #address-cells = <1>; 23 #size-cells = <0>; 24 25 cpu0: cpu@0 { 26 device_type = "cpu"; 27 compatible = "arm,cortex-m4"; 28 reg = <0>; 29 cpu-power-states = <&idle &suspend_to_ram>; 30 }; 31 32 power-states { 33 idle: idle { 34 compatible = "zephyr,power-state"; 35 power-state-name = "suspend-to-idle"; 36 min-residency-us = <1000000>; 37 }; 38 39 suspend_to_ram: suspend_to_ram { 40 compatible = "zephyr,power-state"; 41 power-state-name = "suspend-to-ram"; 42 min-residency-us = <2000000>; 43 }; 44 }; 45 }; 46 47 flash0: flash@c0000 { 48 reg = <0x000C0000 0x58000>; 49 }; 50 51 sram0: memory@118000 { 52 compatible = "mmio-sram"; 53 reg = <0x00118000 0x10000>; 54 }; 55 56 soc { 57 ecs: ecs@4000fc00 { 58 reg = <0x4000fc00 0x200>; 59 }; 60 pcr: pcr@40080100 { 61 compatible = "microchip,xec-pcr"; 62 reg = <0x40080100 0x100 0x4000a400 0x100>; 63 reg-names = "pcrr", "vbatr"; 64 interrupts = <174 0>; 65 core-clock-div = <1>; 66 /* MEC172x allows sources to be different */ 67 pll-32k-src = <MCHP_XEC_PLL_CLK32K_SRC_SIL_OSC>; 68 periph-32k-src = <MCHP_XEC_PERIPH_CLK32K_SRC_SO_SO>; 69 clk32kmon-period-min = <1435>; 70 clk32kmon-period-max = <1495>; 71 clk32kmon-duty-cycle-var-max = <132>; 72 clk32kmon-valid-min = <4>; 73 xtal-enable-delay-ms = <300>; 74 pll-lock-timeout-ms = <30>; 75 /* pin configured only if one of the sources is set to PIN */ 76 pinctrl-0 = <&clk_32khz_in_gpio165>; 77 pinctrl-names = "default"; 78 #clock-cells = <3>; 79 }; 80 ecia: ecia@4000e000 { 81 compatible = "microchip,xec-ecia"; 82 reg = <0x4000e000 0x400>; 83 direct-capable-girqs = <13 14 15 16 17 18 19 20 21 23>; 84 clocks = <&pcr 1 0 MCHP_XEC_PCR_CLK_PERIPH>; 85 #address-cells = <1>; 86 #size-cells = <1>; 87 88 ranges = <0x0 0x4000e000 0x400>; 89 90 girq8: girq8@0 { 91 compatible = "microchip,xec-ecia-girq"; 92 reg = <0x0 0x14>; 93 interrupts = <0 0>; 94 girq-id = <0>; 95 sources = <0 1 2 3 4 5 6 7 96 8 9 10 11 12 13 14 15 97 16 17 18 21 22 24 25 98 26 27 28 29>; 99 status = "disabled"; 100 }; 101 girq9: girq9@14 { 102 compatible = "microchip,xec-ecia-girq"; 103 reg = <0x14 0x14>; 104 interrupts = <1 0>; 105 girq-id = <1>; 106 sources = <0 1 2 3 4 5 6 7 107 8 9 10 11 12 13 14 15 108 16 17 18 19 20 21 22 23 109 24 25 26 27 28 29>; 110 status = "disabled"; 111 }; 112 girq10: girq10@28 { 113 compatible = "microchip,xec-ecia-girq"; 114 reg = <0x28 0x14>; 115 interrupts = <2 0>; 116 girq-id = <2>; 117 sources = <0 1 2 3 4 5 6 7 118 8 9 10 11 12 13 14 15 119 16 17 18 19 20 21 22 23 120 24 25 26 27 28 29 30>; 121 status = "disabled"; 122 }; 123 girq11: girq11@3c { 124 compatible = "microchip,xec-ecia-girq"; 125 reg = <0x3c 0x14>; 126 interrupts = <3 0>; 127 girq-id = <3>; 128 sources = <0 1 2 3 4 5 6 7 129 8 9 10 11 12 13 14 15 130 16 17 18 19 20 21 22 23 131 24 25 26 27 28 29 30>; 132 status = "disabled"; 133 }; 134 girq12: girq12@50 { 135 compatible = "microchip,xec-ecia-girq"; 136 reg = <0x50 0x14>; 137 interrupts = <4 0>; 138 girq-id = <4>; 139 sources = <0 1 2 3 4 5 6 7 140 8 9 10 11 12 13 14 15 141 16 17 18 19 20 21 22 23 142 24 25 26 27 28 29 30>; 143 status = "disabled"; 144 }; 145 girq13: girq13@64 { 146 compatible = "microchip,xec-ecia-girq"; 147 reg = <0x64 0x14>; 148 interrupts = <5 0>; 149 girq-id = <5>; 150 sources = <0 1 2 3 4>; 151 status = "disabled"; 152 }; 153 girq14: girq14@78 { 154 compatible = "microchip,xec-ecia-girq"; 155 reg = <0x78 0x14>; 156 interrupts = <6 0>; 157 girq-id = <6>; 158 sources = <0 1 2 3 4 5 6 7 159 8 9 10 11 12 13 14 15>; 160 status = "disabled"; 161 }; 162 girq15: girq15@8c { 163 compatible = "microchip,xec-ecia-girq"; 164 reg = <0x8c 0x14>; 165 interrupts = <7 0>; 166 girq-id = <7>; 167 sources = <0 1 2 3 4 5 6 7 168 8 9 10 11 12 13 14 15 169 16 17 18 19 20 22>; 170 status = "disabled"; 171 }; 172 girq16: girq16@a0 { 173 compatible = "microchip,xec-ecia-girq"; 174 reg = <0xa0 0x14>; 175 interrupts = <8 0>; 176 girq-id = <8>; 177 sources = <0 2 3>; 178 status = "disabled"; 179 }; 180 girq17: girq17@b4 { 181 compatible = "microchip,xec-ecia-girq"; 182 reg = <0xb4 0x14>; 183 interrupts = <9 0>; 184 girq-id = <9>; 185 sources = <0 1 2 3 4 8 9 10 11 12 13 14 15 186 16 17 20 21 22 23>; 187 status = "disabled"; 188 }; 189 girq18: girq18@c8 { 190 compatible = "microchip,xec-ecia-girq"; 191 reg = <0xc8 0x14>; 192 interrupts = <10 0>; 193 girq-id = <10>; 194 sources = <0 1 2 3 4 5 6 7 195 10 20 21 22 23 196 24 25 26 27 28>; 197 status = "disabled"; 198 }; 199 girq19: girq19@dc { 200 compatible = "microchip,xec-ecia-girq"; 201 reg = <0xdc 0x14>; 202 interrupts = <11 0>; 203 girq-id = <11>; 204 sources = <0 1 2 3 4 5 6 7 8 9 10>; 205 status = "disabled"; 206 }; 207 girq20: girq20@f0 { 208 compatible = "microchip,xec-ecia-girq"; 209 reg = <0xf0 0x14>; 210 interrupts = <12 0>; 211 girq-id = <12>; 212 sources = <3 9>; 213 status = "disabled"; 214 }; 215 girq21: girq21@104 { 216 compatible = "microchip,xec-ecia-girq"; 217 reg = <0x104 0x14>; 218 interrupts = <13 0>; 219 girq-id = <13>; 220 sources = <2 3 4 5 6 7 8 9 10 11 12 13 14 15 221 18 19 25 26>; 222 status = "disabled"; 223 }; 224 girq22: girq22@118 { 225 compatible = "microchip,xec-ecia-girq"; 226 reg = <0x118 0x14>; 227 interrupts = <255 0>; 228 girq-id = <14>; 229 sources = <0 1 2 3 4 5 9 15>; 230 status = "disabled"; 231 }; 232 girq23: girq23@12c { 233 compatible = "microchip,xec-ecia-girq"; 234 reg = <0x12c 0x14>; 235 interrupts = <14 0>; 236 girq-id = <15>; 237 sources = <0 1 2 3 4 5 6 7 8 9 10 16 17>; 238 status = "disabled"; 239 }; 240 girq24: girq24@140 { 241 compatible = "microchip,xec-ecia-girq"; 242 reg = <0x140 0x14>; 243 interrupts = <15 0>; 244 girq-id = <16>; 245 sources = <0 1 2 3 4 5 6 7 8 9 10 11 246 12 13 14 15 16 17 18 19 247 20 21 22 23 24 25 26 27>; 248 status = "disabled"; 249 }; 250 girq25: girq25@154 { 251 compatible = "microchip,xec-ecia-girq"; 252 reg = <0x154 0x14>; 253 interrupts = <16 0>; 254 girq-id = <17>; 255 sources = <0 1 2 3 4 5 6 7 8 9 10 11 256 12 13 14 15>; 257 status = "disabled"; 258 }; 259 girq26: girq26@168 { 260 compatible = "microchip,xec-ecia-girq"; 261 reg = <0x168 0x14>; 262 interrupts = <17 0>; 263 girq-id = <18>; 264 sources = <0 1 2 3 4 5 6 12 13>; 265 status = "disabled"; 266 }; 267 }; 268 pinctrl: pin-controller@40081000 { 269 compatible = "microchip,xec-pinctrl"; 270 #address-cells = <1>; 271 #size-cells = <1>; 272 reg = <0x40081000 0x1000>; 273 274 gpio_000_036: gpio@40081000 { 275 compatible = "microchip,xec-gpio-v2"; 276 reg = < 0x40081000 0x80 0x40081300 0x04 277 0x40081380 0x04 0x400813fc 0x04>; 278 interrupts = <3 2>; 279 gpio-controller; 280 port-id = <0>; 281 girq-id = <11>; 282 #gpio-cells=<2>; 283 }; 284 gpio_040_076: gpio@40081080 { 285 compatible = "microchip,xec-gpio-v2"; 286 reg = < 0x40081080 0x80 0x40081304 0x04 287 0x40081384 0x04 0x400813f8 0x4>; 288 interrupts = <2 2>; 289 gpio-controller; 290 port-id = <1>; 291 girq-id = <10>; 292 #gpio-cells=<2>; 293 }; 294 gpio_100_136: gpio@40081100 { 295 compatible = "microchip,xec-gpio-v2"; 296 reg = < 0x40081100 0x80 0x40081308 0x04 297 0x40081388 0x04 0x400813f4 0x04>; 298 gpio-controller; 299 interrupts = <1 2>; 300 port-id = <2>; 301 girq-id = <9>; 302 #gpio-cells=<2>; 303 }; 304 gpio_140_176: gpio@40081180 { 305 compatible = "microchip,xec-gpio-v2"; 306 reg = < 0x40081180 0x80 0x4008130c 0x04 307 0x4008138c 0x04 0x400813f0 0x04>; 308 gpio-controller; 309 interrupts = <0 2>; 310 port-id = <3>; 311 girq-id = <8>; 312 #gpio-cells=<2>; 313 }; 314 gpio_200_236: gpio@40081200 { 315 compatible = "microchip,xec-gpio-v2"; 316 reg = < 0x40081200 0x80 0x40081310 0x04 317 0x40081390 0x04 0x400813ec 0x04>; 318 gpio-controller; 319 interrupts = <4 2>; 320 port-id = <4>; 321 girq-id = <12>; 322 #gpio-cells=<2>; 323 }; 324 gpio_240_276: gpio@40081280 { 325 compatible = "microchip,xec-gpio-v2"; 326 reg = < 0x40081280 0x80 0x40081314 0x04 327 0x40081394 0x04 0x400813e8 0x04>; 328 gpio-controller; 329 interrupts = <17 2>; 330 port-id = <5>; 331 girq-id = <26>; 332 #gpio-cells=<2>; 333 }; 334 }; 335 wdog: watchdog@40000400 { 336 compatible = "microchip,xec-watchdog"; 337 reg = <0x40000400 0x400>; 338 interrupts = <171 0>; 339 girqs = <21 2>; 340 pcrs = <1 9>; 341 }; 342 rtimer: timer@40007400 { 343 compatible = "microchip,xec-rtos-timer"; 344 reg = <0x40007400 0x10>; 345 interrupts = <111 0>; 346 girqs = <23 10>; 347 }; 348 timer0: timer@40000c00 { 349 compatible = "microchip,xec-timer"; 350 clock-frequency = <48000000>; 351 reg = <0x40000c00 0x20>; 352 interrupts = <136 0>; 353 girqs = <23 0>; 354 pcrs = <1 30>; 355 max-value = <0xFFFF>; 356 prescaler = <0>; 357 status = "disabled"; 358 }; 359 timer1: timer@40000c20 { 360 compatible = "microchip,xec-timer"; 361 clock-frequency = <48000000>; 362 reg = <0x40000c20 0x20>; 363 interrupts = <137 0>; 364 girqs = <23 1>; 365 pcrs = <1 31>; 366 max-value = <0xFFFF>; 367 prescaler = <0>; 368 status = "disabled"; 369 }; 370 timer2: timer@40000c40 { 371 compatible = "microchip,xec-timer"; 372 clock-frequency = <48000000>; 373 reg = <0x40000c40 0x20>; 374 interrupts = <138 0>; 375 girqs = <23 2>; 376 pcrs = <3 21>; 377 max-value = <0xFFFF>; 378 prescaler = <0>; 379 status = "disabled"; 380 }; 381 timer3: timer@40000c60 { 382 compatible = "microchip,xec-timer"; 383 clock-frequency = <48000000>; 384 reg = <0x40000c60 0x20>; 385 interrupts = <139 0>; 386 girqs = <23 3>; 387 pcrs = <3 22>; 388 max-value = <0xFFFF>; 389 prescaler = <0>; 390 status = "disabled"; 391 }; 392 /* 393 * NOTE: When RTOS timer used as kernel timer, timer4 used 394 * to provide high speed busy wait counter. Keep disabled to 395 * prevent counter driver from claiming it. 396 */ 397 timer4: timer@40000c80 { 398 compatible = "microchip,xec-timer"; 399 clock-frequency = <48000000>; 400 reg = <0x40000c80 0x20>; 401 interrupts = <140 0>; 402 girqs = <23 4>; 403 pcrs = <3 23>; 404 max-value = <0xFFFFFFFF>; 405 prescaler = <0>; 406 status = "disabled"; 407 }; 408 timer5: timer@40000ca0 { 409 compatible = "microchip,xec-timer"; 410 clock-frequency = <48000000>; 411 reg = <0x40000ca0 0x20>; 412 interrupts = <141 0>; 413 girqs = <23 5>; 414 pcrs = <3 24>; 415 max-value = <0xFFFFFFFF>; 416 prescaler = <0>; 417 status = "disabled"; 418 }; 419 cntr0: timer@40000d00 { 420 reg = <0x40000d00 0x20>; 421 interrupts = <142 0>; 422 girqs = <23 6>; 423 pcrs = <4 2>; 424 status = "disabled"; 425 }; 426 cntr1: timer@40000d20 { 427 reg = <0x40000d20 0x20>; 428 interrupts = <143 0>; 429 girqs = <23 7>; 430 pcrs = <4 3>; 431 status = "disabled"; 432 }; 433 cntr2: timer@40000d40 { 434 reg = <0x40000d40 0x20>; 435 interrupts = <144 0>; 436 girqs = <23 8>; 437 pcrs = <4 3>; 438 status = "disabled"; 439 }; 440 cntr3: timer@40000d60 { 441 reg = <0x40000d60 0x20>; 442 interrupts = <145 0>; 443 girqs = <23 9>; 444 pcrs = <4 4>; 445 status = "disabled"; 446 }; 447 cctmr0: timer@40001000 { 448 reg = <0x40001000 0x40>; 449 interrupts = <146 0>, <147 0>, <148 0>, <149 0>, 450 <150 0>, <151 0>, <152 0>, <153 0>, 451 <154 0>; 452 girqs = <18 20>, <18 21>, <18 22>, <18 23>, <18 24>, 453 <18 25>, <18 26>, <18 27>, <18 28>; 454 pcrs = <3 30>; 455 status = "disabled"; 456 }; 457 hibtimer0: timer@40009800 { 458 reg = <0x40009800 0x20>; 459 interrupts = <112 0>; 460 girqs = <23 16>; 461 }; 462 hibtimer1: timer@40009820 { 463 reg = <0x40009820 0x20>; 464 interrupts = <113 0>; 465 girqs = <23 17>; 466 }; 467 weektmr0: timer@4000ac80 { 468 reg = <0x4000ac80 0x80>; 469 interrupts = <114 0>, <115 0>, <116 0>, 470 <117 0>, <118 0>; 471 girqs = <21 3>, <21 4>, <21 5>, <21 6>, <21 7>; 472 status = "disabled"; 473 }; 474 bbram: bb-ram@4000a800 { 475 compatible = "microchip,xec-bbram"; 476 reg = <0x4000a800 0x100>; 477 reg-names = "memory"; 478 }; 479 vci0: vci@4000ae00 { 480 reg = <0x4000ae00 0x40>; 481 interrupts = <121 0>, <122 0>, <123 0>, 482 <124 0>, <125 0>; 483 girqs = <21 10>, <21 11>, <21 12>, <21 13>, <21 14>; 484 status = "disabled"; 485 }; 486 dmac: dmac@40002400 { 487 compatible = "microchip,xec-dmac"; 488 reg = <0x40002400 0xc00>; 489 interrupts = <24 1>, <25 1>, <26 1>, <27 1>, 490 <28 1>, <29 1>, <30 1>, <31 1>, 491 <32 1>, <33 1>, <34 1>, <35 1>, 492 <36 1>, <37 1>, <38 1>, <39 1>; 493 girqs = < MCHP_XEC_ECIA(14, 0, 6, 24) 494 MCHP_XEC_ECIA(14, 1, 6, 25) 495 MCHP_XEC_ECIA(14, 2, 6, 26) 496 MCHP_XEC_ECIA(14, 3, 6, 27) 497 MCHP_XEC_ECIA(14, 4, 6, 28) 498 MCHP_XEC_ECIA(14, 5, 6, 29) 499 MCHP_XEC_ECIA(14, 6, 6, 30) 500 MCHP_XEC_ECIA(14, 7, 6, 31) 501 MCHP_XEC_ECIA(14, 8, 6, 32) 502 MCHP_XEC_ECIA(14, 9, 6, 33) 503 MCHP_XEC_ECIA(14, 10, 6, 34) 504 MCHP_XEC_ECIA(14, 11, 6, 35) 505 MCHP_XEC_ECIA(14, 12, 6, 36) 506 MCHP_XEC_ECIA(14, 13, 6, 37) 507 MCHP_XEC_ECIA(14, 14, 6, 38) 508 MCHP_XEC_ECIA(14, 15, 6, 39) >; 509 pcrs = <1 6>; 510 #dma-cells = <2>; 511 dma-channels = <16>; 512 dma-requests = <16>; 513 status = "disabled"; 514 }; 515 eeprom: eeprom@40002c00 { 516 compatible = "microchip,xec-eeprom"; 517 reg = <0x40002c00 0x400>; 518 interrupts = <155 2>; 519 size = <2048>; 520 girqs = <18 13>; 521 pcrs = <4 14>; 522 status = "disabled"; 523 }; 524 i2c_smb_0: i2c@40004000 { 525 compatible = "microchip,xec-i2c-v2"; 526 reg = <0x40004000 0x80>; 527 clock-frequency = <I2C_BITRATE_STANDARD>; 528 interrupts = <20 1>; 529 girqs = <13 0>; 530 pcrs = <1 10>; 531 #address-cells = <1>; 532 #size-cells = <0>; 533 status = "disabled"; 534 }; 535 i2c_smb_1: i2c@40004400 { 536 compatible = "microchip,xec-i2c-v2"; 537 reg = <0x40004400 0x80>; 538 clock-frequency = <I2C_BITRATE_STANDARD>; 539 interrupts = <21 1>; 540 girqs = <13 1>; 541 pcrs = <3 13>; 542 #address-cells = <1>; 543 #size-cells = <0>; 544 status = "disabled"; 545 }; 546 i2c_smb_2: i2c@40004800 { 547 compatible = "microchip,xec-i2c-v2"; 548 reg = <0x40004800 0x80>; 549 clock-frequency = <I2C_BITRATE_STANDARD>; 550 interrupts = <22 1>; 551 girqs = <13 2>; 552 pcrs = <3 14>; 553 #address-cells = <1>; 554 #size-cells = <0>; 555 status = "disabled"; 556 }; 557 i2c_smb_3: i2c@40004c00 { 558 compatible = "microchip,xec-i2c-v2"; 559 reg = <0x40004C00 0x80>; 560 clock-frequency = <I2C_BITRATE_STANDARD>; 561 interrupts = <23 1>; 562 girqs = <13 3>; 563 pcrs = <3 15>; 564 #address-cells = <1>; 565 #size-cells = <0>; 566 status = "disabled"; 567 }; 568 i2c_smb_4: i2c@40005000 { 569 compatible = "microchip,xec-i2c-v2"; 570 reg = <0x40005000 0x80>; 571 clock-frequency = <I2C_BITRATE_STANDARD>; 572 interrupts = <158 1>; 573 girqs = <13 4>; 574 pcrs = <3 20>; 575 #address-cells = <1>; 576 #size-cells = <0>; 577 status = "disabled"; 578 }; 579 ps2_0: ps2@40009000 { 580 compatible = "microchip,xec-ps2"; 581 reg = <0x40009000 0x40>; 582 interrupts = <100 1>; 583 girqs = <18 10>, <21 18>; 584 pcrs = <3 5>; 585 #address-cells = <1>; 586 #size-cells = <0>; 587 status = "disabled"; 588 }; 589 pwm0: pwm@40005800 { 590 compatible = "microchip,xec-pwm"; 591 reg = <0x40005800 0x20>; 592 pcrs = <1 4>; 593 status = "disabled"; 594 #pwm-cells = <3>; 595 }; 596 pwm1: pwm@40005810 { 597 compatible = "microchip,xec-pwm"; 598 reg = <0x40005810 0x20>; 599 pcrs = <1 20>; 600 status = "disabled"; 601 #pwm-cells = <3>; 602 }; 603 pwm2: pwm@40005820 { 604 compatible = "microchip,xec-pwm"; 605 reg = <0x40005820 0x20>; 606 pcrs = <1 21>; 607 status = "disabled"; 608 #pwm-cells = <3>; 609 }; 610 pwm3: pwm@40005830 { 611 compatible = "microchip,xec-pwm"; 612 reg = <0x40005830 0x20>; 613 pcrs = <1 22>; 614 status = "disabled"; 615 #pwm-cells = <3>; 616 }; 617 pwm4: pwm@40005840 { 618 compatible = "microchip,xec-pwm"; 619 reg = <0x40005840 0x20>; 620 pcrs = <1 23>; 621 status = "disabled"; 622 #pwm-cells = <3>; 623 }; 624 pwm5: pwm@40005850 { 625 compatible = "microchip,xec-pwm"; 626 reg = <0x40005850 0x20>; 627 pcrs = <1 24>; 628 status = "disabled"; 629 #pwm-cells = <3>; 630 }; 631 pwm6: pwm@40005860 { 632 compatible = "microchip,xec-pwm"; 633 reg = <0x40005860 0x20>; 634 pcrs = <1 25>; 635 status = "disabled"; 636 #pwm-cells = <3>; 637 }; 638 pwm7: pwm@40005870 { 639 compatible = "microchip,xec-pwm"; 640 reg = <0x40005870 0x20>; 641 pcrs = <1 26>; 642 status = "disabled"; 643 #pwm-cells = <3>; 644 }; 645 pwm8: pwm@40005880 { 646 compatible = "microchip,xec-pwm"; 647 reg = <0x40005880 0x20>; 648 pcrs = <1 27>; 649 status = "disabled"; 650 #pwm-cells = <3>; 651 }; 652 tach0: tach@40006000 { 653 compatible = "microchip,xec-tach"; 654 reg = <0x40006000 0x10>; 655 interrupts = <71 4>; 656 girqs = <17 1>; 657 pcrs = <1 2>; 658 #address-cells = <1>; 659 #size-cells = <0>; 660 status = "disabled"; 661 }; 662 tach1: tach@40006010 { 663 compatible = "microchip,xec-tach"; 664 reg = <0x40006010 0x10>; 665 interrupts = <72 4>; 666 girqs = <17 2>; 667 pcrs = <1 11>; 668 #address-cells = <1>; 669 #size-cells = <0>; 670 status = "disabled"; 671 }; 672 tach2: tach@40006020 { 673 compatible = "microchip,xec-tach"; 674 reg = <0x40006020 0x10>; 675 interrupts = <73 4>; 676 girqs = <17 3>; 677 pcrs = <1 12>; 678 #address-cells = <1>; 679 #size-cells = <0>; 680 status = "disabled"; 681 }; 682 tach3: tach@40006030 { 683 compatible = "microchip,xec-tach"; 684 reg = <0x40006030 0x10>; 685 interrupts = <159 4>; 686 girqs = <17 4>; 687 pcrs = <1 13>; 688 #address-cells = <1>; 689 #size-cells = <0>; 690 status = "disabled"; 691 }; 692 rpmfan0: rpmfan@4000a000 { 693 reg = <0x4000a000 0x80>; 694 interrupts = <74 1>, <75 1>; 695 girqs = <17 20>, <17 21>; 696 pcrs = <3 12>; 697 status = "disabled"; 698 }; 699 rpmfan1: rpmfan@4000a080 { 700 reg = <0x4000a080 0x80>; 701 interrupts = <76 1>, <77 1>; 702 girqs = <17 22>, <17 23>; 703 pcrs = <4 7>; 704 status = "disabled"; 705 }; 706 adc0: adc@40007c00 { 707 compatible = "microchip,xec-adc"; 708 reg = <0x40007c00 0x90>; 709 interrupts = <78 0>, <79 0>; 710 girqs = <17 8>, <17 9>; 711 pcrs = <3 3>; 712 status = "disabled"; 713 #io-channel-cells = <1>; 714 clktime = <32>; 715 }; 716 kscan0: kscan@40009c00 { 717 compatible = "microchip,xec-kscan"; 718 reg = <0x40009c00 0x18>; 719 interrupts = <135 0>; 720 girqs = <21 25>; 721 pcrs = <3 11>; 722 status = "disabled"; 723 #address-cells = <1>; 724 #size-cells = <0>; 725 }; 726 peci0: peci@40006400 { 727 compatible = "microchip,xec-peci"; 728 reg = <0x40006400 0x80>; 729 interrupts = <70 4>; 730 girqs = <17 0>; 731 pcrs = <1 1>; 732 #address-cells = <1>; 733 #size-cells = <0>; 734 }; 735 spi0: spi@40070000 { 736 reg = <0x40070000 0x400>; 737 interrupts = <91 2>; 738 girqs = < MCHP_XEC_ECIA(18, 1, 10, 91) >; 739 clocks = <&pcr 4 8 MCHP_XEC_PCR_CLK_PERIPH>; 740 clock-frequency = <12000000>; 741 lines = <1>; 742 chip-select = <0>; 743 #address-cells = <1>; 744 #size-cells = <0>; 745 status = "disabled"; 746 }; 747 spi1: spi@40009400 { 748 reg = <0x40009400 0x80>; 749 interrupts = <92 2>, <93 2>; 750 girqs = <18 2>, <18 3>; 751 pcrs = <3 9>; 752 status = "disabled"; 753 }; 754 spi2: spi@40009480 { 755 reg = <0x40009480 0x80>; 756 interrupts = <94 2>, <95 2>; 757 girqs = <18 4>, <18 5>; 758 pcrs = <4 22>; 759 status = "disabled"; 760 }; 761 prochot0: prochot@40003400 { 762 reg = <0x40003400 0x20>; 763 interrupts = <87 0>; 764 girqs = <17 17>; 765 pcrs = <4 13>; 766 status = "disabled"; 767 }; 768 rcid0: rcid@40001400 { 769 reg = <0x40001400 0x80>; 770 interrupts = <80 0>; 771 girqs = <17 10>; 772 pcrs = <4 10>; 773 status = "disabled"; 774 }; 775 rcid1: rcid@40001480 { 776 reg = <0x40001480 0x80>; 777 interrupts = <81 0>; 778 girqs = <17 11>; 779 pcrs = <4 11>; 780 status = "disabled"; 781 }; 782 rcid2: rcid@40001500 { 783 reg = <0x40001500 0x80>; 784 interrupts = <82 0>; 785 girqs = <17 12>; 786 pcrs = <4 12>; 787 status = "disabled"; 788 }; 789 spip0: spip@40007000 { 790 reg = <0x40007000 0x100>; 791 interrupts = <90 0>; 792 girqs = <18 0>; 793 pcrs = <4 16>; 794 status = "disabled"; 795 }; 796 bbled0: bbled@4000b800 { 797 reg = <0x4000b800 0x100>; 798 interrupts = <83 0>; 799 girqs = <17 13>; 800 pcrs = <3 16>; 801 status = "disabled"; 802 }; 803 bbled1: bbled@4000b900 { 804 reg = <0x4000b900 0x100>; 805 interrupts = <84 0>; 806 girqs = <17 14>; 807 pcrs = <3 17>; 808 status = "disabled"; 809 }; 810 bbled2: bbled@4000ba00 { 811 reg = <0x4000ba00 0x100>; 812 interrupts = <85 0>; 813 girqs = <17 15>; 814 pcrs = <3 18>; 815 status = "disabled"; 816 }; 817 bbled3: bbled@4000bb00 { 818 reg = <0x4000bb00 0x100>; 819 interrupts = <86 0>; 820 girqs = <17 16>; 821 pcrs = <3 25>; 822 status = "disabled"; 823 }; 824 bclink0: bclink@4000cd00 { 825 reg = <0x4000cd00 0x20>; 826 interrupts = <96 0>, <97 0>; 827 girqs = <18 7>, <18 6>; 828 pcrs = <3 19>; 829 status = "disabled"; 830 }; 831 tfdp0: tfdp@40008c00 { 832 reg = <0x40008c00 0x10>; 833 pcrs = <1 7>; 834 status = "disabled"; 835 }; 836 glblcfg0: glblcfg@400fff00 { 837 reg = <0x400fff00 0x40>; 838 pcrs = <2 12>; 839 status = "disabled"; 840 }; 841 uart0: uart@400f2400 { 842 compatible = "microchip,xec-uart"; 843 reg = <0x400f2400 0x400>; 844 interrupts = <40 1>; 845 clock-frequency = <1843200>; 846 current-speed = <38400>; 847 girqs = <15 0>; 848 pcrs = <2 1>; 849 ldn = <9>; 850 status = "disabled"; 851 }; 852 uart1: uart@400f2800 { 853 compatible = "microchip,xec-uart"; 854 reg = <0x400f2800 0x400>; 855 interrupts = <41 1>; 856 clock-frequency = <1843200>; 857 current-speed = <38400>; 858 girqs = <15 1>; 859 pcrs = <2 2>; 860 ldn = <10>; 861 status = "disabled"; 862 }; 863 espi0: espi@400f3400 { 864 compatible = "microchip,xec-espi-v2"; 865 /* reg tuple contains one 32-bit address cell and one 866 * 32-bit length(size) cell. 867 */ 868 #address-cells = <1>; 869 #size-cells = <1>; 870 reg = < 0x400f3400 0x400 871 0x400f3800 0x400 872 0x400f9c00 0x400>; 873 reg-names = "io", "mem", "vw"; 874 interrupts = <103 3>, <104 3>, <105 3>, <106 3>, 875 <107 3>, <108 3>, <109 3>, <110 2>, 876 <156 3>; 877 interrupt-names = "pc", "bm1", "bm2", "ltr", "oob_up", 878 "oob_dn", "fc", "rst", "vw_chan_en"; 879 girqs = < MCHP_XEC_ECIA(19, 0, 11, 103) 880 MCHP_XEC_ECIA(19, 1, 11, 104) 881 MCHP_XEC_ECIA(19, 2, 11, 105) 882 MCHP_XEC_ECIA(19, 3, 11, 106) 883 MCHP_XEC_ECIA(19, 4, 11, 107) 884 MCHP_XEC_ECIA(19, 5, 11, 108) 885 MCHP_XEC_ECIA(19, 6, 11, 109) 886 MCHP_XEC_ECIA(19, 7, 11, 110) 887 MCHP_XEC_ECIA(19, 8, 11, 156) >; 888 pcrs = <2 19>; 889 status = "disabled"; 890 891 espi_saf0: espi_saf@40008000 { 892 compatible = "microchip,xec-espi-saf-v2"; 893 reg = <0x40008000 0x400>, <0x40070000 0x400>, 894 <0x40071000 0x400>; 895 reg-names = "safbr", "safqspi", "safcomm"; 896 interrupts = <166 3>, <167 3>; 897 interrupt-names = "done", "err"; 898 girqs = < MCHP_XEC_ECIA(19, 9, 11, 166) >, 899 < MCHP_XEC_ECIA(19, 10, 11, 167) >; 900 pcrs = <2 27>; 901 status = "disabled"; 902 }; 903 904 mbox0: mbox@400f0000 { 905 compatible = "microchip,xec-espi-host-dev"; 906 reg = <0x400f0000 0x200>; 907 interrupts = <60 3>; 908 girqs = < MCHP_XEC_ECIA(15, 20, 7, 60) >; 909 pcrs = <2 17>; 910 ldn = <0>; 911 status = "disabled"; 912 }; 913 kbc0: kbc@400f0400 { 914 compatible = "microchip,xec-espi-host-dev"; 915 reg = <0x400f0400 0x400>; 916 interrupts = <58 3>, <59 3>; 917 interrupt-names = "kbc_obe", "kbc_ibf"; 918 girqs = < MCHP_XEC_ECIA(15, 18, 7, 58) 919 MCHP_XEC_ECIA(15, 19, 7, 59) >; 920 ldn = <1>; 921 status = "disabled"; 922 }; 923 acpi_ec0: acpi_ec@400f0800 { 924 compatible = "microchip,xec-espi-host-dev"; 925 reg = <0x400f0800 0x400>; 926 interrupts = <45 3>, <46 3>; 927 interrupt-names = "acpi_ibf", "acpi_obe"; 928 girqs = < MCHP_XEC_ECIA(15, 5, 7, 45) 929 MCHP_XEC_ECIA(15, 6, 7, 46) >; 930 ldn = <2>; 931 status = "disabled"; 932 }; 933 acpi_ec1: acpi_ec@400f0c00 { 934 compatible = "microchip,xec-espi-host-dev"; 935 reg = <0x400f0c00 0x400>; 936 interrupts = <47 3>, <48 3>; 937 interrupt-names = "acpi_ibf", "acpi_obe"; 938 girqs = < MCHP_XEC_ECIA(15, 7, 7, 47) 939 MCHP_XEC_ECIA(15, 8, 7, 48) >; 940 ldn = <3>; 941 status = "disabled"; 942 }; 943 acpi_ec2: acpi_ec@400f1000 { 944 compatible = "microchip,xec-espi-host-dev"; 945 reg = <0x400f1000 0x400>; 946 interrupts = <49 3>, <50 3>; 947 interrupt-names = "acpi_ibf", "acpi_obe"; 948 girqs = < MCHP_XEC_ECIA(15, 9, 7, 49) 949 MCHP_XEC_ECIA(15, 10, 7, 50) >; 950 ldn = <4>; 951 status = "disabled"; 952 }; 953 acpi_ec3: acpi_ec@400f1400 { 954 compatible = "microchip,xec-espi-host-dev"; 955 reg = <0x400f1400 0x400>; 956 interrupts = <51 3>, <52 3>; 957 interrupt-names = "acpi_ibf", "acpi_obe"; 958 girqs = < MCHP_XEC_ECIA(15, 11, 7, 51) 959 MCHP_XEC_ECIA(15, 12, 7, 52) >; 960 ldn = <5>; 961 status = "disabled"; 962 }; 963 acpi_ec4: acpi_ec@400f1800 { 964 compatible = "microchip,xec-espi-host-dev"; 965 reg = <0x400f1800 0x400>; 966 interrupts = <53 3>, <54 3>; 967 interrupt-names = "acpi_ibf", "acpi_obe"; 968 girqs = < MCHP_XEC_ECIA(15, 13, 7, 53) 969 MCHP_XEC_ECIA(15, 14, 7, 54) >; 970 ldn = <6>; 971 status = "disabled"; 972 }; 973 acpi_pm1: acpi_pm1@400f1c00 { 974 compatible = "microchip,xec-espi-host-dev"; 975 reg = <0x400f1c00 0x400>; 976 interrupts = <55 3>, <56 3>, <57 3>; 977 interrupt-names = "pm1_ctl", "pm1_en", "pm1_sts"; 978 girqs = < MCHP_XEC_ECIA(15, 15, 7, 55) 979 MCHP_XEC_ECIA(15, 16, 7, 56) 980 MCHP_XEC_ECIA(15, 17, 7, 57) >; 981 ldn = <7>; 982 status = "disabled"; 983 }; 984 port92: port92@400f2000 { 985 compatible = "microchip,xec-espi-host-dev"; 986 reg = <0x400f2000 0x400>; 987 ldn = <8>; 988 status = "disabled"; 989 }; 990 emi0: emi@400f4000 { 991 compatible = "microchip,xec-espi-host-dev"; 992 reg = <0x400f4000 0x400>; 993 interrupts = <42 3>; 994 girqs = < MCHP_XEC_ECIA(15, 2, 7, 42) >; 995 ldn = <16>; 996 status = "disabled"; 997 }; 998 emi1: emi@400f4400 { 999 compatible = "microchip,xec-espi-host-dev"; 1000 reg = <0x400f4400 0x400>; 1001 interrupts = <43 3>; 1002 girqs = < MCHP_XEC_ECIA(15, 3, 7, 43) >; 1003 ldn = <17>; 1004 status = "disabled"; 1005 }; 1006 emi2: emi@400f4800 { 1007 compatible = "microchip,xec-espi-host-dev"; 1008 reg = <0x400f4800 0x400>; 1009 interrupts = <44 3>; 1010 girqs = < MCHP_XEC_ECIA(15, 4, 7, 44) >; 1011 ldn = <18>; 1012 status = "disabled"; 1013 }; 1014 rtc0: rtc@400f5000 { 1015 compatible = "microchip,xec-espi-host-dev"; 1016 reg = <0x400f5000 0x100>; 1017 interrupts = <119 3>, <120 3>; 1018 girqs = < MCHP_XEC_ECIA(21, 8, 13, 119) 1019 MCHP_XEC_ECIA(21, 9, 13, 120) >; 1020 pcrs = <2 18>; 1021 ldn = <20>; 1022 status = "disabled"; 1023 }; 1024 /* Capture writes to host I/O 0x80 - 0x83 */ 1025 p80bd0: p80bd@400f8000 { 1026 compatible = "microchip,xec-espi-host-dev"; 1027 reg = <0x400f8000 0x400>; 1028 interrupts = <62 0>; 1029 girqs = < MCHP_XEC_ECIA(15, 22, 7, 62) >; 1030 pcrs = <2 25>; 1031 ldn = <32>; 1032 status = "disabled"; 1033 }; 1034 /* Capture writes to an 8-bit I/O and map to one of 0x80 to 0x83 */ 1035 p80bd0_alias: p80bd@400f8400 { 1036 compatible = "microchip,xec-espi-host-dev"; 1037 reg = <0x400f8400 0x400>; 1038 ldn = <33>; 1039 host-io = <0x90>; 1040 /* map 0x90 to 0x80 */ 1041 host-io-addr-mask = <0x01>; 1042 status = "disabled"; 1043 }; 1044 }; 1045 1046 symcr: symcr@40100000 { 1047 compatible = "microchip,xec-symcr"; 1048 reg = <0x40100000 0x1000>; 1049 interrupts = <68 1>; 1050 clocks = <&pcr 3 26 MCHP_XEC_PCR_CLK_PERIPH>; 1051 girqs = <16 3>; 1052 status = "disabled"; 1053 #address-cells = <1>; 1054 #size-cells = <1>; 1055 }; 1056 1057 rom_api: rom_api@1f000 { 1058 reg = <0x1f000 0x1000>; 1059 status = "disabled"; 1060 }; 1061 }; 1062}; 1063 1064&nvic { 1065 arm,num-irq-priority-bits = <3>; 1066}; 1067 1068&systick { 1069 status = "disabled"; 1070}; 1071