/*
 * Copyright 2018 Foundries.io Ltd
 * SPDX-License-Identifier: Apache-2.0
 */

#include <riscv/openisa/rv32m1.dtsi>

/ {
	aliases {
		intmux = &intmux0;
		system-lptmr = &lptmr0;
	};

	cpus {
		/delete-node/ cpu@1;
	};
};

&m4_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.
		 */

		ri5cy_code_partition: partition@0 {
			reg = <0x00000000 0x000fff00>;
		};

		ri5cy_vector_partition: partition@fff00 {
			reg = <0x000fff00 0x100>;
		};
	};
};

/*
 * INTMUX channels below are somewhat arbitrary.
 *
 * The system timer (assumed at LPTMR0) is placed on channel 0, and peripherals
 * are in channel 1. 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.
 */

&intmux0 {
	status = "okay";
};

&intmux0_ch0 {
	interrupt-parent = <&event0>;
	status = "okay";
};

&intmux0_ch1 {
	interrupt-parent = <&event0>;
	status = "okay";
};

&intmux0_ch2 {
	interrupt-parent = <&event0>;
};

&intmux0_ch3 {
	interrupt-parent = <&event0>;
};

&intmux0_ch4 {
	interrupt-parent = <&event0>;
};

&intmux0_ch5 {
	interrupt-parent = <&event0>;
};

&intmux0_ch6 {
	interrupt-parent = <&event0>;
};

&intmux0_ch7 {
	interrupt-parent = <&event0>;
};

/delete-node/ &intmux1;

&lptmr0 {
	interrupt-parent = <&intmux0_ch0>;
	interrupts = <7>;
};

&lptmr1 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <8>;
};

&lptmr2 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <22>;
};

&gpioa {
	interrupt-parent = <&event0>;
	interrupts = <18>;
};

&gpiob {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <15>;
};

&gpioc {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <16>;
};

&gpiod {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <17>;
};

&gpioe {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <27>;
};

&lpuart0 {
	interrupt-parent = <&event0>;
	interrupts = <17>;
};

&lpuart1 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <13>;
};

&lpuart2 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <14>;
};

&lpuart3 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <26>;
};

&lpi2c0 {
	interrupt-parent = <&event0>;
	interrupts = <15>;
};

&lpi2c1 {
	interrupt-parent = <&event0>;
	interrupts = <16>;
};

&lpi2c2 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <11>;
};

&lpi2c3 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <24>;
};

&lpspi0 {
	interrupt-parent = <&event0>;
	interrupts = <13>;
};

&lpspi1 {
	interrupt-parent = <&event0>;
	interrupts = <14>;
};

&lpspi2 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <12>;
};

&lpspi3 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <25>;
};

&generic_fsk {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <29>;
};

&tpm0 {
	interrupt-parent = <&event0>;
	interrupts = <19>;
};

&tpm1 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <9>;
};

&tpm2 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <10>;
};

&tpm3 {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <23>;
};

&trng {
	interrupt-parent = <&intmux0_ch1>;
	interrupts = <20>;
};
