Linux Audio

Check our new training course

Loading...
/*
 * Copyright (c) 2023 TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <mem.h>
#include <freq.h>
#include <arm/armv7-m.dtsi>
#include <zephyr/dt-bindings/interrupt-controller/renesas-ra-icu.h>

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

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-m4";
			reg = <0>;
		};
	};

	clocks {
		mosc: mosc {
			compatible = "fixed-clock";
			clock-frequency = <1200000>;
			status = "disabled";
			#clock-cells = <0>;
		};

		sosc: sosc {
			compatible = "fixed-clock";
			clock-frequency = <32768>;
			status = "disabled";
			#clock-cells = <0>;
		};

		hoco: hoco {
			compatible = "fixed-clock";
			clock-frequency = <24000000>;
			status = "okay";
			#clock-cells = <0>;
		};

		moco: moco {
			compatible = "fixed-clock";
			clock-frequency = <8000000>;
			status = "okay";
			#clock-cells = <0>;
		};

		loco: loco {
			compatible = "fixed-clock";
			clock-frequency = <32768>;
			status = "okay";
			#clock-cells = <0>;
		};

		pll: pll {
			compatible = "fixed-factor-clock";
			status = "disabled";
			clocks = <&mosc>;
			clock-div = <2>;
			clock-mult = <8>;
			#clock-cells = <0>;
		};
	};

	sram0: memory0@20000000 {
		compatible = "mmio-sram";
		reg = <0x20000000 DT_SIZE_K(32)>;
	};

	soc {
		interrupt-parent = <&icu>;
		icu: interrupt-controller@40006000 {
			compatible = "renesas,ra-interrupt-controller-unit";
			reg = <0x40006000 0x40>;
			reg-names = "icu";
			interrupt-controller;
			#interrupt-cells = <3>;
		};

		cgc: cgc@4001e000 {
			compatible = "renesas,ra-clock-generation-circuit";
			reg = <0x4001e000 0x40 0x40047000 0x10>;
			reg-names = "system", "mstp";
			#clock-cells = <1>;

			clock-source = <&moco>;
			iclk-div = <16>;
			pclka-div = <16>;
			pclkb-div = <16>;
			pclkc-div = <16>;
			pclkd-div = <16>;
			fclk-div = <16>;
		};

		fcu: flash-controller@4001c000 {
			compatible = "renesas,ra-flash-controller";
			reg = <0x4001c000 0x44>;
			reg-names = "fcache";

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

			flash0: flash0@0 {
				compatible = "soc-nv-flash";
				reg = <0x00000000 DT_SIZE_K(256)>;
			};

			flash1: flash1@40100000 {
				compatible = "soc-nv-flash";
				reg = <0x40100000 DT_SIZE_K(8)>;
			};
		};

		ioport0: gpio@40040000 {
			compatible = "renesas,ra-gpio";
			reg = <0x40040000 0x20>;
			gpio-controller;
			#gpio-cells = <2>;
			ngpios = <16>;
			interrupts = <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ2>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ3>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ6>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ7>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ10>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ15>;
			interrupt-names = "port-irq2", "port-irq3", "port-irq6",
					  "port-irq7", "port-irq10", "port-irq15";
			port-irq2-pins = <2>;
			port-irq3-pins = <4>;
			port-irq6-pins = <0>;
			port-irq7-pins = <1 15>;
			port-irq10-pins = <5>;
			port-irq15-pins = <11>;
			status = "disabled";
		};

		ioport1: gpio@40040020 {
			compatible = "renesas,ra-gpio";
			reg = <0x40040020 0x20>;
			gpio-controller;
			#gpio-cells = <2>;
			interrupts = <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ0>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ1>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ2>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ3>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ4>;
			interrupt-names = "port-irq0", "port-irq1", "port-irq2",
					  "port-irq3", "port-irq4";
			port-irq0-pins = <5>;
			port-irq1-pins = <1>;
			port-irq2-pins = <0>;
			port-irq3-pins = <10>;
			port-irq4-pins = <11>;
			ngpios = <16>;
			status = "disabled";
		};

		ioport2: gpio@40040040 {
			compatible = "renesas,ra-gpio";
			reg = <0x40040040 0x20>;
			gpio-controller;
			#gpio-cells = <2>;
			ngpios = <16>;
			interrupts = <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ0>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ1>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ2>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ3>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ9>;
			interrupt-names = "port-irq0", "port-irq1", "port-irq2",
					  "port-irq3", "port-irq9";
			port-irq0-pins = <6>;
			port-irq1-pins = <5>;
			port-irq2-pins = <13>;
			port-irq3-pins = <12>;
			status = "disabled";
		};

		ioport3: gpio@40040060 {
			compatible = "renesas,ra-gpio";
			reg = <0x40040060 0x20>;
			gpio-controller;
			#gpio-cells = <2>;
			ngpios = <16>;
			interrupts = <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ5>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ6>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ8>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ9>;
			interrupt-names = "port-irq5", "port-irq6", "port-irq8", "port-irq9";
			port-irq5-pins = <2>;
			port-irq6-pins = <1>;
			port-irq8-pins = <5>;
			port-irq9-pins = <4>;
			status = "disabled";
		};

		ioport4: gpio@40040080 {
			compatible = "renesas,ra-gpio";
			reg = <0x40040080 0x20>;
			gpio-controller;
			#gpio-cells = <2>;
			ngpios = <16>;
			interrupts = <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ0>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ4>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ5>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ6>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ7>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ8>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ9>;
			interrupt-names = "port-irq0", "port-irq4", "port-irq5", "port-irq6",
					  "port-irq7", "port-irq8", "port-irq9";
			port-irq0-pins = <0>;
			port-irq4-pins = <2 11>;
			port-irq5-pins = <1 10>;
			port-irq6-pins = <9>;
			port-irq7-pins = <8>;
			port-irq8-pins = <15>;
			port-irq9-pins = <14>;
			status = "disabled";
		};

		ioport5: gpio@400400a0 {
			compatible = "renesas,ra-gpio";
			reg = <0x400400a0 0x20>;
			gpio-controller;
			#gpio-cells = <2>;
			ngpios = <16>;
			interrupts = <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ11>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ12>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_PORT_IRQ14>;
			interrupt-names = "port-irq11", "port-irq12", "port-irq14";
			port-irq11-pins = <1>;
			port-irq12-pins = <2>;
			port-irq14-pins = <5>;
			status = "disabled";
		};

		pinctrl: pinctrl@40040800 {
			compatible = "renesas,ra-pinctrl";
			reg = <0x40040800 0x500 0x40040d03 0x1>;
			reg-names = "pfs", "pmisc_pwpr";
			status = "okay";
		};

		sci0: sci@40070000 {
			compatible = "renesas,ra-sci";
			reg = <0x40070000 0x20>;
			interrupts = <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI0_RXI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI0_TXI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI0_TEI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI0_ERI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI0_AM>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI0_RXI_OR_ERI>;
			interrupt-names = "rxi", "txi", "tei", "eri", "am", "rxi-or-eri";
			clocks = <&cgc RA_CLOCK_SCI(0)>;
			#clock-cells = <1>;
			status = "disabled";
			uart {
				compatible = "renesas,ra-uart-sci";
				status = "disabled";
			};
		};

		sci1: sci@40070020 {
			compatible = "renesas,ra-sci";
			reg = <0x40070020 0x20>;
			interrupts = <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI1_RXI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI1_TXI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI1_TEI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI1_ERI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI1_AM>;
			interrupt-names = "rxi", "txi", "tei", "eri", "am";
			clocks = <&cgc RA_CLOCK_SCI(1)>;
			#clock-cells = <1>;
			status = "disabled";
			uart {
				compatible = "renesas,ra-uart-sci";
				status = "disabled";
			};
		};

		sci9: sci@40070120 {
			compatible = "renesas,ra-sci";
			reg = <0x40070120 0x20>;
			interrupts = <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI9_RXI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI9_TXI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI9_TEI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI9_ERI>,
				     <RA_ICU_IRQ_UNSPECIFIED 0 RA_ICU_SCI9_AM>;
			interrupt-names = "rxi", "txi", "tei", "eri", "am";
			clocks = <&cgc RA_CLOCK_SCI(9)>;
			#clock-cells = <1>;
			status = "disabled";
			uart {
				compatible = "renesas,ra-uart-sci";
				status = "disabled";
			};
		};
	};
};

&nvic {
	arm,num-irq-priority-bits = <4>;
};