blob: af3dd7003c0b67876037fcd828146127783fb915 [file] [log] [blame]
/*
* Copyright (c) 2019 Intel Corporation
*
* 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>
/ {
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-m4";
reg = <0>;
};
};
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;
};
pinmux: pinmux {
compatible = "microchip,xec-pinmux";
pinmux_000_036: pinmux-0 {
ph-reg = <&gpio_000_036>;
port-num = <0>;
};
pinmux_040_076: pinmux-1 {
ph-reg = <&gpio_040_076>;
port-num = <1>;
};
pinmux_100_136: pinmux-2 {
ph-reg = <&gpio_100_136>;
port-num = <2>;
};
pinmux_140_176: pinmux-3 {
ph-reg = <&gpio_140_176>;
port-num = <3>;
};
pinmux_200_236: pinmux-4 {
ph-reg = <&gpio_200_236>;
port-num = <4>;
};
pinmux_240_276: pinmux-5 {
ph-reg = <&gpio_240_276>;
port-num = <5>;
};
};
soc {
pcr: pcr@40080100 {
reg = <0x40080100 0x100 0x4000a400 0x100>;
reg-names = "pcrr", "vbatr";
label = "PCR";
};
ecia: ecia@4000e000 {
reg = <0x4000e000 0x400>;
label = "ECIA_0";
#address-cells = <1>;
#size-cells = <1>;
};
rtimer: timer@40007400 {
compatible = "microchip,xec-rtos-timer";
reg = <0x40007400 0x10>;
interrupts = <111 0>;
label = "RTIMER";
girqs = <23 10>;
};
bbram: bb-ram@4000a800 {
compatible = "microchip,xec-bbram";
reg = <0x4000a800 0x80>;
reg-names = "memory";
label = "BBRAM";
};
wdog: watchdog@40000400 {
compatible = "microchip,xec-watchdog";
reg = <0x40000400 0x400>;
interrupts = <171 0>;
girqs = <21 2>;
pcrs = <1 9>;
label = "WDT_0";
};
uart0: uart@400f2400 {
compatible = "ns16550";
reg = <0x400f2400 0x400>;
interrupts = <40 0>;
clock-frequency = <1843200>;
current-speed = <38400>;
label = "UART_0";
reg-shift = <0>;
status = "disabled";
};
uart1: uart@400f2800 {
compatible = "ns16550";
reg = <0x400f2800 0x400>;
interrupts = <41 0>;
clock-frequency = <1843200>;
current-speed = <38400>;
label = "UART_1";
reg-shift = <0>;
status = "disabled";
};
uart2: uart@400f2c00 {
compatible = "ns16550";
reg = <0x400f2c00 0x400>;
interrupts = <44 0>;
clock-frequency = <1843200>;
current-speed = <38400>;
label = "UART_2";
reg-shift = <0>;
status = "disabled";
};
gpio_000_036: gpio@40081000 {
compatible = "microchip,xec-gpio";
reg = <0x40081000 0x80>;
interrupts = <3 2>;
gpio-controller;
label="GPIO000_036";
#gpio-cells=<2>;
};
gpio_040_076: gpio@40081080 {
compatible = "microchip,xec-gpio";
reg = <0x40081080 0x80>;
interrupts = <2 2>;
gpio-controller;
label="GPIO040_076";
#gpio-cells=<2>;
};
gpio_100_136: gpio@40081100 {
compatible = "microchip,xec-gpio";
reg = <0x40081100 0x80>;
gpio-controller;
interrupts = <1 2>;
label="GPIO100_136";
#gpio-cells=<2>;
};
gpio_140_176: gpio@40081180 {
compatible = "microchip,xec-gpio";
reg = <0x40081180 0x80>;
gpio-controller;
interrupts = <0 2>;
label="GPIO140_176";
#gpio-cells=<2>;
};
gpio_200_236: gpio@40081200 {
compatible = "microchip,xec-gpio";
reg = <0x40081200 0x80>;
gpio-controller;
interrupts = <4 2>;
label="GPIO200_236";
#gpio-cells=<2>;
};
gpio_240_276: gpio@40081280 {
compatible = "microchip,xec-gpio";
reg = <0x40081280 0x80>;
gpio-controller;
interrupts = <17 2>;
label="GPIO240_276";
#gpio-cells=<2>;
};
i2c_smb_0: i2c@40004000 {
compatible = "microchip,xec-i2c";
reg = <0x40004000 0x80>;
clock-frequency = <I2C_BITRATE_STANDARD>;
interrupts = <20 1>;
label = "I2C_SMB_0";
#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>;
label = "I2C_SMB_1";
#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>;
label = "I2C_SMB_2";
#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>;
label = "I2C_SMB_3";
#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>;
label = "I2C_SMB_4";
#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>;
label = "ESPI_0";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
espi_saf0: espi@40008000 {
compatible = "microchip,xec-espi-saf";
reg = < 0x40008000 0x400
0x40070000 0x400
0x40071000 0x400>;
label = "ESPI_SAF_0";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
timer0: timer@40000c00 {
compatible = "microchip,xec-timer";
clock-frequency = <48000000>;
reg = <0x40000c00 0x20>;
interrupts = <136 0>;
label = "TIMER_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>;
label = "TIMER_1";
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>;
label = "TIMER_4";
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>;
label = "TIMER_5";
max-value = <0xFFFFFFFF>;
prescaler = <0>;
girqs = <23 5>;
pcrs = <3 24>;
};
ps2_0: ps2@40009000 {
compatible = "microchip,xec-ps2";
reg = <0x40009000 0x40>;
interrupts = <100 1>;
girqs = <18 10>;
pcrs = <3 5>;
label = "PS2_0";
#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>;
pcrs = <3 6>;
label = "PS2_1";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
pwm0: pwm@40005800 {
compatible = "microchip,xec-pwm";
reg = <0x40005800 0x20>;
pcrs = <1 4>;
label = "PWM_0";
status = "disabled";
#pwm-cells = <2>;
};
pwm1: pwm@40005810 {
compatible = "microchip,xec-pwm";
reg = <0x40005810 0x20>;
pcrs = <1 20>;
label = "PWM_1";
status = "disabled";
#pwm-cells = <2>;
};
pwm2: pwm@40005820 {
compatible = "microchip,xec-pwm";
reg = <0x40005820 0x20>;
pcrs = <1 21>;
label = "PWM_2";
status = "disabled";
#pwm-cells = <2>;
};
pwm3: pwm@40005830 {
compatible = "microchip,xec-pwm";
reg = <0x40005830 0x20>;
pcrs = <1 22>;
label = "PWM_3";
status = "disabled";
#pwm-cells = <2>;
};
pwm4: pwm@40005840 {
compatible = "microchip,xec-pwm";
reg = <0x40005840 0x20>;
pcrs = <1 23>;
label = "PWM_4";
status = "disabled";
#pwm-cells = <2>;
};
pwm5: pwm@40005850 {
compatible = "microchip,xec-pwm";
reg = <0x40005850 0x20>;
pcrs = <1 24>;
label = "PWM_5";
status = "disabled";
#pwm-cells = <2>;
};
pwm6: pwm@40005860 {
compatible = "microchip,xec-pwm";
reg = <0x40005860 0x20>;
pcrs = <1 25>;
label = "PWM_6";
status = "disabled";
#pwm-cells = <2>;
};
pwm7: pwm@40005870 {
compatible = "microchip,xec-pwm";
reg = <0x40005870 0x20>;
pcrs = <1 26>;
label = "PWM_7";
status = "disabled";
#pwm-cells = <2>;
};
pwm8: pwm@40005880 {
compatible = "microchip,xec-pwm";
reg = <0x40005880 0x20>;
pcrs = <1 27>;
label = "PWM_8";
status = "disabled";
#pwm-cells = <2>;
};
adc0: adc@40007c00 {
compatible = "microchip,xec-adc";
reg = <0x40007c00 0x90>;
interrupts = <78 0>, <79 0>;
label = "ADC_0";
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>;
label = "KSCAN";
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>;
label = "PECI_0";
#address-cells = <1>;
#size-cells = <0>;
};
spi0: spi@40070000 {
compatible = "microchip,xec-qmspi";
reg = <0x40070000 0x400>;
interrupts = <91 2>;
clock-frequency = <12000000>;
label = "SPI_0";
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>;
label = "TACH_0";
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>;
label = "TACH_1";
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>;
label = "TACH_2";
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>;
label = "TACH_3";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
};
};
&nvic {
arm,num-irq-priority-bits = <3>;
};
&systick {
status = "disabled";
};