Skip to content

Commit 83e1a1a

Browse files
sunil-abrahamArunMCHP
authored andcommitted
dts: arm: microchip: add uart dts node and bindings for sercom g1 IPs
Add uart dts nodes and minimal set of binding parameters for sercom uart driver. Signed-off-by: Sunil Abraham <[email protected]>
1 parent 71b67fd commit 83e1a1a

File tree

3 files changed

+161
-0
lines changed

3 files changed

+161
-0
lines changed

dts/arm/microchip/sam/sam_d5x_e5x/common/samd5xe5x.dtsi

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,26 @@
5454
};
5555
};
5656

57+
sercom0: sercom@40003000 {
58+
compatible = "microchip,sercom-g1";
59+
status = "disabled";
60+
reg = <0x40003000 0x31>;
61+
interrupts = <46 0>, <47 0>, <48 0>, <49 0>;
62+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBA_SERCOM0>,
63+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM0_CORE>;
64+
clock-names = "mclk", "gclk";
65+
};
66+
67+
sercom1: sercom@40003400 {
68+
compatible = "microchip,sercom-g1";
69+
status = "disabled";
70+
reg = <0x40003400 0x31>;
71+
interrupts = <50 0>, <51 0>, <52 0>, <53 0>;
72+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBA_SERCOM1>,
73+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM1_CORE>;
74+
clock-names = "mclk", "gclk";
75+
};
76+
5777
pinctrl: pinctrl@41008000 {
5878
compatible = "microchip,port-g1-pinctrl";
5979
#address-cells = <1>;
@@ -76,6 +96,46 @@
7696
reg = <0x41008180 0x80>;
7797
};
7898
};
99+
100+
sercom2: sercom@41012000 {
101+
compatible = "microchip,sercom-g1";
102+
status = "disabled";
103+
reg = <0x41012000 0x31>;
104+
interrupts = <54 0>, <55 0>, <56 0>, <57 0>;
105+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBB_SERCOM2>,
106+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM2_CORE>;
107+
clock-names = "mclk", "gclk";
108+
};
109+
110+
sercom3: sercom@41014000 {
111+
compatible = "microchip,sercom-g1";
112+
status = "disabled";
113+
reg = <0x41014000 0x31>;
114+
interrupts = <58 0>, <59 0>, <60 0>, <61 0>;
115+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBB_SERCOM3>,
116+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM3_CORE>;
117+
clock-names = "mclk", "gclk";
118+
};
119+
120+
sercom4: sercom@43000000 {
121+
compatible = "microchip,sercom-g1";
122+
status = "disabled";
123+
reg = <0x43000000 0x31>;
124+
interrupts = <62 0>, <63 0>, <64 0>, <65 0>;
125+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBD_SERCOM4>,
126+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM4_CORE>;
127+
clock-names = "mclk", "gclk";
128+
};
129+
130+
sercom5: sercom@43000400 {
131+
compatible = "microchip,sercom-g1";
132+
status = "disabled";
133+
reg = <0x43000400 0x31>;
134+
interrupts = <66 0>, <67 0>, <68 0>, <69 0>;
135+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBD_SERCOM5>,
136+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM5_CORE>;
137+
clock-names = "mclk", "gclk";
138+
};
79139
};
80140
};
81141

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Copyright (c) 2025 Microchip Technology Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
title: Microchip SERCOM (Serial Communication) module
5+
6+
description: |
7+
Microchip SERCOM multi-protocol (UART, SPI, I2C) SERCOM unit, group g1
8+
9+
compatible: "microchip,sercom-g1"
10+
11+
include: base.yaml
12+
13+
properties:
14+
reg:
15+
required: true
16+
17+
interrupts:
18+
required: true
19+
20+
clocks:
21+
required: true
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Copyright (c) 2025 Microchip Technology Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
title: Microchip SERCOM UART controller
5+
6+
description: |
7+
Microchip SERCOM UART driver.
8+
9+
Group g1 SERCOM UART driver supports following hardware peripherals:
10+
- module name="SERCOM" id="U2201" version="5.0.0"
11+
12+
compatible: "microchip,sercom-g1-uart"
13+
14+
include:
15+
- name: uart-controller.yaml
16+
- name: pinctrl-device.yaml
17+
18+
properties:
19+
reg:
20+
required: true
21+
22+
interrupts:
23+
required: true
24+
25+
clocks:
26+
required: true
27+
28+
clock-names:
29+
required: true
30+
31+
rxpo:
32+
type: int
33+
required: true
34+
description: |
35+
Define the receive data (RxD) pin configuration.
36+
An enumeration with the following values:
37+
38+
+-------+---------------+
39+
| Value | RX Pin |
40+
+-------+---------------+
41+
| 0 | SERCOM_PAD[0] |
42+
+-------+---------------+
43+
| 1 | SERCOM_PAD[1] |
44+
+-------+---------------+
45+
| 2 | SERCOM_PAD[2] |
46+
+-------+---------------+
47+
| 3 | SERCOM_PAD[3] |
48+
+-------+---------------+
49+
50+
txpo:
51+
type: int
52+
required: true
53+
description: |
54+
Transmit Data Pinout. An enumeration with values that depend on the
55+
hardware being used. This controls both the transmit pins and if
56+
hardware flow control is used.
57+
58+
SAMD5/E5:
59+
60+
+-------+---------------+---------------+---------------+
61+
| Value | TX Pin | RTS | CTS |
62+
+-------+---------------+---------------+---------------+
63+
| 0 | SERCOM_PAD[0] | N/A | N/A |
64+
+-------+---------------+---------------+---------------+
65+
| 1 | Reserved |
66+
+-------+---------------+---------------+---------------+
67+
| 2 | SERCOM_PAD[0] | SERCOM_PAD[2] | SERCOM_PAD[3] |
68+
+-------+---------------+---------------+---------------+
69+
| 3 | SERCOM_PAD[0] | SERCOM_PAD[2] | N/A |
70+
+-------+---------------+---------------+---------------+
71+
72+
clock-external:
73+
type: boolean
74+
description: |
75+
select external clock for uart (external clock if true).
76+
77+
collision-detection:
78+
type: boolean
79+
description: |
80+
Enable collision detection for half-duplex mode.

0 commit comments

Comments
 (0)