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

#include <dt-bindings/interrupt-controller/openisa-intmux.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/i2c/i2c.h>

/ {
	#address-cells = <1>;
	#size-cells = <1>;

	aliases {
		pcc-0 = &pcc0;
		pcc-1 = &pcc1;
		pinmux-a = &porta;
		pinmux-b = &portb;
		pinmux-c = &portc;
		pinmux-d = &portd;
		pinmux-e = &porte;
		gpio-a = &gpioa;
		gpio-b = &gpiob;
		gpio-c = &gpioc;
		gpio-d = &gpiod;
		gpio-e = &gpioe;
		uart-0 = &lpuart0;
		uart-1 = &lpuart1;
		uart-2 = &lpuart2;
		uart-3 = &lpuart3;
		i2c-0 = &lpi2c0;
		i2c-1 = &lpi2c1;
		i2c-2 = &lpi2c2;
		i2c-3 = &lpi2c3;
		spi-0 = &lpspi0;
		spi-1 = &lpspi1;
		spi-2 = &lpspi2;
		spi-3 = &lpspi3;
		pwm-0 = &tpm0;
		pwm-1 = &tpm1;
		pwm-2 = &tpm2;
		pwm-3 = &tpm3;
	};

	chosen {
		zephyr,entropy = &trng;
		zephyr,flash-controller = &ftfe;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		cpu@0 {
			device_type = "cpu";
			compatible = "riscv";
			reg = <0>;
		};

		cpu@1 {
			device_type = "cpu";
			compatible = "riscv";
			reg = <1>;
		};
	};

	m4_dtcm: memory@20000000 {
		compatible = "mmio-sram";
		reg = <0x20000000 0x30000>;
	};

	m0_tcm: memory@9000000 {
		compatible = "mmio-sram";
		reg = <0x09000000 0x20000>;
	};

	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		ranges;

		pcc0: clock-controller@4002b000 {
			compatible = "openisa,rv32m1-pcc";
			reg = <0x4002b000 0x200>;
			label = "PCC0";
			#clock-cells = <1>;
		};

		pcc1: clock-controller@41027000 {
			compatible = "openisa,rv32m1-pcc";
			reg = <0x41027000 0x200>;
			label = "PCC1";
			#clock-cells = <1>;
		};

		event0: interrupt-controller@e0041000 {
			compatible = "openisa,rv32m1-event-unit";
			#interrupt-cells = <1>;
			interrupt-controller;
			reg = <0xe0041000 0x88>;
		};

		event1: interrupt-controller@4101f000 {
			compatible = "openisa,rv32m1-event-unit";
			#interrupt-cells = <1>;
			interrupt-controller;
			reg = <0x4101f000 0x88>;
		};

		intmux0: intmux@4004f000 {
			compatible = "openisa,rv32m1-intmux";
			reg = <0x4004f000 0x200>;
			clocks = <&pcc0 0x13c>;
			label = "INTMUX0";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <1>;

			ranges = <0x0 0x4004f000 0x200>;

			intmux0_ch0: interrupt-controller@0 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH0_IRQ>;
				reg = <0x0 0x40>;
				label = "INTMUX0_CH0";
				status = "disabled";
			};

			intmux0_ch1: interrupt-controller@40 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH1_IRQ>;
				reg = <0x40 0x40>;
				label = "INTMUX0_CH1";
				status = "disabled";
			};

			intmux0_ch2: interrupt-controller@80 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH2_IRQ>;
				reg = <0x80 0x40>;
				label = "INTMUX0_CH2";
				status = "disabled";
			};

			intmux0_ch3: interrupt-controller@c0 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH3_IRQ>;
				reg = <0xc0 0x40>;
				label = "INTMUX0_CH3";
				status = "disabled";
			};

			intmux0_ch4: interrupt-controller@100 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH4_IRQ>;
				reg = <0x100 0x40>;
				label = "INTMUX0_CH4";
				status = "disabled";
			};

			intmux0_ch5: interrupt-controller@140 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH5_IRQ>;
				reg = <0x140 0x40>;
				label = "INTMUX0_CH5";
				status = "disabled";
			};

			intmux0_ch6: interrupt-controller@180 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH6_IRQ>;
				reg = <0x180 0x40>;
				label = "INTMUX0_CH6";
				status = "disabled";
			};

			intmux0_ch7: interrupt-controller@1c0 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH7_IRQ>;
				reg = <0x1c0 0x40>;
				label = "INTMUX0_CH7";
				status = "disabled";
			};
		};

		intmux1: intmux@41022000 {
			compatible = "openisa,rv32m1-intmux";
			reg = <0x41022000 0x20>;
			clocks = <&pcc1 0x88>;
			label = "INTMUX1";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <1>;

			ranges = <0x0 0x41022000 0x200>;

			intmux1_ch0: interrupt-controller@0 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH0_IRQ>;
				reg = <0x0 0x40>;
				label = "INTMUX1_CH0";
				status = "disabled";
			};

			intmux1_ch1: interrupt-controller@40 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH1_IRQ>;
				reg = <0x40 0x40>;
				label = "INTMUX1_CH1";
				status = "disabled";
			};

			intmux1_ch2: interrupt-controller@80 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH2_IRQ>;
				reg = <0x80 0x40>;
				label = "INTMUX1_CH2";
				status = "disabled";
			};

			intmux1_ch3: interrupt-controller@c0 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH3_IRQ>;
				reg = <0xc0 0x40>;
				label = "INTMUX1_CH3";
				status = "disabled";
			};

			intmux1_ch4: interrupt-controller@100 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH4_IRQ>;
				reg = <0x100 0x40>;
				label = "INTMUX1_CH4";
				status = "disabled";
			};

			intmux1_ch5: interrupt-controller@140 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH5_IRQ>;
				reg = <0x140 0x40>;
				label = "INTMUX1_CH5";
				status = "disabled";
			};

			intmux1_ch6: interrupt-controller@180 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH6_IRQ>;
				reg = <0x180 0x40>;
				label = "INTMUX1_CH6";
				status = "disabled";
			};

			intmux1_ch7: interrupt-controller@1c0 {
				compatible = "openisa,rv32m1-intmux-ch";
				#interrupt-cells = <1>;
				interrupt-controller;
				interrupts = <INTMUX_CH7_IRQ>;
				reg = <0x1c0 0x40>;
				label = "INTMUX1_CH7";
				status = "disabled";
			};
		};

		lptmr0: timer@40032000 {
			compatible = "openisa,rv32m1-lptmr";
			reg = <0x40032000 0x10>;
			label = "LPTMR_0";
		};

		lptmr1: timer@40033000 {
			compatible = "openisa,rv32m1-lptmr";
			reg = <0x40033000 0x10>;
			label = "LPTMR_1";
		};

		lptmr2: timer@4102b000 {
			compatible = "openisa,rv32m1-lptmr";
			reg = <0x4102b000 0x10>;
			label = "LPTMR_2";
		};

		porta: pinmux@40046000 {
			compatible = "openisa,rv32m1-pinmux";
			reg = <0x40046000 0xd0>;
			clocks = <&pcc0 0x118>;
			label = "porta";
		};

		portb: pinmux@40047000 {
			compatible = "openisa,rv32m1-pinmux";
			reg = <0x40047000 0xd0>;
			clocks = <&pcc0 0x11c>;
			label = "portb";
		};

		portc: pinmux@40048000 {
			compatible = "openisa,rv32m1-pinmux";
			reg = <0x40048000 0xd0>;
			clocks = <&pcc0 0x120>;
			label = "portc";
		};

		portd: pinmux@40049000 {
			compatible = "openisa,rv32m1-pinmux";
			reg = <0x40049000 0xd0>;
			clocks = <&pcc0 0x124>;
			label = "portd";
		};

		porte: pinmux@41037000 {
			compatible = "openisa,rv32m1-pinmux";
			reg = <0x41037000 0xd0>;
			clocks = <&pcc1 0xdc>;
			label = "porte";
		};

		gpioa: gpio@48020000 {
			compatible = "openisa,rv32m1-gpio";
			reg = <0x48020000 0x14>;
			label = "GPIO_0";
			gpio-controller;
			#gpio-cells = <2>;
			openisa,rv32m1-port = <&porta>;
		};

		gpiob: gpio@48020040 {
			compatible = "openisa,rv32m1-gpio";
			reg = <0x48020040 0x14>;
			label = "GPIO_1";
			gpio-controller;
			#gpio-cells = <2>;
			openisa,rv32m1-port = <&portb>;
		};

		gpioc: gpio@48020080 {
			compatible = "openisa,rv32m1-gpio";
			reg = <0x48020080 0x14>;
			label = "GPIO_2";
			gpio-controller;
			#gpio-cells = <2>;
			openisa,rv32m1-port = <&portc>;
		};

		gpiod: gpio@480200c0 {
			compatible = "openisa,rv32m1-gpio";
			reg = <0x480200c0 0x14>;
			label = "GPIO_3";
			gpio-controller;
			#gpio-cells = <2>;
			openisa,rv32m1-port = <&portd>;
		};

		gpioe: gpio@4100f000 {
			compatible = "openisa,rv32m1-gpio";
			reg = <0x4100f000 0x14>;
			label = "GPIO_4";
			gpio-controller;
			#gpio-cells = <2>;
			clocks = <&pcc1 0x3c>;
			openisa,rv32m1-port = <&porte>;
		};

		lpuart0: lpuart@40042000 {
			compatible = "openisa,rv32m1-lpuart";
			reg = <0x40042000 0x2c>;
			clocks = <&pcc0 0x108>;
			label = "UART_0";
			status = "disabled";
		};

		lpuart1: lpuart@40043000 {
			compatible = "openisa,rv32m1-lpuart";
			reg = <0x40043000 0x2c>;
			clocks = <&pcc0 0x10c>;
			label = "UART_1";
			status = "disabled";
		};

		lpuart2: lpuart@40044000 {
			compatible = "openisa,rv32m1-lpuart";
			reg = <0x40044000 0x2c>;
			clocks = <&pcc0 0x110>;
			label = "UART_2";
			status = "disabled";
		};

		lpuart3: lpuart@41036000 {
			compatible = "openisa,rv32m1-lpuart";
			reg = <0x41036000 0x2c>;
			clocks = <&pcc0 0xd8>;
			label = "UART_3";
			status = "disabled";
		};

		lpi2c0: lpi2c@4003a000 {
			compatible = "openisa,rv32m1-lpi2c";
			reg = <0x4003a000 0x170>;
			clocks = <&pcc0 0xe8>;
			label = "I2C_0";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};

		lpi2c1: lpi2c@4003b000 {
			compatible = "openisa,rv32m1-lpi2c";
			reg = <0x4003b000 0x170>;
			clocks = <&pcc0 0xec>;
			label = "I2C_1";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};

		lpi2c2: lpi2c@4003c000 {
			compatible = "openisa,rv32m1-lpi2c";
			reg = <0x4003c000 0x170>;
			clocks = <&pcc0 0xf0>;
			label = "I2C_2";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};

		lpi2c3: lpi2c@4102e000 {
			compatible = "openisa,rv32m1-lpi2c";
			reg = <0x4102e000 0x170>;
			clocks = <&pcc1 0xb8>;
			label = "I2C_3";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};

		lpspi0: spi@4003f000 {
			compatible = "openisa,rv32m1-lpspi";
			reg = <0x4003f000 0x78>;
			label = "SPI_0";
			status = "disabled";
			clocks = <&pcc0 0xfc>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		lpspi1: spi@40040000 {
			compatible = "openisa,rv32m1-lpspi";
			reg = <0x40040000 0x78>;
			label = "SPI_1";
			status = "disabled";
			clocks = <&pcc0 0x100>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		lpspi2: spi@40041000 {
			compatible = "openisa,rv32m1-lpspi";
			reg = <0x40041000 0x78>;
			label = "SPI_2";
			status = "disabled";
			clocks = <&pcc0 0x104>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		lpspi3: spi@41035000 {
			compatible = "openisa,rv32m1-lpspi";
			reg = <0x41035000 0x78>;
			label = "SPI_3";
			status = "disabled";
			clocks = <&pcc1 0xd4>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		generic_fsk: generic_fsk@41033000 {
			compatible = "openisa,rv32m1-genfsk";
			reg = <0x41033000 0x90>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		tpm0: pwm@40035000 {
			compatible = "openisa,rv32m1-tpm";
			reg = <0x40035000 0x88>;
			clocks = <&pcc0 0xd4>;
			label = "PWM_0";
			status = "disabled";
			#pwm-cells = <3>;
		};

		tpm1: pwm@40036000 {
			compatible = "openisa,rv32m1-tpm";
			reg = <0x40036000 0x88>;
			clocks = <&pcc0 0xd8>;
			label = "PWM_1";
			status = "disabled";
			#pwm-cells = <3>;
		};

		tpm2: pwm@40037000 {
			compatible = "openisa,rv32m1-tpm";
			reg = <0x40037000 0x88>;
			clocks = <&pcc0 0xdc>;
			label = "PWM_2";
			status = "disabled";
			#pwm-cells = <3>;
		};

		trng: random@41029000{
			compatible = "openisa,rv32m1-trng";
			reg = <0x41029000 0x1000>;
			status = "okay";
			interrupts = <13 0>;
			label = "TRNG";
		};

		tpm3: pwm@4102d000 {
			compatible = "openisa,rv32m1-tpm";
			reg = <0x4102d000 0x88>;
			clocks = <&pcc1 0xb4>;
			label = "PWM_3";
			status = "disabled";
			#pwm-cells = <3>;
		};

		ftfe: flash-controller@40023000 {
			compatible = "openisa,rv32m1-ftfe";
			label = "FLASH_CTRL";
			reg = <0x40023000 0x18>;

			#address-cells = <1>;
			#size-cells = <1>;

			m4_flash: flash@0 {
				compatible = "soc-nv-flash";
				label = "M4_FLASH";
				reg = <0 0x100000>;
				erase-block-size = <4096>;
				write-block-size = <8>;
			};

			m0_flash: flash@1000000 {
				compatible = "soc-nv-flash";
				label = "M0_FLASH";
				reg = <0x01000000 0x40000>;
				erase-block-size = <4096>;
				write-block-size = <8>;
			};
		};
	};
};
