2019-04-18 04:34:57 +08:00
|
|
|
/*
|
|
|
|
* Copyright 2018 Foundries.io Ltd
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*/
|
|
|
|
|
2019-07-18 01:17:05 +08:00
|
|
|
#include <riscv/rv32m1.dtsi>
|
2019-04-18 04:34:57 +08:00
|
|
|
|
|
|
|
/ {
|
|
|
|
aliases {
|
|
|
|
intmux = &intmux1;
|
|
|
|
system-lptmr = &lptmr2;
|
|
|
|
};
|
|
|
|
|
|
|
|
cpus {
|
|
|
|
/delete-node/ cpu@0;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2019-05-07 02:50:52 +08:00
|
|
|
&m0_flash {
|
|
|
|
partitions {
|
|
|
|
compatible = "fixed-partitions";
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <1>;
|
|
|
|
|
|
|
|
/* This configuration assumes the Arm cores are disabled, as
|
|
|
|
* these base addresses contain the Arm core vector tables if
|
|
|
|
* they are used.
|
|
|
|
*/
|
|
|
|
|
|
|
|
zero_riscy_code_partition: partition@1000000 {
|
|
|
|
label = "zero-riscy-code";
|
|
|
|
reg = <0x01000000 0x0003ff00>;
|
|
|
|
};
|
|
|
|
|
|
|
|
zero_riscy_vector_partition: partition@3ff00 {
|
|
|
|
label = "zero-riscy-vector";
|
|
|
|
reg = <0x0003ff00 0x100>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2019-04-18 04:34:57 +08:00
|
|
|
/*
|
|
|
|
* INTMUX channels below are somewhat arbitrary.
|
|
|
|
*
|
|
|
|
* The peripherals are all placed in channel 0. This can be overridden with
|
|
|
|
* overlays, e.g. to manage IRQ priorities, and it will Just Work, but using
|
|
|
|
* fewer channels here allows disabling unused ones in Kconfig, making the
|
|
|
|
* binary smaller.
|
|
|
|
*
|
|
|
|
* Each enabled channel requires 256 bytes in _sw_isr_table, so the savings for
|
|
|
|
* disabling channels can add up.
|
|
|
|
*/
|
|
|
|
|
|
|
|
&intmux1 {
|
|
|
|
interrupt-parent = <&event1>;
|
|
|
|
interrupts = <INTMUX_CH0_IRQ>, <INTMUX_CH1_IRQ>, <INTMUX_CH2_IRQ>, <INTMUX_CH3_IRQ>, <INTMUX_CH4_IRQ>, <INTMUX_CH5_IRQ>, <INTMUX_CH6_IRQ>, <INTMUX_CH7_IRQ>;
|
2019-07-19 23:26:20 +08:00
|
|
|
status = "okay";
|
2019-04-18 04:34:57 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
&lptmr0 {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 6)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&lptmr1 {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 7)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&lptmr2 {
|
|
|
|
interrupt-parent = <&event1>;
|
|
|
|
interrupts = <14>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&gpioa {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 25)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&gpiob {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 26)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&gpioc {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 27)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&gpiod {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 28)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&gpioe {
|
|
|
|
interrupt-parent = <&event1>;
|
|
|
|
interrupts = <21>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&uart0 {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 21)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&uart1 {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 22)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&uart2 {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 23)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&uart3 {
|
|
|
|
interrupt-parent = <&event1>;
|
|
|
|
interrupts = <20>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&i2c0 {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 13)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&i2c1 {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 14)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&i2c2 {
|
|
|
|
interrupt-parent = <&intmux1>;
|
|
|
|
interrupts = <INTMUX_LEVEL2_IRQ(INTMUX_CH0, 15)>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&i2c3 {
|
|
|
|
interrupt-parent = <&event1>;
|
|
|
|
interrupts = <16>;
|
|
|
|
};
|