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