Skip to content

Commit 40a60a6

Browse files
hfakkizfabiobaltieri
authored andcommitted
dts: arm: adi: max32650: Add more peripheral nodes
This commit adds following updates to MAX32650 SoC: - Divide SRAM to sections according to UG. - Add DMA and SPI nodes - Add WDT nodes without adding clock property - Include dma binding to SoC dts file. Signed-off-by: Furkan Akkiz <hasanfurkan.akkiz@analog.com> Signed-off-by: Burak Babaoglu <burak.babaoglu@analog.com>
1 parent 9de258c commit 40a60a6

File tree

2 files changed

+154
-4
lines changed

2 files changed

+154
-4
lines changed

dts/arm/adi/max32/max32650.dtsi

Lines changed: 100 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@
66

77
#include <arm/armv7-m.dtsi>
88
#include <adi/max32/max32xxx.dtsi>
9-
10-
&sram0 {
11-
reg = <0x20000000 DT_SIZE_M(1)>;
12-
};
9+
#include <zephyr/dt-bindings/dma/max32650_dma.h>
1310

1411
&flash0 {
1512
reg = <0x10000000 DT_SIZE_M(3)>;
@@ -30,6 +27,8 @@
3027

3128
/delete-node/ &trng;
3229

30+
/delete-node/ &wdt0;
31+
3332
&pinctrl {
3433
reg = <0x40008000 0x4000>;
3534

@@ -57,6 +56,36 @@
5756
/* MAX32650 extra peripherals. */
5857
/ {
5958
soc {
59+
sram1: memory@20008000 {
60+
compatible = "mmio-sram";
61+
reg = <0x20008000 DT_SIZE_K(64)>;
62+
};
63+
64+
sram2: memory@20018000 {
65+
compatible = "mmio-sram";
66+
reg = <0x20018000 DT_SIZE_K(32)>;
67+
};
68+
69+
sram3: memory@20020000 {
70+
compatible = "mmio-sram";
71+
reg = <0x20020000 DT_SIZE_K(128)>;
72+
};
73+
74+
sram4: memory@20040000 {
75+
compatible = "mmio-sram";
76+
reg = <0x20040000 DT_SIZE_K(256)>;
77+
};
78+
79+
sram5: memory@20080000 {
80+
compatible = "mmio-sram";
81+
reg = <0x20080000 DT_SIZE_K(256)>;
82+
};
83+
84+
sram6: memory@200c0000 {
85+
compatible = "mmio-sram";
86+
reg = <0x200c0000 DT_SIZE_K(256)>;
87+
};
88+
6089
trng: trng@400b5000 {
6190
compatible = "adi,max32-trng";
6291
reg = <0x400b5000 0x1000>;
@@ -105,5 +134,72 @@
105134
#pwm-cells = <3>;
106135
};
107136
};
137+
138+
spi0: spi@40046000 {
139+
compatible = "adi,max32-spi";
140+
reg = <0x40046000 0x1000>;
141+
#address-cells = <1>;
142+
#size-cells = <0>;
143+
clocks = <&gcr ADI_MAX32_CLOCK_BUS0 6>;
144+
interrupts = <16 0>;
145+
status = "disabled";
146+
};
147+
148+
spi1: spi@40047000 {
149+
compatible = "adi,max32-spi";
150+
reg = <0x40047000 0x1000>;
151+
#address-cells = <1>;
152+
#size-cells = <0>;
153+
clocks = <&gcr ADI_MAX32_CLOCK_BUS0 7>;
154+
interrupts = <17 0>;
155+
status = "disabled";
156+
};
157+
158+
spi2: spi@40048000 {
159+
compatible = "adi,max32-spi";
160+
reg = <0x40048000 0x1000>;
161+
#address-cells = <1>;
162+
#size-cells = <0>;
163+
clocks = <&gcr ADI_MAX32_CLOCK_BUS0 8>;
164+
interrupts = <18 0>;
165+
status = "disabled";
166+
};
167+
168+
spi3: spi@400be000 {
169+
compatible = "adi,max32-spi";
170+
reg = <0x400be000 0x400>;
171+
#address-cells = <1>;
172+
#size-cells = <0>;
173+
clocks = <&gcr ADI_MAX32_CLOCK_BUS1 14>;
174+
interrupts = <56 0>;
175+
status = "disabled";
176+
};
177+
178+
wdt0: watchdog@40003000 {
179+
compatible = "adi,max32-watchdog";
180+
reg = <0x40003000 0x400>;
181+
interrupts = <1 0>;
182+
clock-source = <ADI_MAX32_PRPH_CLK_SRC_PCLK>;
183+
status = "disabled";
184+
};
185+
186+
wdt1: watchdog@40003400 {
187+
compatible = "adi,max32-watchdog";
188+
reg = <0x40003400 0x400>;
189+
interrupts = <57 0>;
190+
clock-source = <ADI_MAX32_PRPH_CLK_SRC_PCLK>;
191+
status = "disabled";
192+
};
193+
194+
dma0: dma@40028000 {
195+
compatible = "adi,max32-dma";
196+
reg = <0x40028000 0x1000>;
197+
clocks = <&gcr ADI_MAX32_CLOCK_BUS0 5>;
198+
interrupts = <28 0>, <29 0>, <30 0>, <31 0>, <68 0>, <69 0>, <70 0>, <71 0>,
199+
<72 0>, <73 0>, <74 0>, <75 0>, <76 0>, <77 0>, <78 0>, <79 0>;
200+
dma-channels = <16>;
201+
status = "disabled";
202+
#dma-cells = <2>;
203+
};
108204
};
109205
};
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* Copyright (c) 2025 Analog Devices, Inc.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_DMA_MAX32650_DMA_H_
7+
#define ZEPHYR_INCLUDE_DT_BINDINGS_DMA_MAX32650_DMA_H_
8+
9+
#define MAX32_DMA_SLOT_MEMTOMEM 0x00U
10+
#define MAX32_DMA_SLOT_SPI0_RX 0x01U
11+
#define MAX32_DMA_SLOT_SPI1_RX 0x02U
12+
#define MAX32_DMA_SLOT_SPI2_RX 0x03U
13+
#define MAX32_DMA_SLOT_UART0_RX 0x04U
14+
#define MAX32_DMA_SLOT_UART1_RX 0x05U
15+
#define MAX32_DMA_SLOT_I2C0_RX 0x07U
16+
#define MAX32_DMA_SLOT_I2C1_RX 0x08U
17+
#define MAX32_DMA_SLOT_ADC 0x09U
18+
#define MAX32_DMA_SLOT_UART2_RX 0x0EU
19+
#define MAX32_DMA_SLOT_SPI3_RX 0x0FU
20+
#define MAX32_DMA_SLOT_SPI_MSS_RX 0x10U
21+
#define MAX32_DMA_SLOT_USB_RX1 0x11U
22+
#define MAX32_DMA_SLOT_USB_RX2 0x12U
23+
#define MAX32_DMA_SLOT_USB_RX3 0x13U
24+
#define MAX32_DMA_SLOT_USB_RX4 0x14U
25+
#define MAX32_DMA_SLOT_USB_RX5 0x15U
26+
#define MAX32_DMA_SLOT_USB_RX6 0x16U
27+
#define MAX32_DMA_SLOT_USB_RX7 0x17U
28+
#define MAX32_DMA_SLOT_USB_RX8 0x18U
29+
#define MAX32_DMA_SLOT_USB_RX9 0x19U
30+
#define MAX32_DMA_SLOT_USB_RX10 0x1AU
31+
#define MAX32_DMA_SLOT_USB_RX11 0x1BU
32+
#define MAX32_DMA_SLOT_SPI0_TX 0x21U
33+
#define MAX32_DMA_SLOT_SPI1_TX 0x22U
34+
#define MAX32_DMA_SLOT_SPI2_TX 0x23U
35+
#define MAX32_DMA_SLOT_UART0_TX 0x24U
36+
#define MAX32_DMA_SLOT_UART1_TX 0x25U
37+
#define MAX32_DMA_SLOT_I2C0_TX 0x27U
38+
#define MAX32_DMA_SLOT_I2C1_TX 0x28U
39+
#define MAX32_DMA_SLOT_UART2_TX 0x2EU
40+
#define MAX32_DMA_SLOT_SPI3_TX 0x2FU
41+
#define MAX32_DMA_SLOT_SPI_MSS_TX 0x30U
42+
#define MAX32_DMA_SLOT_USB_TX1 0x31U
43+
#define MAX32_DMA_SLOT_USB_TX2 0x32U
44+
#define MAX32_DMA_SLOT_USB_TX3 0x33U
45+
#define MAX32_DMA_SLOT_USB_TX4 0x34U
46+
#define MAX32_DMA_SLOT_USB_TX5 0x35U
47+
#define MAX32_DMA_SLOT_USB_TX6 0x36U
48+
#define MAX32_DMA_SLOT_USB_TX7 0x37U
49+
#define MAX32_DMA_SLOT_USB_TX8 0x38U
50+
#define MAX32_DMA_SLOT_USB_TX9 0x39U
51+
#define MAX32_DMA_SLOT_USB_TX10 0x3AU
52+
#define MAX32_DMA_SLOT_USB_TX11 0x3BU
53+
54+
#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_DMA_MAX32650_DMA_H_ */

0 commit comments

Comments
 (0)