blob: fc795b0a37eeeb724d2529574b13fe38f3c9b6fe [file] [log] [blame]
/*
* Copyright (c) 2021 Microchip Technology Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <arm/armv7-m.dtsi>
#include <zephyr/dt-bindings/i2c/i2c.h>
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/clock/mchp_xec_pcr.h>
#include <zephyr/dt-bindings/interrupt-controller/mchp-xec-ecia.h>
#include <freq.h>
#include <mem.h>
#include "mec172x/mec172x-vw-routing.dtsi"
/ {
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-m4";
reg = <0>;
};
};
flash0: flash@c0000 {
reg = <0x000C0000 0x58000>;
};
sram0: memory@118000 {
compatible = "mmio-sram";
reg = <0x00118000 0x10000>;
};
soc {
ecs: ecs@4000fc00 {
reg = <0x4000fc00 0x200>;
};
pcr: pcr@40080100 {
compatible = "microchip,xec-pcr";
reg = <0x40080100 0x100 0x4000a400 0x100>;
reg-names = "pcrr", "vbatr";
interrupts = <174 0>;
core-clock-div = <1>;
/* MEC172x allows sources to be different */
pll-32k-src = <MCHP_XEC_PLL_CLK32K_SRC_SIL_OSC>;
periph-32k-src = <MCHP_XEC_PERIPH_CLK32K_SRC_SO_SO>;
clk32kmon-period-min = <1435>;
clk32kmon-period-max = <1495>;
clk32kmon-duty-cycle-var-max = <132>;
clk32kmon-valid-min = <4>;
xtal-enable-delay-ms = <300>;
pll-lock-timeout-ms = <30>;
/* pin configured only if one of the sources is set to PIN */
pinctrl-0 = <&clk_32khz_in_gpio165>;
pinctrl-names = "default";
#clock-cells = <2>;
};
ecia: ecia@4000e000 {
compatible = "microchip,xec-ecia";
reg = <0x4000e000 0x400>;
direct-capable-girqs = <13 14 15 16 17 18 19 20 21 23>;
clocks = <&pcr 1 0>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x4000e000 0x400>;
girq8: girq8@0 {
compatible = "microchip,xec-ecia-girq";
reg = <0x0 0x14>;
interrupts = <0 0>;
girq-id = <0>;
sources = <0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 21 22 24 25
26 27 28 29>;
status = "disabled";
};
girq9: girq9@14 {
compatible = "microchip,xec-ecia-girq";
reg = <0x14 0x14>;
interrupts = <1 0>;
girq-id = <1>;
sources = <0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29>;
status = "disabled";
};
girq10: girq10@28 {
compatible = "microchip,xec-ecia-girq";
reg = <0x28 0x14>;
interrupts = <2 0>;
girq-id = <2>;
sources = <0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30>;
status = "disabled";
};
girq11: girq11@3c {
compatible = "microchip,xec-ecia-girq";
reg = <0x3c 0x14>;
interrupts = <3 0>;
girq-id = <3>;
sources = <0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30>;
status = "disabled";
};
girq12: girq12@50 {
compatible = "microchip,xec-ecia-girq";
reg = <0x50 0x14>;
interrupts = <4 0>;
girq-id = <4>;
sources = <0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30>;
status = "disabled";
};
girq13: girq13@64 {
compatible = "microchip,xec-ecia-girq";
reg = <0x64 0x14>;
interrupts = <5 0>;
girq-id = <5>;
sources = <0 1 2 3 4>;
status = "disabled";
};
girq14: girq14@78 {
compatible = "microchip,xec-ecia-girq";
reg = <0x78 0x14>;
interrupts = <6 0>;
girq-id = <6>;
sources = <0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15>;
status = "disabled";
};
girq15: girq15@8c {
compatible = "microchip,xec-ecia-girq";
reg = <0x8c 0x14>;
interrupts = <7 0>;
girq-id = <7>;
sources = <0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 22>;
status = "disabled";
};
girq16: girq16@a0 {
compatible = "microchip,xec-ecia-girq";
reg = <0xa0 0x14>;
interrupts = <8 0>;
girq-id = <8>;
sources = <0 2 3>;
status = "disabled";
};
girq17: girq17@b4 {
compatible = "microchip,xec-ecia-girq";
reg = <0xb4 0x14>;
interrupts = <9 0>;
girq-id = <9>;
sources = <0 1 2 3 4 8 9 10 11 12 13 14 15
16 17 20 21 22 23>;
status = "disabled";
};
girq18: girq18@c8 {
compatible = "microchip,xec-ecia-girq";
reg = <0xc8 0x14>;
interrupts = <10 0>;
girq-id = <10>;
sources = <0 1 2 3 4 5 6 7
10 20 21 22 23
24 25 26 27 28>;
status = "disabled";
};
girq19: girq19@dc {
compatible = "microchip,xec-ecia-girq";
reg = <0xdc 0x14>;
interrupts = <11 0>;
girq-id = <11>;
sources = <0 1 2 3 4 5 6 7 8 9 10>;
status = "disabled";
};
girq20: girq20@f0 {
compatible = "microchip,xec-ecia-girq";
reg = <0xf0 0x14>;
interrupts = <12 0>;
girq-id = <12>;
sources = <3 9>;
status = "disabled";
};
girq21: girq21@104 {
compatible = "microchip,xec-ecia-girq";
reg = <0x104 0x14>;
interrupts = <13 0>;
girq-id = <13>;
sources = <2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 19 25 26>;
status = "disabled";
};
girq22: girq22@118 {
compatible = "microchip,xec-ecia-girq";
reg = <0x118 0x14>;
interrupts = <255 0>;
girq-id = <14>;
sources = <0 1 2 3 4 5 9 15>;
status = "disabled";
};
girq23: girq23@12c {
compatible = "microchip,xec-ecia-girq";
reg = <0x12c 0x14>;
interrupts = <14 0>;
girq-id = <15>;
sources = <0 1 2 3 4 5 6 7 8 9 10 16 17>;
status = "disabled";
};
girq24: girq24@140 {
compatible = "microchip,xec-ecia-girq";
reg = <0x140 0x14>;
interrupts = <15 0>;
girq-id = <16>;
sources = <0 1 2 3 4 5 6 7 8 9 10 11
12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27>;
status = "disabled";
};
girq25: girq25@154 {
compatible = "microchip,xec-ecia-girq";
reg = <0x154 0x14>;
interrupts = <16 0>;
girq-id = <17>;
sources = <0 1 2 3 4 5 6 7 8 9 10 11
12 13 14 15>;
status = "disabled";
};
girq26: girq26@168 {
compatible = "microchip,xec-ecia-girq";
reg = <0x168 0x14>;
interrupts = <17 0>;
girq-id = <18>;
sources = <0 1 2 3 4 5 6 12 13>;
status = "disabled";
};
};
pinctrl: pin-controller@40081000 {
compatible = "microchip,xec-pinctrl";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x40081000 0x1000>;
gpio_000_036: gpio@40081000 {
compatible = "microchip,xec-gpio-v2";
reg = < 0x40081000 0x80 0x40081300 0x04
0x40081380 0x04 0x400813fc 0x04>;
interrupts = <3 2>;
gpio-controller;
port-id = <0>;
girq-id = <11>;
#gpio-cells=<2>;
};
gpio_040_076: gpio@40081080 {
compatible = "microchip,xec-gpio-v2";
reg = < 0x40081080 0x80 0x40081304 0x04
0x40081384 0x04 0x400813f8 0x4>;
interrupts = <2 2>;
gpio-controller;
port-id = <1>;
girq-id = <10>;
#gpio-cells=<2>;
};
gpio_100_136: gpio@40081100 {
compatible = "microchip,xec-gpio-v2";
reg = < 0x40081100 0x80 0x40081308 0x04
0x40081388 0x04 0x400813f4 0x04>;
gpio-controller;
interrupts = <1 2>;
port-id = <2>;
girq-id = <9>;
#gpio-cells=<2>;
};
gpio_140_176: gpio@40081180 {
compatible = "microchip,xec-gpio-v2";
reg = < 0x40081180 0x80 0x4008130c 0x04
0x4008138c 0x04 0x400813f0 0x04>;
gpio-controller;
interrupts = <0 2>;
port-id = <3>;
girq-id = <8>;
#gpio-cells=<2>;
};
gpio_200_236: gpio@40081200 {
compatible = "microchip,xec-gpio-v2";
reg = < 0x40081200 0x80 0x40081310 0x04
0x40081390 0x04 0x400813ec 0x04>;
gpio-controller;
interrupts = <4 2>;
port-id = <4>;
girq-id = <12>;
#gpio-cells=<2>;
};
gpio_240_276: gpio@40081280 {
compatible = "microchip,xec-gpio-v2";
reg = < 0x40081280 0x80 0x40081314 0x04
0x40081394 0x04 0x400813e8 0x04>;
gpio-controller;
interrupts = <17 2>;
port-id = <5>;
girq-id = <26>;
#gpio-cells=<2>;
};
};
wdog: watchdog@40000400 {
compatible = "microchip,xec-watchdog";
reg = <0x40000400 0x400>;
interrupts = <171 0>;
girqs = <21 2>;
pcrs = <1 9>;
};
rtimer: timer@40007400 {
compatible = "microchip,xec-rtos-timer";
reg = <0x40007400 0x10>;
interrupts = <111 0>;
girqs = <23 10>;
};
timer0: timer@40000c00 {
compatible = "microchip,xec-timer";
clock-frequency = <48000000>;
reg = <0x40000c00 0x20>;
interrupts = <136 0>;
girqs = <23 0>;
pcrs = <1 30>;
max-value = <0xFFFF>;
prescaler = <0>;
status = "disabled";
};
timer1: timer@40000c20 {
compatible = "microchip,xec-timer";
clock-frequency = <48000000>;
reg = <0x40000c20 0x20>;
interrupts = <137 0>;
girqs = <23 1>;
pcrs = <1 31>;
max-value = <0xFFFF>;
prescaler = <0>;
status = "disabled";
};
timer2: timer@40000c40 {
compatible = "microchip,xec-timer";
clock-frequency = <48000000>;
reg = <0x40000c40 0x20>;
interrupts = <138 0>;
girqs = <23 2>;
pcrs = <3 21>;
max-value = <0xFFFF>;
prescaler = <0>;
status = "disabled";
};
timer3: timer@40000c60 {
compatible = "microchip,xec-timer";
clock-frequency = <48000000>;
reg = <0x40000c60 0x20>;
interrupts = <139 0>;
girqs = <23 3>;
pcrs = <3 22>;
max-value = <0xFFFF>;
prescaler = <0>;
status = "disabled";
};
/*
* NOTE: When RTOS timer used as kernel timer, timer4 used
* to provide high speed busy wait counter. Keep disabled to
* prevent counter driver from claiming it.
*/
timer4: timer@40000c80 {
compatible = "microchip,xec-timer";
clock-frequency = <48000000>;
reg = <0x40000c80 0x20>;
interrupts = <140 0>;
girqs = <23 4>;
pcrs = <3 23>;
max-value = <0xFFFFFFFF>;
prescaler = <0>;
status = "disabled";
};
timer5: timer@40000ca0 {
compatible = "microchip,xec-timer";
clock-frequency = <48000000>;
reg = <0x40000ca0 0x20>;
interrupts = <141 0>;
girqs = <23 5>;
pcrs = <3 24>;
max-value = <0xFFFFFFFF>;
prescaler = <0>;
status = "disabled";
};
cntr0: timer@40000d00 {
reg = <0x40000d00 0x20>;
interrupts = <142 0>;
girqs = <23 6>;
pcrs = <4 2>;
status = "disabled";
};
cntr1: timer@40000d20 {
reg = <0x40000d20 0x20>;
interrupts = <143 0>;
girqs = <23 7>;
pcrs = <4 3>;
status = "disabled";
};
cntr2: timer@40000d40 {
reg = <0x40000d40 0x20>;
interrupts = <144 0>;
girqs = <23 8>;
pcrs = <4 3>;
status = "disabled";
};
cntr3: timer@40000d60 {
reg = <0x40000d60 0x20>;
interrupts = <145 0>;
girqs = <23 9>;
pcrs = <4 4>;
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>;
girqs = <18 20>, <18 21>, <18 22>, <18 23>, <18 24>,
<18 25>, <18 26>, <18 27>, <18 28>;
pcrs = <3 30>;
status = "disabled";
};
hibtimer0: timer@40009800 {
reg = <0x40009800 0x20>;
interrupts = <112 0>;
girqs = <23 16>;
};
hibtimer1: timer@40009820 {
reg = <0x40009820 0x20>;
interrupts = <113 0>;
girqs = <23 17>;
};
weektmr0: timer@4000ac80 {
reg = <0x4000ac80 0x80>;
interrupts = <114 0>, <115 0>, <116 0>,
<117 0>, <118 0>;
girqs = <21 3>, <21 4>, <21 5>, <21 6>, <21 7>;
status = "disabled";
};
bbram: bb-ram@4000a800 {
compatible = "microchip,xec-bbram";
reg = <0x4000a800 0x100>;
reg-names = "memory";
};
vci0: vci@4000ae00 {
reg = <0x4000ae00 0x40>;
interrupts = <121 0>, <122 0>, <123 0>,
<124 0>, <125 0>;
girqs = <21 10>, <21 11>, <21 12>, <21 13>, <21 14>;
status = "disabled";
};
dmac: dmac@40002400 {
reg = <0x40002400 0xc00>;
interrupts = <24 0>, <25 0>, <26 0>, <27 0>,
<28 0>, <29 0>, <30 0>, <31 0>,
<32 0>, <33 0>, <34 0>, <35 0>,
<36 0>, <37 0>, <38 0>, <39 0>;
girqs = <14 0>, <14 1>, <14 2>, <14 3>,
<14 4>, <14 5>, <14 6>, <14 7>,
<14 8>, <14 9>, <14 10>, <14 11>,
<14 12>, <14 13>, <14 14>, <14 15>;
pcrs = <1 6>;
#dma-cells = <2>;
status = "disabled";
};
eeprom: eeprom@40002c00 {
compatible = "microchip,xec-eeprom";
reg = <0x40002c00 0x400>;
interrupts = <155 2>;
size = <2048>;
girqs = <18 13>;
pcrs = <4 14>;
status = "disabled";
};
i2c_smb_0: i2c@40004000 {
compatible = "microchip,xec-i2c-v2";
reg = <0x40004000 0x80>;
clock-frequency = <I2C_BITRATE_STANDARD>;
interrupts = <20 1>;
girqs = <13 0>;
pcrs = <1 10>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
i2c_smb_1: i2c@40004400 {
compatible = "microchip,xec-i2c-v2";
reg = <0x40004400 0x80>;
clock-frequency = <I2C_BITRATE_STANDARD>;
interrupts = <21 1>;
girqs = <13 1>;
pcrs = <3 13>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
i2c_smb_2: i2c@40004800 {
compatible = "microchip,xec-i2c-v2";
reg = <0x40004800 0x80>;
clock-frequency = <I2C_BITRATE_STANDARD>;
interrupts = <22 1>;
girqs = <13 2>;
pcrs = <3 14>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
i2c_smb_3: i2c@40004c00 {
compatible = "microchip,xec-i2c-v2";
reg = <0x40004C00 0x80>;
clock-frequency = <I2C_BITRATE_STANDARD>;
interrupts = <23 1>;
girqs = <13 3>;
pcrs = <3 15>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
i2c_smb_4: i2c@40005000 {
compatible = "microchip,xec-i2c-v2";
reg = <0x40005000 0x80>;
clock-frequency = <I2C_BITRATE_STANDARD>;
interrupts = <158 1>;
girqs = <13 4>;
pcrs = <3 20>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
ps2_0: ps2@40009000 {
compatible = "microchip,xec-ps2";
reg = <0x40009000 0x40>;
interrupts = <100 1>;
girqs = <18 10>;
pcrs = <3 5>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
pwm0: pwm@40005800 {
compatible = "microchip,xec-pwm";
reg = <0x40005800 0x20>;
pcrs = <1 4>;
status = "disabled";
#pwm-cells = <2>;
};
pwm1: pwm@40005810 {
compatible = "microchip,xec-pwm";
reg = <0x40005810 0x20>;
pcrs = <1 20>;
status = "disabled";
#pwm-cells = <2>;
};
pwm2: pwm@40005820 {
compatible = "microchip,xec-pwm";
reg = <0x40005820 0x20>;
pcrs = <1 21>;
status = "disabled";
#pwm-cells = <2>;
};
pwm3: pwm@40005830 {
compatible = "microchip,xec-pwm";
reg = <0x40005830 0x20>;
pcrs = <1 22>;
status = "disabled";
#pwm-cells = <2>;
};
pwm4: pwm@40005840 {
compatible = "microchip,xec-pwm";
reg = <0x40005840 0x20>;
pcrs = <1 23>;
status = "disabled";
#pwm-cells = <2>;
};
pwm5: pwm@40005850 {
compatible = "microchip,xec-pwm";
reg = <0x40005850 0x20>;
pcrs = <1 24>;
status = "disabled";
#pwm-cells = <2>;
};
pwm6: pwm@40005860 {
compatible = "microchip,xec-pwm";
reg = <0x40005860 0x20>;
pcrs = <1 25>;
status = "disabled";
#pwm-cells = <2>;
};
pwm7: pwm@40005870 {
compatible = "microchip,xec-pwm";
reg = <0x40005870 0x20>;
pcrs = <1 26>;
status = "disabled";
#pwm-cells = <2>;
};
pwm8: pwm@40005880 {
compatible = "microchip,xec-pwm";
reg = <0x40005880 0x20>;
pcrs = <1 27>;
status = "disabled";
#pwm-cells = <2>;
};
tach0: tach@40006000 {
compatible = "microchip,xec-tach";
reg = <0x40006000 0x10>;
interrupts = <71 4>;
girqs = <17 1>;
pcrs = <1 2>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
tach1: tach@40006010 {
compatible = "microchip,xec-tach";
reg = <0x40006010 0x10>;
interrupts = <72 4>;
girqs = <17 2>;
pcrs = <1 11>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
tach2: tach@40006020 {
compatible = "microchip,xec-tach";
reg = <0x40006020 0x10>;
interrupts = <73 4>;
girqs = <17 3>;
pcrs = <1 12>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
tach3: tach@40006030 {
compatible = "microchip,xec-tach";
reg = <0x40006030 0x10>;
interrupts = <159 4>;
girqs = <17 4>;
pcrs = <1 13>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
rpmfan0: rpmfan@4000a000 {
reg = <0x4000a000 0x80>;
interrupts = <74 1>, <75 1>;
girqs = <17 20>, <17 21>;
pcrs = <3 12>;
status = "disabled";
};
rpmfan1: rpmfan@4000a080 {
reg = <0x4000a080 0x80>;
interrupts = <76 1>, <77 1>;
girqs = <17 22>, <17 23>;
pcrs = <4 7>;
status = "disabled";
};
adc0: adc@40007c00 {
compatible = "microchip,xec-adc-v2";
reg = <0x40007c00 0x90>;
interrupts = <78 0>, <79 0>;
girqs = <17 8>, <17 9>;
pcrs = <3 3>;
status = "disabled";
#io-channel-cells = <1>;
};
kscan0: kscan@40009c00 {
compatible = "microchip,xec-kscan";
reg = <0x40009c00 0x18>;
interrupts = <135 0>;
girqs = <21 25>;
pcrs = <3 11>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
peci0: peci@40006400 {
compatible = "microchip,xec-peci";
reg = <0x40006400 0x80>;
interrupts = <70 4>;
girqs = <17 0>;
pcrs = <1 1>;
#address-cells = <1>;
#size-cells = <0>;
};
spi0: spi@40070000 {
reg = <0x40070000 0x400>;
interrupts = <91 2>;
girqs = < MCHP_XEC_ECIA(18, 1, 10, 91) >;
pcrs = <4 8>;
clocks = <&pcr 1 0>;
clock-frequency = <12000000>;
lines = <1>;
chip-select = <0>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
spi1: spi@40009400 {
reg = <0x40009400 0x80>;
interrupts = <92 2>, <93 2>;
girqs = <18 2>, <18 3>;
pcrs = <3 9>;
status = "disabled";
};
spi2: spi@40009480 {
reg = <0x40009480 0x80>;
interrupts = <94 2>, <95 2>;
girqs = <18 4>, <18 5>;
pcrs = <4 22>;
status = "disabled";
};
prochot0: prochot@40003400 {
reg = <0x40003400 0x20>;
interrupts = <87 0>;
girqs = <17 17>;
pcrs = <4 13>;
status = "disabled";
};
rcid0: rcid@40001400 {
reg = <0x40001400 0x80>;
interrupts = <80 0>;
girqs = <17 10>;
pcrs = <4 10>;
status = "disabled";
};
rcid1: rcid@40001480 {
reg = <0x40001480 0x80>;
interrupts = <81 0>;
girqs = <17 11>;
pcrs = <4 11>;
status = "disabled";
};
rcid2: rcid@40001500 {
reg = <0x40001500 0x80>;
interrupts = <82 0>;
girqs = <17 12>;
pcrs = <4 12>;
status = "disabled";
};
spip0: spip@40007000 {
reg = <0x40007000 0x100>;
interrupts = <90 0>;
girqs = <18 0>;
pcrs = <4 16>;
status = "disabled";
};
bbled0: bbled@4000b800 {
reg = <0x4000b800 0x100>;
interrupts = <83 0>;
girqs = <17 13>;
pcrs = <3 16>;
status = "disabled";
};
bbled1: bbled@4000b900 {
reg = <0x4000b900 0x100>;
interrupts = <84 0>;
girqs = <17 14>;
pcrs = <3 17>;
status = "disabled";
};
bbled2: bbled@4000ba00 {
reg = <0x4000ba00 0x100>;
interrupts = <85 0>;
girqs = <17 15>;
pcrs = <3 18>;
status = "disabled";
};
bbled3: bbled@4000bb00 {
reg = <0x4000bb00 0x100>;
interrupts = <86 0>;
girqs = <17 16>;
pcrs = <3 25>;
status = "disabled";
};
bclink0: bclink@4000cd00 {
reg = <0x4000cd00 0x20>;
interrupts = <96 0>, <97 0>;
girqs = <18 7>, <18 6>;
pcrs = <3 19>;
status = "disabled";
};
tfdp0: tfdp@40008c00 {
reg = <0x40008c00 0x10>;
pcrs = <1 7>;
status = "disabled";
};
glblcfg0: glblcfg@400fff00 {
reg = <0x400fff00 0x40>;
pcrs = <2 12>;
status = "disabled";
};
espi0: espi@400f3400 {
compatible = "microchip,xec-espi-v2";
/* reg tuple contains one 32-bit address cell and one
* 32-bit length(size) cell.
*/
#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>;
interrupt-names = "pc", "bm1", "bm2", "ltr", "oob_up",
"oob_dn", "fc", "rst", "vw_chan_en";
girqs = < MCHP_XEC_ECIA(19, 0, 11, 103)
MCHP_XEC_ECIA(19, 1, 11, 104)
MCHP_XEC_ECIA(19, 2, 11, 105)
MCHP_XEC_ECIA(19, 3, 11, 106)
MCHP_XEC_ECIA(19, 4, 11, 107)
MCHP_XEC_ECIA(19, 5, 11, 108)
MCHP_XEC_ECIA(19, 6, 11, 109)
MCHP_XEC_ECIA(19, 7, 11, 110)
MCHP_XEC_ECIA(19, 8, 11, 156) >;
pcrs = <2 19>;
status = "disabled";
espi_saf0: espi_saf@40008000 {
compatible = "microchip,xec-espi-saf-v2";
reg = <0x40008000 0x400>, <0x40070000 0x400>,
<0x40071000 0x400>;
reg-names = "safbr", "safqspi", "safcomm";
interrupts = <166 3>, <167 3>;
interrupt-names = "done", "err";
girqs = < MCHP_XEC_ECIA(19, 9, 11, 166) >,
< MCHP_XEC_ECIA(19, 10, 11, 167) >;
pcrs = <2 27>;
status = "disabled";
};
mbox0: mbox@400f0000 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f0000 0x200>;
interrupts = <60 3>;
girqs = < MCHP_XEC_ECIA(15, 20, 7, 60) >;
pcrs = <2 17>;
ldn = <0>;
status = "disabled";
};
kbc0: kbc@400f0400 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f0400 0x400>;
interrupts = <58 3>, <59 3>;
interrupt-names = "kbc_obe", "kbc_ibf";
girqs = < MCHP_XEC_ECIA(15, 18, 7, 58)
MCHP_XEC_ECIA(15, 19, 7, 59) >;
ldn = <1>;
status = "disabled";
};
acpi_ec0: acpi_ec@400f0800 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f0800 0x400>;
interrupts = <45 3>, <46 3>;
interrupt-names = "acpi_ibf", "acpi_obe";
girqs = < MCHP_XEC_ECIA(15, 5, 7, 45)
MCHP_XEC_ECIA(15, 6, 7, 46) >;
ldn = <2>;
status = "disabled";
};
acpi_ec1: acpi_ec@400f0c00 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f0c00 0x400>;
interrupts = <47 3>, <48 3>;
interrupt-names = "acpi_ibf", "acpi_obe";
girqs = < MCHP_XEC_ECIA(15, 7, 7, 47)
MCHP_XEC_ECIA(15, 8, 7, 48) >;
ldn = <3>;
status = "disabled";
};
acpi_ec2: acpi_ec@400f1000 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f1000 0x400>;
interrupts = <49 3>, <50 3>;
interrupt-names = "acpi_ibf", "acpi_obe";
girqs = < MCHP_XEC_ECIA(15, 9, 7, 49)
MCHP_XEC_ECIA(15, 10, 7, 50) >;
ldn = <4>;
status = "disabled";
};
acpi_ec3: acpi_ec@400f1400 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f1400 0x400>;
interrupts = <51 3>, <52 3>;
interrupt-names = "acpi_ibf", "acpi_obe";
girqs = < MCHP_XEC_ECIA(15, 11, 7, 51)
MCHP_XEC_ECIA(15, 12, 7, 52) >;
ldn = <5>;
status = "disabled";
};
acpi_ec4: acpi_ec@400f1800 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f1800 0x400>;
interrupts = <53 3>, <54 3>;
interrupt-names = "acpi_ibf", "acpi_obe";
girqs = < MCHP_XEC_ECIA(15, 13, 7, 53)
MCHP_XEC_ECIA(15, 14, 7, 54) >;
ldn = <6>;
status = "disabled";
};
acpi_pm1: acpi_pm1@400f1c00 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f1c00 0x400>;
interrupts = <55 3>, <56 3>, <57 3>;
interrupt-names = "pm1_ctl", "pm1_en", "pm1_sts";
girqs = < MCHP_XEC_ECIA(15, 15, 7, 55)
MCHP_XEC_ECIA(15, 16, 7, 56)
MCHP_XEC_ECIA(15, 17, 7, 57) >;
ldn = <7>;
status = "disabled";
};
port92: port92@400f2000 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f2000 0x400>;
ldn = <8>;
status = "disabled";
};
uart0: uart@400f2400 {
compatible = "microchip,xec-uart";
reg = <0x400f2400 0x400>;
interrupts = <40 1>;
clock-frequency = <1843200>;
current-speed = <38400>;
girqs = <15 0>;
pcrs = <2 1>;
ldn = <9>;
status = "disabled";
};
uart1: uart@400f2800 {
compatible = "microchip,xec-uart";
reg = <0x400f2800 0x400>;
interrupts = <41 1>;
clock-frequency = <1843200>;
current-speed = <38400>;
girqs = <15 1>;
pcrs = <2 2>;
ldn = <10>;
status = "disabled";
};
emi0: emi@400f4000 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f4000 0x400>;
interrupts = <42 3>;
girqs = < MCHP_XEC_ECIA(15, 2, 7, 42) >;
ldn = <16>;
status = "disabled";
};
emi1: emi@400f4400 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f4400 0x400>;
interrupts = <43 3>;
girqs = < MCHP_XEC_ECIA(15, 3, 7, 43) >;
ldn = <17>;
status = "disabled";
};
emi2: emi@400f4800 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f4800 0x400>;
interrupts = <44 3>;
girqs = < MCHP_XEC_ECIA(15, 4, 7, 44) >;
ldn = <18>;
status = "disabled";
};
rtc0: rtc@400f5000 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f5000 0x100>;
interrupts = <119 3>, <120 3>;
girqs = < MCHP_XEC_ECIA(21, 8, 13, 119)
MCHP_XEC_ECIA(21, 9, 13, 120) >;
pcrs = <2 18>;
ldn = <20>;
status = "disabled";
};
/* Capture writes to host I/O 0x80 - 0x83 */
p80bd0: p80bd@400f8000 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f8000 0x400>;
interrupts = <62 0>;
girqs = < MCHP_XEC_ECIA(15, 22, 7, 62) >;
pcrs = <2 25>;
ldn = <32>;
status = "disabled";
};
/* Capture writes to an 8-bit I/O and map to one of 0x80 to 0x83 */
p80bd0_alias: p80bd@400f8400 {
compatible = "microchip,xec-espi-host-dev";
reg = <0x400f8400 0x400>;
ldn = <33>;
host-io = <0x90>;
/* map 0x90 to 0x80 */
host-io-addr-mask = <0x01>;
status = "disabled";
};
};
};
};
&nvic {
arm,num-irq-priority-bits = <3>;
};
&systick {
status = "disabled";
};