Skip to content

Commit 365af1a

Browse files
committed
soc: arm: Add initial support for RA8M1 SOC series
Add minimal support for RA8M1 SOC series. Signed-off-by: Duy Nguyen <[email protected]> Signed-off-by: Quy Tran <[email protected]>
1 parent 6fb2776 commit 365af1a

File tree

23 files changed

+1921
-0
lines changed

23 files changed

+1921
-0
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
/*
2+
* Copyright (c) 2024 Renesas Electronics Corporation
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <arm/renesas/ra/ra8/r7fa8m1xh.dtsi>
8+
#include <zephyr/dt-bindings/clock/ra_clock.h>
9+
10+
/ {
11+
clocks {
12+
xtal: clock-xtal {
13+
compatible = "fixed-clock";
14+
clock-frequency = <DT_FREQ_M(20)>;
15+
#clock-cells = <0>;
16+
};
17+
18+
hoco: clock-hoco {
19+
compatible = "fixed-clock";
20+
clock-frequency = <DT_FREQ_M(48)>;
21+
#clock-cells = <0>;
22+
};
23+
24+
moco: clock-moco {
25+
compatible = "fixed-clock";
26+
clock-frequency = <DT_FREQ_M(8)>;
27+
#clock-cells = <0>;
28+
};
29+
30+
loco: clock-loco {
31+
compatible = "fixed-clock";
32+
clock-frequency = <32768>;
33+
#clock-cells = <0>;
34+
};
35+
36+
subclk: clock-subclk {
37+
compatible = "fixed-clock";
38+
clock-frequency = <32768>;
39+
#clock-cells = <0>;
40+
};
41+
42+
clock: clock {
43+
compatible = "renesas,ra8m1-clock";
44+
#clock-cells = <0>;
45+
46+
/* PLL */
47+
pll-source = <RA_PLL_SOURCE_MAIN_OSC>;
48+
pll-div = <RA_PLL_DIV_1>;
49+
pll-mul = <48 0>;
50+
pll-divp = <RA_PLL_DIV_2>;
51+
pll-freqp = <DT_FREQ_M(480)>;
52+
pll-divq = <RA_PLL_DIV_2>;
53+
pll-freqq = <DT_FREQ_M(480)>;
54+
pll-divr = <RA_PLL_DIV_2>;
55+
pll-freqr = <DT_FREQ_M(480)>;
56+
57+
/* PLL2 */
58+
pll2-source = <RA_PLL_SOURCE_DISABLE>;
59+
pll2-div = <RA_PLL_DIV_1>;
60+
pll2-mul = <48 0>;
61+
pll2-divp = <RA_PLL_DIV_2>;
62+
pll2-freqp = <DT_FREQ_M(0)>;
63+
pll2-divq = <RA_PLL_DIV_2>;
64+
pll2-freqq = <DT_FREQ_M(0)>;
65+
pll2-divr = <RA_PLL_DIV_2>;
66+
pll2-freqr = <DT_FREQ_M(0)>;
67+
68+
/* System Clock */
69+
sysclock-source = <RA_CLOCK_SOURCE_PLL1P>;
70+
cpuclk-div = <RA_SYS_CLOCK_DIV_1>;
71+
iclk-div = <RA_SYS_CLOCK_DIV_2>;
72+
pclka-div = <RA_SYS_CLOCK_DIV_4>;
73+
pclkb-div = <RA_SYS_CLOCK_DIV_8>;
74+
pclkc-div = <RA_SYS_CLOCK_DIV_8>;
75+
pclkd-div = <RA_SYS_CLOCK_DIV_4>;
76+
pclke-div = <RA_SYS_CLOCK_DIV_2>;
77+
bclk-div = <RA_SYS_CLOCK_DIV_4>;
78+
bclk-out = <2>;
79+
fclk-div = <RA_SYS_CLOCK_DIV_8>;
80+
sdclk-out = <1>;
81+
82+
uclk-source = <RA_CLOCK_SOURCE_DISABLE>;
83+
uclk-div = <RA_USB_CLOCK_DIV_5>;
84+
u60clk-source = <RA_CLOCK_SOURCE_DISABLE>;
85+
u60clk-div = <RA_USB60_CLOCK_DIV_5>;
86+
octaspiclk-source = <RA_CLOCK_SOURCE_DISABLE>;
87+
octaspiclk-div = <RA_OCTA_CLOCK_DIV_4>;
88+
canfdclk-source = <RA_CLOCK_SOURCE_DISABLE>;
89+
canfdclk-div = <RA_CANFD_CLOCK_DIV_8>;
90+
clkout-source = <RA_PLL_SOURCE_LOCO>;
91+
clkout-div = <RA_SYS_CLOCK_DIV_1>;
92+
sciclk-source = <RA_CLOCK_SOURCE_DISABLE>;
93+
sciclk-div = <RA_SCI_CLOCK_DIV_4>;
94+
spiclk-source = <RA_CLOCK_SOURCE_DISABLE>;
95+
spiclk-div = <RA_SPI_CLOCK_DIV_4>;
96+
i3cclk-source = <RA_CLOCK_SOURCE_DISABLE>;
97+
i3cclk-div = <RA_I3C_CLOCK_DIV_3>;
98+
};
99+
};
100+
};
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/*
2+
* Copyright (c) 2024 Renesas Electronics Corporation
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <arm/renesas/ra/ra8/ra8x1.dtsi>

dts/arm/renesas/ra/ra8/ra8x1.dtsi

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* Copyright (c) 2024 Renesas Electronics Corporation
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <mem.h>
8+
#include <arm/armv8.1-m.dtsi>
9+
#include <freq.h>
10+
11+
12+
/ {
13+
cpus {
14+
#address-cells = <1>;
15+
#size-cells = <0>;
16+
17+
cpu@0 {
18+
device_type = "cpu";
19+
compatible = "arm,cortex-m85";
20+
reg = <0>;
21+
#address-cells = <1>;
22+
#size-cells = <1>;
23+
24+
mpu: mpu@e000ed90 {
25+
compatible = "arm,armv8.1m-mpu";
26+
reg = <0xe000ed90 0x40>;
27+
};
28+
};
29+
};
30+
31+
soc {
32+
sram0: memory@22000000 {
33+
compatible = "mmio-sram";
34+
reg = <0x22000000 DT_SIZE_K(896)>;
35+
};
36+
37+
system: system@4001e000 {
38+
compatible = "renesas,ra-system";
39+
reg = <0x4001e000 0x1000>;
40+
status = "okay";
41+
};
42+
};
43+
};
44+
45+
&nvic {
46+
arm,num-irq-priority-bits = <4>;
47+
};
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
# Copyright (c) 2024 Renesas Electronics Corporation
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
description: Renesas RA8M1 Clock Generation Circuit
5+
6+
compatible: "renesas,ra8m1-clock"
7+
8+
include: [clock-controller.yaml, base.yaml]
9+
10+
properties:
11+
pll-source:
12+
type: int
13+
required: true
14+
pll-div:
15+
type: int
16+
required: true
17+
pll-mul:
18+
type: array
19+
required: true
20+
pll-divp:
21+
type: int
22+
required: true
23+
pll-freqp:
24+
type: int
25+
required: true
26+
pll-divq:
27+
type: int
28+
required: true
29+
pll-freqq:
30+
type: int
31+
required: true
32+
pll-divr:
33+
type: int
34+
required: true
35+
pll-freqr:
36+
type: int
37+
required: true
38+
39+
pll2-source:
40+
type: int
41+
required: true
42+
pll2-div:
43+
type: int
44+
required: true
45+
pll2-mul:
46+
type: array
47+
required: true
48+
pll2-divp:
49+
type: int
50+
required: true
51+
pll2-freqp:
52+
type: int
53+
required: true
54+
pll2-divq:
55+
type: int
56+
required: true
57+
pll2-freqq:
58+
type: int
59+
required: true
60+
pll2-divr:
61+
type: int
62+
required: true
63+
pll2-freqr:
64+
type: int
65+
required: true
66+
67+
sysclock-source:
68+
type: int
69+
required: true
70+
cpuclk-div:
71+
type: int
72+
required: true
73+
iclk-div:
74+
type: int
75+
required: true
76+
pclka-div:
77+
type: int
78+
required: true
79+
pclkb-div:
80+
type: int
81+
required: true
82+
pclkc-div:
83+
type: int
84+
required: true
85+
pclkd-div:
86+
type: int
87+
required: true
88+
pclke-div:
89+
type: int
90+
required: true
91+
bclk-div:
92+
type: int
93+
required: true
94+
bclk-out:
95+
type: int
96+
required: true
97+
fclk-div:
98+
type: int
99+
required: true
100+
sdclk-out:
101+
type: int
102+
required: true
103+
104+
uclk-source:
105+
type: int
106+
required: true
107+
uclk-div:
108+
type: int
109+
required: true
110+
u60clk-source:
111+
type: int
112+
required: true
113+
u60clk-div:
114+
type: int
115+
required: true
116+
octaspiclk-source:
117+
type: int
118+
required: true
119+
octaspiclk-div:
120+
type: int
121+
required: true
122+
canfdclk-source:
123+
type: int
124+
required: true
125+
canfdclk-div:
126+
type: int
127+
required: true
128+
clkout-source:
129+
type: int
130+
required: true
131+
clkout-div:
132+
type: int
133+
required: true
134+
sciclk-source:
135+
type: int
136+
required: true
137+
sciclk-div:
138+
type: int
139+
required: true
140+
spiclk-source:
141+
type: int
142+
required: true
143+
spiclk-div:
144+
type: int
145+
required: true
146+
i3cclk-source:
147+
type: int
148+
required: true
149+
i3cclk-div:
150+
type: int
151+
required: true

0 commit comments

Comments
 (0)