556 lines
13 KiB
Plaintext
556 lines
13 KiB
Plaintext
/*
|
|
* Copyright (c) 2019 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <arm/armv7-m.dtsi>
|
|
#include <zephyr/dt-bindings/adc/adc.h>
|
|
#include <zephyr/dt-bindings/clock/mchp_xec_pcr.h>
|
|
#include <zephyr/dt-bindings/i2c/i2c.h>
|
|
#include <zephyr/dt-bindings/gpio/gpio.h>
|
|
#include <zephyr/dt-bindings/gpio/microchip-xec-gpio.h>
|
|
|
|
/ {
|
|
cpus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cpu0: cpu@0 {
|
|
device_type = "cpu";
|
|
compatible = "arm,cortex-m4";
|
|
reg = <0>;
|
|
cpu-power-states = <&idle &suspend_to_ram>;
|
|
};
|
|
|
|
power-states {
|
|
idle: idle {
|
|
compatible = "zephyr,power-state";
|
|
power-state-name = "suspend-to-idle";
|
|
min-residency-us = <1000000>;
|
|
};
|
|
|
|
suspend_to_ram: suspend_to_ram {
|
|
compatible = "zephyr,power-state";
|
|
power-state-name = "suspend-to-ram";
|
|
min-residency-us = <2000000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
flash0: flash@e0000 {
|
|
reg = <0x000E0000 0x38000>;
|
|
};
|
|
|
|
sram0: memory@118000 {
|
|
compatible = "mmio-sram";
|
|
reg = <0x00118000 0x8000>;
|
|
};
|
|
|
|
aliases {
|
|
i2c-smb-0 = &i2c_smb_0;
|
|
i2c-smb-1 = &i2c_smb_1;
|
|
i2c-smb-2 = &i2c_smb_2;
|
|
i2c-smb-3 = &i2c_smb_3;
|
|
i2c-smb-4 = &i2c_smb_4;
|
|
};
|
|
|
|
soc {
|
|
ecs: ecs@4000fc00 {
|
|
compatible = "microchip,xec-ecs";
|
|
reg = <0x4000fc00 0x200>;
|
|
};
|
|
pcr: pcr@40080100 {
|
|
compatible = "microchip,xec-pcr";
|
|
reg = <0x40080100 0x100 0x4000a400 0x100>;
|
|
reg-names = "pcrr", "vbatr";
|
|
core-clock-div = <1>;
|
|
/* MEC15xx requires both sources to be the same */
|
|
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 the sources is set to PIN */
|
|
pinctrl-0 = <&clk_32khz_in_gpio165>;
|
|
pinctrl-names = "default";
|
|
#clock-cells = <3>;
|
|
};
|
|
ecia: ecia@4000e000 {
|
|
reg = <0x4000e000 0x400>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
girq23: girq23@12c {
|
|
reg = <0x12c 0x14>;
|
|
interrupts = <14 0>;
|
|
girq-id = <15>;
|
|
sources = <0 1 2 4 5 10 16 17>;
|
|
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";
|
|
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";
|
|
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";
|
|
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";
|
|
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";
|
|
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";
|
|
reg = < 0x40081280 0x80 0x40081314 0x04
|
|
0x40081394 0x04 0x400813e8 0x04>;
|
|
gpio-controller;
|
|
interrupts = <17 2>;
|
|
port-id = <5>;
|
|
girq-id = <26>;
|
|
#gpio-cells=<2>;
|
|
};
|
|
};
|
|
rtimer: timer@40007400 {
|
|
compatible = "microchip,xec-rtos-timer";
|
|
reg = <0x40007400 0x10>;
|
|
interrupts = <111 0>;
|
|
girqs = <23 10>;
|
|
};
|
|
bbram: bb-ram@4000a800 {
|
|
compatible = "microchip,xec-bbram";
|
|
reg = <0x4000a800 0x80>;
|
|
reg-names = "memory";
|
|
};
|
|
wdog: watchdog@40000400 {
|
|
compatible = "microchip,xec-watchdog";
|
|
reg = <0x40000400 0x400>;
|
|
interrupts = <171 0>;
|
|
girqs = <21 2>;
|
|
pcrs = <1 9>;
|
|
};
|
|
uart0: uart@400f2400 {
|
|
compatible = "microchip,xec-uart";
|
|
reg = <0x400f2400 0x400>;
|
|
interrupts = <40 0>;
|
|
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 0>;
|
|
clock-frequency = <1843200>;
|
|
current-speed = <38400>;
|
|
girqs = <15 1>;
|
|
pcrs = <2 2>;
|
|
ldn = <10>;
|
|
status = "disabled";
|
|
};
|
|
uart2: uart@400f2c00 {
|
|
compatible = "microchip,xec-uart";
|
|
reg = <0x400f2c00 0x400>;
|
|
interrupts = <44 0>;
|
|
clock-frequency = <1843200>;
|
|
current-speed = <38400>;
|
|
girqs = <15 4>;
|
|
pcrs = <2 28>;
|
|
ldn = <11>;
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c_smb_0: i2c@40004000 {
|
|
compatible = "microchip,xec-i2c";
|
|
reg = <0x40004000 0x80>;
|
|
clock-frequency = <I2C_BITRATE_STANDARD>;
|
|
interrupts = <20 1>;
|
|
pcrs = <1 10>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
girq = <13>;
|
|
girq-bit = <0>;
|
|
};
|
|
|
|
i2c_smb_1: i2c@40004400 {
|
|
compatible = "microchip,xec-i2c";
|
|
reg = <0x40004400 0x80>;
|
|
clock-frequency = <I2C_BITRATE_STANDARD>;
|
|
interrupts = <21 1>;
|
|
pcrs = <3 13>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
girq = <13>;
|
|
girq-bit = <1>;
|
|
};
|
|
|
|
i2c_smb_2: i2c@40004800 {
|
|
compatible = "microchip,xec-i2c";
|
|
reg = <0x40004800 0x80>;
|
|
clock-frequency = <I2C_BITRATE_STANDARD>;
|
|
interrupts = <22 1>;
|
|
pcrs = <3 14>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
girq = <13>;
|
|
girq-bit = <2>;
|
|
};
|
|
|
|
i2c_smb_3: i2c@40004c00 {
|
|
compatible = "microchip,xec-i2c";
|
|
reg = <0x40004C00 0x80>;
|
|
clock-frequency = <I2C_BITRATE_STANDARD>;
|
|
interrupts = <23 1>;
|
|
pcrs = <3 15>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
girq = <13>;
|
|
girq-bit = <3>;
|
|
};
|
|
|
|
i2c_smb_4: i2c@40005000 {
|
|
compatible = "microchip,xec-i2c";
|
|
reg = <0x40005000 0x80>;
|
|
clock-frequency = <I2C_BITRATE_STANDARD>;
|
|
interrupts = <158 1>;
|
|
pcrs = <3 20>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
girq = <13>;
|
|
girq-bit = <4>;
|
|
};
|
|
|
|
espi0: espi@400f3400 {
|
|
compatible = "microchip,xec-espi";
|
|
reg = <0x400f3400 0x400>;
|
|
interrupts = <11 3>, <15 3>, <7 3>, <16 3>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
espi_saf0: espi@40008000 {
|
|
compatible = "microchip,xec-espi-saf";
|
|
reg = < 0x40008000 0x400
|
|
0x40070000 0x400
|
|
0x40071000 0x400>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
timer0: timer@40000c00 {
|
|
compatible = "microchip,xec-timer";
|
|
clock-frequency = <48000000>;
|
|
reg = <0x40000c00 0x20>;
|
|
interrupts = <136 0>;
|
|
max-value = <0xFFFF>;
|
|
prescaler = <0>;
|
|
status = "disabled";
|
|
girqs = <23 0>;
|
|
pcrs = <1 30>;
|
|
};
|
|
timer1: timer@40000c20 {
|
|
compatible = "microchip,xec-timer";
|
|
clock-frequency = <48000000>;
|
|
reg = <0x40000c20 0x20>;
|
|
interrupts = <137 0>;
|
|
max-value = <0xFFFF>;
|
|
prescaler = <0>;
|
|
status = "disabled";
|
|
girqs = <23 1>;
|
|
pcrs = <1 31>;
|
|
};
|
|
/*
|
|
* NOTE 1: timers 2 and 3 not implemented in MEC152x.
|
|
* NOTE 2: 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>;
|
|
max-value = <0xFFFFFFFF>;
|
|
prescaler = <0>;
|
|
girqs = <23 4>;
|
|
pcrs = <3 23>;
|
|
status = "disabled";
|
|
};
|
|
timer5: timer@40000ca0 {
|
|
compatible = "microchip,xec-timer";
|
|
clock-frequency = <48000000>;
|
|
reg = <0x40000ca0 0x20>;
|
|
interrupts = <141 0>;
|
|
max-value = <0xFFFFFFFF>;
|
|
prescaler = <0>;
|
|
girqs = <23 5>;
|
|
pcrs = <3 24>;
|
|
};
|
|
hibtimer0: timer@40009800 {
|
|
reg = <0x40009800 0x20>;
|
|
interrupts = <112 0>;
|
|
girqs = <23 16>;
|
|
};
|
|
hibtimer1: timer@40009820 {
|
|
reg = <0x40009820 0x20>;
|
|
interrupts = <113 0>;
|
|
girqs = <23 17>;
|
|
};
|
|
ps2_0: ps2@40009000 {
|
|
compatible = "microchip,xec-ps2";
|
|
reg = <0x40009000 0x40>;
|
|
interrupts = <100 1>;
|
|
girqs = <18 10>, <21 18>;
|
|
pcrs = <3 5>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
ps2_1: ps2@40009040 {
|
|
compatible = "microchip,xec-ps2";
|
|
reg = <0x40009040 0x40>;
|
|
interrupts = <101 1>;
|
|
girqs = <18 11>, <21 21>;
|
|
pcrs = <3 6>;
|
|
#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 = <3>;
|
|
};
|
|
pwm1: pwm@40005810 {
|
|
compatible = "microchip,xec-pwm";
|
|
reg = <0x40005810 0x20>;
|
|
pcrs = <1 20>;
|
|
status = "disabled";
|
|
#pwm-cells = <3>;
|
|
};
|
|
pwm2: pwm@40005820 {
|
|
compatible = "microchip,xec-pwm";
|
|
reg = <0x40005820 0x20>;
|
|
pcrs = <1 21>;
|
|
status = "disabled";
|
|
#pwm-cells = <3>;
|
|
};
|
|
pwm3: pwm@40005830 {
|
|
compatible = "microchip,xec-pwm";
|
|
reg = <0x40005830 0x20>;
|
|
pcrs = <1 22>;
|
|
status = "disabled";
|
|
#pwm-cells = <3>;
|
|
};
|
|
pwm4: pwm@40005840 {
|
|
compatible = "microchip,xec-pwm";
|
|
reg = <0x40005840 0x20>;
|
|
pcrs = <1 23>;
|
|
status = "disabled";
|
|
#pwm-cells = <3>;
|
|
};
|
|
pwm5: pwm@40005850 {
|
|
compatible = "microchip,xec-pwm";
|
|
reg = <0x40005850 0x20>;
|
|
pcrs = <1 24>;
|
|
status = "disabled";
|
|
#pwm-cells = <3>;
|
|
};
|
|
pwm6: pwm@40005860 {
|
|
compatible = "microchip,xec-pwm";
|
|
reg = <0x40005860 0x20>;
|
|
pcrs = <1 25>;
|
|
status = "disabled";
|
|
#pwm-cells = <3>;
|
|
};
|
|
pwm7: pwm@40005870 {
|
|
compatible = "microchip,xec-pwm";
|
|
reg = <0x40005870 0x20>;
|
|
pcrs = <1 26>;
|
|
status = "disabled";
|
|
#pwm-cells = <3>;
|
|
};
|
|
pwm8: pwm@40005880 {
|
|
compatible = "microchip,xec-pwm";
|
|
reg = <0x40005880 0x20>;
|
|
pcrs = <1 27>;
|
|
status = "disabled";
|
|
#pwm-cells = <3>;
|
|
};
|
|
adc0: adc@40007c00 {
|
|
compatible = "microchip,xec-adc";
|
|
reg = <0x40007c00 0x90>;
|
|
interrupts = <78 0>, <79 0>;
|
|
girqs = <17 8>, <17 9>;
|
|
pcrs = <3 3>;
|
|
status = "disabled";
|
|
#io-channel-cells = <1>;
|
|
clktime = <32>;
|
|
};
|
|
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 {
|
|
compatible = "microchip,xec-qmspi";
|
|
reg = <0x40070000 0x400>;
|
|
interrupts = <91 2>;
|
|
clock-frequency = <12000000>;
|
|
rxdma = <11>;
|
|
txdma = <10>;
|
|
lines = <1>;
|
|
chip_select = <0>;
|
|
dcsckon = <6>;
|
|
dckcsoff = <4>;
|
|
dldh = <6>;
|
|
dcsda = <6>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
tach0: tach@40006000 {
|
|
compatible = "microchip,xec-tach";
|
|
reg = <0x40006000 0x10>;
|
|
interrupts = <71 4>;
|
|
girqs = <17 1>;
|
|
pcrs = <1 2>;
|
|
status = "disabled";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
tach1: tach@40006010 {
|
|
compatible = "microchip,xec-tach";
|
|
reg = <0x40006010 0x10>;
|
|
interrupts = <72 4>;
|
|
girqs = <17 2>;
|
|
pcrs = <1 11>;
|
|
status = "disabled";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
tach2: tach@40006020 {
|
|
compatible = "microchip,xec-tach";
|
|
reg = <0x40006020 0x10>;
|
|
interrupts = <73 4>;
|
|
girqs = <17 3>;
|
|
pcrs = <1 12>;
|
|
status = "disabled";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
tach3: tach@40006030 {
|
|
compatible = "microchip,xec-tach";
|
|
reg = <0x40006030 0x10>;
|
|
interrupts = <159 4>;
|
|
girqs = <17 4>;
|
|
pcrs = <1 13>;
|
|
status = "disabled";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
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";
|
|
};
|
|
};
|
|
};
|
|
|
|
&nvic {
|
|
arm,num-irq-priority-bits = <3>;
|
|
};
|
|
|
|
&systick {
|
|
status = "disabled";
|
|
};
|