blob: 0112cae43269ec214ac69753698d8dbf4c85e899 [file] [log] [blame]
/*
* Copyright (c) 2024-2025 Renesas Electronics Corporation
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <renesas/ra/ra8/r7fa8m1ahecbd.dtsi>
#include <dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/flash_controller/xspi.h>
#include <zephyr/dt-bindings/adc/adc.h>
#include <zephyr/dt-bindings/input/input-event-codes.h>
#include "ek_ra8m1-pinctrl.dtsi"
/ {
model = "Renesas EK-RA8M1";
compatible = "renesas,ra8m1", "renesas,ra8";
chosen {
zephyr,sram = &sram0;
zephyr,flash-controller = &flash1;
zephyr,flash = &flash0;
zephyr,console = &uart9;
zephyr,shell-uart = &uart9;
zephyr,entropy = &trng;
zephyr,canbus = &canfd0;
zephyr,crc = &crc;
};
leds {
compatible = "gpio-leds";
led1: led1 {
gpios = <&ioport6 0 GPIO_ACTIVE_HIGH>;
label = "LED1";
};
led2: led2 {
gpios = <&ioport4 14 GPIO_ACTIVE_HIGH>;
label = "LED2";
};
led3: led3 {
gpios = <&ioport1 7 GPIO_ACTIVE_HIGH>;
label = "LED3";
};
};
mikrobus_header: mikrobus-connector {
compatible = "mikro-bus";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map = <0 0 &ioport0 4 0>, /* AN */
<1 0 &ioport5 2 0>, /* RST */
<2 0 &ioport4 13 0>, /* CS */
<3 0 &ioport4 12 0>, /* SCK */
<4 0 &ioport4 10 0>, /* MISO */
<5 0 &ioport4 11 0>, /* MOSI */
/* +3.3V */
/* GND */
<6 0 &ioport9 7 0>, /* PWM */
<7 0 &ioport0 10 0>, /* INT */
<8 0 &ioport3 9 0>, /* RX */
<9 0 &ioport3 10 0>, /* TX */
<10 0 &ioport4 0 0>, /* SCL */
<11 0 &ioport4 1 0>; /* SDA */
/* +5V */
/* GND */
};
pmod1_header: pmod-connector-1 {
compatible = "digilent,pmod";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map = <0 0 &ioport6 12 0>, /* IO1 */
<1 0 &ioport6 9 0>, /* IO2 */
<2 0 &ioport6 10 0>, /* IO3 */
<3 0 &ioport6 11 0>, /* IO4 */
<4 0 &ioport0 6 0>, /* IO5 */
<5 0 &ioporta 8 0>, /* IO6 */
<6 0 &ioport6 14 0>, /* IO7 */
<7 0 &ioport6 15 0>; /* IO8 */
};
pmod2_header: pmod-connector-2 {
compatible = "digilent,pmod";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map = <0 0 &ioporta 5 0>, /* IO1 */
<1 0 &ioporta 3 0>, /* IO2 */
<2 0 &ioporta 2 0>, /* IO3 */
<3 0 &ioporta 4 0>, /* IO4 */
<4 0 &ioport5 8 0>, /* IO5 */
<5 0 &ioport8 9 0>, /* IO6 */
<6 0 &ioport8 10 0>, /* IO7 */
<7 0 &ioport8 11 0>; /* IO8 */
};
buttons {
compatible = "gpio-keys";
button0: s1 {
gpios = <&ioport0 9 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
label = "Push button switch 1";
zephyr,code = <INPUT_KEY_0>;
};
button1: s2 {
gpios = <&ioport0 8 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
label = "Push button switch 2";
zephyr,code = <INPUT_KEY_1>;
};
};
aliases {
led0 = &led1;
sw0 = &button0;
sw1 = &button1;
watchdog0 = &wdt;
};
transceiver0: can-phy0 {
compatible = "nxp,tja1040t", "can-transceiver-gpio";
standby-gpios = <&ioport2 7 GPIO_ACTIVE_HIGH>;
max-bitrate = <5000000>;
#phy-cells = <0>;
};
zephyr,user {
i3c-pullup-gpios = <&ioportb 0 GPIO_ACTIVE_LOW>,
<&ioport7 11 GPIO_ACTIVE_LOW>;
};
};
&xtal {
clock-frequency = <DT_FREQ_M(20)>;
mosel = <0>;
#clock-cells = <0>;
status = "okay";
};
&subclk {
status = "okay";
};
&pll {
status = "okay";
pllp {
status = "okay";
};
pllq {
div = <4>;
freq = <DT_FREQ_M(240)>;
status = "okay";
};
pllr {
status = "okay";
};
};
&pll2 {
status = "okay";
clocks = <&xtal>;
div = <2>;
mul = <80 0>;
pll2p {
status = "okay";
freq = <DT_FREQ_M(400)>;
div = <2>;
};
};
&sciclk {
clocks = <&pllp>;
div = <4>;
status = "okay";
};
&canfdclk {
clocks = <&pllp>;
div = <6>;
status = "okay";
};
&uclk {
clocks = <&pllq>;
div = <5>;
status = "okay";
};
&octaspiclk {
clocks = <&pll2p>;
div = <2>;
status = "okay";
};
&i3cclk {
clocks = <&pllp>;
div = <3>;
status = "okay";
};
&ioport0 {
status = "okay";
};
&ioport1 {
status = "okay";
};
&ioport2 {
status = "okay";
};
&ioport3 {
status = "okay";
};
&ioport4 {
status = "okay";
};
&ioport5 {
status = "okay";
};
&ioport6 {
status = "okay";
};
&ioport7 {
status = "okay";
};
&ioport8 {
status = "okay";
};
&ioport9 {
status = "okay";
};
&ioporta {
status = "okay";
};
&ioportb {
status = "okay";
};
&sci0 {
pinctrl-0 = <&sci0_default>;
pinctrl-names = "default";
status = "okay";
uart0: uart {
current-speed = <115200>;
status = "okay";
};
};
&sci1 {
pinctrl-0 = <&sci1_default>;
pinctrl-names = "default";
i2c1: i2c {
sda-output-delay = <300>;
noise-filter-clock-select = <1>;
bit-rate-modulation;
};
};
&sci2 {
pinctrl-0 = <&sci2_default>;
pinctrl-names = "default";
status = "okay";
uart2: uart {
current-speed = <115200>;
status = "okay";
};
};
&sci3 {
pinctrl-0 = <&sci3_default>;
pinctrl-names = "default";
status = "okay";
uart3: uart {
current-speed = <115200>;
status = "okay";
};
};
&sci9 {
pinctrl-0 = <&sci9_default>;
pinctrl-names = "default";
status = "okay";
uart9: uart {
current-speed = <115200>;
status = "okay";
};
};
mikrobus_serial: &uart3 {};
mikrobus_spi: &spi1 {};
&iic1 {
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <DT_FREQ_M(1)>;
pinctrl-0 = <&iic1_default>;
pinctrl-names = "default";
};
&adc0 {
status = "okay";
pinctrl-0 = <&adc0_default>;
pinctrl-names = "default";
average-count = <4>;
};
&dac0 {
pinctrl-0 = <&dac0_default>;
pinctrl-names = "default";
status = "okay";
};
&trng {
status = "okay";
};
&spi1 {
pinctrl-0 = <&spi1_default>;
pinctrl-names = "default";
status = "okay";
};
&i3c0 {
i2c-scl-hz = <DT_FREQ_K(400)>;
i3c-scl-hz = <DT_FREQ_M(4)>;
pinctrl-0 = <&i3c0_default>;
pinctrl-names = "default";
interrupts = <60 1>, <61 1>, <62 1>, <63 1>, <64 1>, <65 1>;
interrupt-names = "resp", "rx", "tx", "rcv", "ibi", "eei";
status = "okay";
};
&pwm7 {
pinctrl-0 = <&pwm7_default>;
interrupts = <40 1>, <41 1>;
interrupt-names = "gtioca", "overflow";
pinctrl-names = "default";
status = "okay";
};
&flash1 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
storage_partition: partition@0 {
label = "storage";
reg = <0X0 DT_SIZE_K(12)>;
};
};
};
&canfd_global {
status = "okay";
canfd0 {
pinctrl-0 = <&canfd0_default>;
pinctrl-names = "default";
phys = <&transceiver0>;
rx-max-filters = <16>;
status = "okay";
};
};
pmod1_serial: &uart0 {};
pmod2_serial: &uart2 {};
pmod_serial: &pmod1_serial {};
pmod_header: &pmod1_header {};
&eth {
local-mac-address = [74 90 50 B0 6D 5A];
status = "okay";
phy-handle = <&phy>;
};
&mdio {
pinctrl-0 = <&ether_default>;
pinctrl-names = "default";
status = "okay";
phy: ethernet-phy@5 {
compatible = "ethernet-phy";
reg = <5>;
status = "okay";
};
};
&usbhs {
pinctrl-0 = <&usbhs_default>;
pinctrl-names = "default";
maximum-speed = "high-speed";
status = "okay";
zephyr_udc0: udc {
status = "okay";
};
};
&usbhs_phy {
phys-clock-src = "xtal";
};
&port_irq12 {
interrupts = <88 12>;
status = "okay";
};
&port_irq13 {
interrupts = <89 12>;
status = "okay";
};
pmod_sd_shield: &sdhc0 {};
&usbfs {
pinctrl-0 = <&usbfs_default>;
pinctrl-names = "default";
maximum-speed = "full-speed";
};
&wdt {
status = "okay";
};
&ulpt0 {
status = "okay";
timer {
status = "okay";
};
};
&ulpt1 {
status = "okay";
timer {
status = "okay";
};
};
&ospi0 {
pinctrl-0 = <&ospi0_default>;
pinctrl-names = "default";
status = "okay";
s28hl512t: ospi-nor-flash@90000000 {
compatible = "renesas,ra-ospi-b-nor";
protocol-mode = <XSPI_OCTO_MODE>;
data-rate = <XSPI_DTR_TRANSFER>;
ospi-max-frequency = <DT_FREQ_M(200)>;
reg = <0x90000000 DT_SIZE_M(64)>;
write-block-size = <1>;
status = "okay";
pages_layout: pages_layout {
pages_layout_4k: pages_layout_4k {
pages-count = <32>;
pages-size = <DT_SIZE_K(4)>;
};
pages_layout_128k: pages_layout_128k {
pages-count = <1>;
pages-size = <DT_SIZE_K(128)>;
};
pages_layout_256k: pages_layout_256k {
pages-count = <255>;
pages-size = <DT_SIZE_K(256)>;
};
};
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "nor";
reg = <0x00000000 DT_SIZE_M(64)>;
};
};
};
};
&crc {
status = "okay";
};