blob: 4ef18141e6c44e2a639f2c66d529f1d6f61e259e [file] [log] [blame]
/*
* 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>;
};