/* * Copyright (c) 2024 Microchip Technology Inc. * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #include / { cpus { #address-cells = <1>; #size-cells = <0>; cpu0: cpu@0 { device_type = "cpu"; compatible = "arm,cortex-m4"; reg = <0>; }; }; soc { ecs: ecs@4000fc00 { reg = <0x4000fc00 0x200>; status = "disabled"; }; pcr: pcr@40080100 { reg = <0x40080100 0x100 0x4000a400 0x100>; reg-names = "pcrr", "vbatr"; interrupts = <174 0>; status = "disabled"; }; ecia: ecia@4000e000 { reg = <0x4000e000 0x400>; #address-cells = <1>; #size-cells = <1>; status = "disabled"; ranges = <0x0 0x4000e000 0x400>; girq8: girq8@0 { reg = <0x0 0x14>; interrupts = <0 1>; status = "disabled"; }; girq9: girq9@14 { reg = <0x14 0x14>; interrupts = <1 1>; status = "disabled"; }; girq10: girq10@28 { reg = <0x28 0x14>; interrupts = <2 1>; status = "disabled"; }; girq11: girq11@3c { reg = <0x3c 0x14>; interrupts = <3 1>; status = "disabled"; }; girq12: girq12@50 { reg = <0x50 0x14>; interrupts = <4 1>; status = "disabled"; }; girq13: girq13@64 { reg = <0x64 0x14>; interrupts = <5 1>; status = "disabled"; }; girq14: girq14@78 { reg = <0x78 0x14>; interrupts = <6 1>; status = "disabled"; }; girq15: girq15@8c { reg = <0x8c 0x14>; interrupts = <7 1>; status = "disabled"; }; girq16: girq16@a0 { reg = <0xa0 0x14>; interrupts = <8 1>; status = "disabled"; }; girq17: girq17@b4 { reg = <0xb4 0x14>; interrupts = <9 1>; status = "disabled"; }; girq18: girq18@c8 { reg = <0xc8 0x14>; interrupts = <10 1>; status = "disabled"; }; girq19: girq19@dc { reg = <0xdc 0x14>; interrupts = <11 1>; status = "disabled"; }; girq20: girq20@f0 { reg = <0xf0 0x14>; interrupts = <12 1>; status = "disabled"; }; girq21: girq21@104 { reg = <0x104 0x14>; interrupts = <13 1>; status = "disabled"; }; girq22: girq22@118 { reg = <0x118 0x14>; interrupts = <255 0>; status = "disabled"; }; girq23: girq23@12c { reg = <0x12c 0x14>; interrupts = <14 1>; status = "disabled"; }; girq24: girq24@140 { reg = <0x140 0x14>; interrupts = <15 1>; status = "disabled"; }; girq25: girq25@154 { reg = <0x154 0x14>; interrupts = <16 1>; status = "disabled"; }; girq26: girq26@168 { reg = <0x168 0x14>; interrupts = <17 1>; status = "disabled"; }; }; pinctrl: pin-controller@40081000 { compatible = "microchip,mec5-pinctrl"; #address-cells = <1>; #size-cells = <1>; reg = <0x40081000 0x1000>; gpio_000_036: gpio@40081000 { compatible = "microchip,mec5-gpio"; reg = < 0x40081000 0x80 0x40081300 0x04 0x40081380 0x04 0x400813fc 0x04>; interrupts = <3 2>; gpio-controller; #gpio-cells=<2>; }; gpio_040_076: gpio@40081080 { compatible = "microchip,mec5-gpio"; reg = < 0x40081080 0x80 0x40081304 0x04 0x40081384 0x04 0x400813f8 0x4>; interrupts = <2 2>; gpio-controller; #gpio-cells=<2>; }; gpio_100_136: gpio@40081100 { compatible = "microchip,mec5-gpio"; reg = < 0x40081100 0x80 0x40081308 0x04 0x40081388 0x04 0x400813f4 0x04>; gpio-controller; interrupts = <1 2>; #gpio-cells=<2>; }; gpio_140_176: gpio@40081180 { compatible = "microchip,mec5-gpio"; reg = < 0x40081180 0x80 0x4008130c 0x04 0x4008138c 0x04 0x400813f0 0x04>; gpio-controller; interrupts = <0 2>; #gpio-cells=<2>; }; gpio_200_236: gpio@40081200 { compatible = "microchip,mec5-gpio"; reg = < 0x40081200 0x80 0x40081310 0x04 0x40081390 0x04 0x400813ec 0x04>; gpio-controller; interrupts = <4 2>; #gpio-cells=<2>; }; gpio_240_276: gpio@40081280 { compatible = "microchip,mec5-gpio"; reg = < 0x40081280 0x80 0x40081314 0x04 0x40081394 0x04 0x400813e8 0x04>; gpio-controller; interrupts = <17 2>; #gpio-cells=<2>; }; }; uart0: uart@400f2400 { reg = <0x400f2400 0x400>; interrupts = <40 1>; status = "disabled"; }; uart1: uart@400f2800 { reg = <0x400f2800 0x400>; interrupts = <41 1>; status = "disabled"; }; wdog: watchdog@40000400 { reg = <0x40000400 0x400>; interrupts = <171 0>; status = "disabled"; }; rtimer: timer@40007400 { reg = <0x40007400 0x10>; interrupts = <111 0>; clock-frequency = <32768>; max-value = <0xffffffff>; status = "disabled"; }; timer0: timer@40000c00 { reg = <0x40000c00 0x20>; interrupts = <136 0>; clock-frequency = <48000000>; prescaler = <0>; max-value = <0xffff>; status = "disabled"; }; timer1: timer@40000c20 { reg = <0x40000c20 0x20>; interrupts = <137 0>; clock-frequency = <48000000>; prescaler = <0>; max-value = <0xffff>; status = "disabled"; }; timer2: timer@40000c40 { reg = <0x40000c40 0x20>; interrupts = <138 0>; clock-frequency = <48000000>; prescaler = <0>; max-value = <0xffff>; status = "disabled"; }; timer3: timer@40000c60 { reg = <0x40000c60 0x20>; interrupts = <139 0>; clock-frequency = <48000000>; prescaler = <0>; max-value = <0xffff>; status = "disabled"; }; timer4: timer@40000c80 { reg = <0x40000c80 0x20>; interrupts = <140 0>; clock-frequency = <48000000>; prescaler = <0>; max-value = <0xffffffff>; status = "disabled"; }; timer5: timer@40000ca0 { reg = <0x40000ca0 0x20>; interrupts = <141 0>; clock-frequency = <48000000>; prescaler = <0>; max-value = <0xffffffff>; status = "disabled"; }; cntr0: timer@40000d00 { reg = <0x40000d00 0x20>; interrupts = <142 0>; status = "disabled"; }; cntr1: timer@40000d20 { reg = <0x40000d20 0x20>; interrupts = <143 0>; status = "disabled"; }; cntr2: timer@40000d40 { reg = <0x40000d40 0x20>; interrupts = <144 0>; status = "disabled"; }; cntr3: timer@40000d60 { reg = <0x40000d60 0x20>; interrupts = <145 0>; status = "disabled"; }; cctmr0: timer@40001000 { reg = <0x40001000 0x40>; interrupts = <146 0>, <147 0>, <148 0>, <149 0>, <150 0>, <151 0>, <152 0>, <153 0>, <154 0>; status = "disabled"; }; hibtimer0: timer@40009800 { reg = <0x40009800 0x20>; interrupts = <112 0>; status = "disabled"; }; hibtimer1: timer@40009820 { reg = <0x40009820 0x20>; interrupts = <113 0>; status = "disabled"; }; weektmr0: timer@4000ac80 { reg = <0x4000ac80 0x80>; interrupts = <114 0>, <115 0>, <116 0>, <117 0>, <118 0>; status = "disabled"; }; rtc0: rtc@400f5000 { reg = <0x400f5000 0x100>; interrupts = <119 3>, <120 3>; status = "disabled"; }; bbram: bb-ram@4000a800 { reg = <0x4000a800 0x100>; reg-names = "memory"; status = "disabled"; }; vci0: vci@4000ae00 { reg = <0x4000ae00 0x40>; interrupts = <121 0>, <122 0>, <123 0>, <124 0>, <125 0>; status = "disabled"; }; i2c_smb_0: i2c@40004000 { reg = <0x40004000 0x80>; clock-frequency = ; interrupts = <20 1>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c_smb_1: i2c@40004400 { reg = <0x40004400 0x80>; clock-frequency = ; interrupts = <21 1>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c_smb_2: i2c@40004800 { reg = <0x40004800 0x80>; clock-frequency = ; interrupts = <22 1>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c_smb_3: i2c@40004c00 { reg = <0x40004C00 0x80>; clock-frequency = ; interrupts = <23 1>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c_smb_4: i2c@40005000 { reg = <0x40005000 0x80>; clock-frequency = ; interrupts = <158 1>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; ps2_0: ps2@40009000 { reg = <0x40009000 0x40>; interrupts = <100 1>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; pwm0: pwm@40005800 { reg = <0x40005800 0x10>; status = "disabled"; #pwm-cells = <3>; }; pwm1: pwm@40005810 { reg = <0x40005810 0x10>; status = "disabled"; #pwm-cells = <3>; }; pwm2: pwm@40005820 { reg = <0x40005820 0x10>; status = "disabled"; #pwm-cells = <3>; }; pwm3: pwm@40005830 { reg = <0x40005830 0x10>; status = "disabled"; #pwm-cells = <3>; }; pwm4: pwm@40005840 { reg = <0x40005840 0x10>; status = "disabled"; #pwm-cells = <3>; }; pwm5: pwm@40005850 { reg = <0x40005850 0x10>; status = "disabled"; #pwm-cells = <3>; }; pwm6: pwm@40005860 { reg = <0x40005860 0x10>; status = "disabled"; #pwm-cells = <3>; }; pwm7: pwm@40005870 { reg = <0x40005870 0x10>; status = "disabled"; #pwm-cells = <3>; }; pwm8: pwm@40005880 { reg = <0x40005880 0x10>; status = "disabled"; #pwm-cells = <3>; }; tach0: tach@40006000 { reg = <0x40006000 0x10>; interrupts = <71 4>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; tach1: tach@40006010 { reg = <0x40006010 0x10>; interrupts = <72 4>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; tach2: tach@40006020 { reg = <0x40006020 0x10>; interrupts = <73 4>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; tach3: tach@40006030 { reg = <0x40006030 0x10>; interrupts = <159 4>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; rpmfan0: rpmfan@4000a000 { reg = <0x4000a000 0x80>; interrupts = <74 1>, <75 1>; status = "disabled"; }; rpmfan1: rpmfan@4000a080 { reg = <0x4000a080 0x80>; interrupts = <76 1>, <77 1>; status = "disabled"; }; adc0: adc@40007c00 { reg = <0x40007c00 0x90>; interrupts = <78 0>, <79 0>; interrupt-names = "single", "repeat"; status = "disabled"; #io-channel-cells = <1>; clktime = <32>; }; peci0: peci@40006400 { reg = <0x40006400 0x80>; interrupts = <70 4>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; qspi0: spi@40070000 { reg = <0x40070000 0x400>; interrupts = <91 2>; clock-frequency = <12000000>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; prochot0: prochot@40003400 { reg = <0x40003400 0x20>; interrupts = <87 0>; status = "disabled"; }; rcid0: rcid@40001400 { reg = <0x40001400 0x80>; interrupts = <80 0>; status = "disabled"; }; rcid1: rcid@40001480 { reg = <0x40001480 0x80>; interrupts = <81 0>; status = "disabled"; }; rcid2: rcid@40001500 { reg = <0x40001500 0x80>; interrupts = <82 0>; status = "disabled"; }; bbled0: bbled@4000b800 { reg = <0x4000b800 0x100>; interrupts = <83 0>; status = "disabled"; }; bbled1: bbled@4000b900 { reg = <0x4000b900 0x100>; interrupts = <84 0>; status = "disabled"; }; bbled2: bbled@4000ba00 { reg = <0x4000ba00 0x100>; interrupts = <85 0>; status = "disabled"; }; bbled3: bbled@4000bb00 { reg = <0x4000bb00 0x100>; interrupts = <86 0>; status = "disabled"; }; bclink0: bclink@4000cd00 { reg = <0x4000cd00 0x20>; interrupts = <96 0>, <97 0>; status = "disabled"; }; tfdp0: tfdp@40008c00 { reg = <0x40008c00 0x10>; status = "disabled"; }; glblcfg0: glblcfg@400fff00 { reg = <0x400fff00 0x40>; status = "disabled"; }; espi0: espi@400f3400 { #address-cells = <1>; #size-cells = <1>; reg = < 0x400f3400 0x400 0x400f3800 0x400 0x400f9c00 0x400>; reg-names = "io", "mem", "vw"; interrupts = <103 3>, <104 3>, <105 3>, <106 3>, <107 3>, <108 3>, <109 3>, <110 2>, <156 3>, <15 3>, <16 3>; interrupt-names = "pc", "bm1", "bm2", "ltr", "oob_up", "oob_dn", "fc", "erst", "vw_chan_en", "vwct_0_6", "vwct_7_10"; status = "disabled"; /* Devices accessible to the Host via Logical Device mechanism. * Some devices are capable of having their registers mapped to * Host I/O or memory address space. Some devices are capable * of generating Serial IRQ to the Host over eSPI. */ mbox0: mbox@400f0000 { reg = <0x400f0000 0x200>; interrupts = <60 3>; status = "disabled"; }; kbc0: kbc@400f0400 { reg = <0x400f0400 0x400>, <0x400f2000 0x400>; interrupts = <59 3>, <58 3>; interrupt-names = "ibf", "obe"; status = "disabled"; }; acpi_ec0: acpi_ec@400f0800 { reg = <0x400f0800 0x400>; interrupts = <45 3>, <46 3>; interrupt-names = "ibf", "obe"; status = "disabled"; }; acpi_ec1: acpi_ec@400f0c00 { reg = <0x400f0c00 0x400>; interrupts = <47 3>, <48 3>; interrupt-names = "ibf", "obe"; status = "disabled"; }; acpi_ec2: acpi_ec@400f1000 { reg = <0x400f1000 0x400>; interrupts = <49 3>, <50 3>; interrupt-names = "ibf", "obe"; status = "disabled"; }; acpi_ec3: acpi_ec@400f1400 { reg = <0x400f1400 0x400>; interrupts = <51 3>, <52 3>; interrupt-names = "ibf", "obe"; status = "disabled"; }; acpi_ec4: acpi_ec@400f1800 { reg = <0x400f1800 0x400>; interrupts = <53 3>, <54 3>; interrupt-names = "ibf", "obe"; status = "disabled"; }; acpi_pm1: acpi_pm1@400f1c00 { reg = <0x400f1c00 0x400>; interrupts = <55 3>, <56 3>, <57 3>; interrupt-names = "ctl", "en", "sts"; status = "disabled"; }; glue: glue_logic@400f3c00 { reg = <0x400f3c00 0x200>; interrupts = <172 1>; status = "disabled"; }; emi0: emi@400f4000 { reg = <0x400f4000 0x400>; interrupts = <42 3>; status = "disabled"; }; emi1: emi@400f4400 { reg = <0x400f4400 0x400>; interrupts = <43 3>; status = "disabled"; }; emi2: emi@400f4800 { reg = <0x400f4800 0x400>; interrupts = <44 3>; status = "disabled"; }; /* Capture Host writes to a 4-byte I/O range * plus a one byte alias I/O location which maps * to one of the 4-byte locations. */ p80bd0: p80bd@400f8000 { reg = <0x400f8000 0x400>; interrupts = <62 0>; status = "disabled"; }; }; /* eSPI target attached flash controller. * When this device is fully activated via its driver, it takes * ownership of the QSPI controller. EC access to QSPI * registers is discarded by hardware. */ espi_taf0: espi_taf@40008000 { reg = <0x40008000 0x400>, <0x40070000 0x400>, <0x40071000 0x400>; reg-names = "tafbr", "tafqspi", "tafcomm"; interrupts = <166 3>, <167 3>; interrupt-names = "done", "err"; status = "disabled"; }; }; }; &nvic { arm,num-irq-priority-bits = <3>; }; &systick { status = "disabled"; };