1/*
2 * Copyright (c) 2024 Renesas Electronics Corporation
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6/dts-v1/;
7
8#include <renesas/ra/ra4/r7fa4e2b93cfm.dtsi>
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input-event-codes.h>
11#include <zephyr/dt-bindings/adc/adc.h>
12#include "ek_ra4e2-pinctrl.dtsi"
13
14/ {
15	model = "Renesas EK-RA4E2";
16	compatible = "renesas,ra4e2", "renesas,ra";
17
18	chosen {
19		zephyr,sram = &sram0;
20		zephyr,flash = &flash0;
21		zephyr,console = &uart0;
22		zephyr,shell-uart = &uart0;
23		zephyr,canbus = &canfd0;
24		zephyr,entropy = &trng;
25	};
26
27	leds {
28		compatible = "gpio-leds";
29		led1: led1 {
30			gpios = <&ioport2 7 GPIO_ACTIVE_HIGH>;
31			label = "LED1";
32		};
33		led2: led2 {
34			gpios = <&ioport1 4 GPIO_ACTIVE_HIGH>;
35			label = "LED2";
36		};
37		led3: led3 {
38			gpios = <&ioport1 12 GPIO_ACTIVE_HIGH>;
39			label = "LED3";
40		};
41	};
42
43	buttons {
44		compatible = "gpio-keys";
45		button0: s1 {
46			gpios = <&ioport0 5 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
47			label = "Push button switch 1";
48			zephyr,code = <INPUT_KEY_0>;
49		};
50		button1: s2 {
51			gpios = <&ioport3 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
52			label = "Push button switch 2";
53			zephyr,code = <INPUT_KEY_1>;
54		};
55	};
56
57	aliases {
58		led0 = &led1;
59		sw0 = &button0;
60		sw1 = &button1;
61	};
62
63	transceiver0: can-phy0 {
64		compatible = "nxp,tja1043t", "can-transceiver-gpio";
65		standby-gpios = <&ioport4 0 GPIO_ACTIVE_LOW>;
66		max-bitrate = <5000000>;
67		#phy-cells = <0>;
68	};
69};
70
71&xtal {
72	clock-frequency = <DT_FREQ_M(20)>;
73	mosel = <0>;
74	#clock-cells = <0>;
75	status = "okay";
76};
77
78&subclk {
79	status = "okay";
80};
81
82&pll {
83	clocks = <&xtal>;
84	div = <1>;
85	mul = <10 0>;
86	status = "okay";
87};
88
89&sci0 {
90	pinctrl-0 = <&sci0_default>;
91	pinctrl-names = "default";
92	status = "okay";
93	uart0: uart {
94		current-speed = <115200>;
95		status = "okay";
96	};
97};
98
99&ioport0 {
100	status = "okay";
101};
102
103&ioport1 {
104	status = "okay";
105};
106
107&ioport2 {
108	status = "okay";
109};
110
111&spi0 {
112	pinctrl-0 = <&spi0_default>;
113	pinctrl-names = "default";
114	status = "okay";
115};
116
117&ioport4 {
118	status = "okay";
119};
120
121&canfdclk {
122	clocks = <&pll>;
123	div = <8>;
124	status = "okay";
125};
126
127&canfd_global {
128	status = "okay";
129	canfd0 {
130		pinctrl-0 = <&canfd0_default>;
131		pinctrl-names = "default";
132		phys = <&transceiver0>;
133		rx-max-filters = <16>;
134		status = "okay";
135	};
136};
137
138&adc0 {
139	status = "okay";
140	pinctrl-0 = <&adc0_default>;
141	pinctrl-names = "default";
142};
143
144&ioport3 {
145	status = "okay";
146};
147
148&port_irq9 {
149	interrupts = <4 12>;
150	status = "okay";
151};
152
153&port_irq10 {
154	interrupts = <5 12>;
155	status = "okay";
156};
157
158&pwm1 {
159	pinctrl-0 = <&pwm1_default>;
160	pinctrl-names = "default";
161	interrupts = <63 1>, <64 1>;
162	interrupt-names = "gtioca", "overflow";
163	divider = <RA_PWM_SOURCE_DIV_256>;
164	status = "okay";
165};
166
167&trng {
168	status = "okay";
169};
170