Skip to content

Commit 37d90d6

Browse files
sunil-abrahamArunMCHP
authored andcommitted
bindings: sercom_g1_uart: microchip: uart bindings for sercom g1 IPs
Add minimal set of binding parameters for sercom uart driver. Signed-off-by: Sunil Abraham <[email protected]>
1 parent 12ccbea commit 37d90d6

File tree

3 files changed

+155
-0
lines changed

3 files changed

+155
-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
@@ -53,6 +53,26 @@
5353
};
5454
};
5555

56+
sercom0: sercom@40003000 {
57+
compatible = "microchip,sercom-g1";
58+
status = "disabled";
59+
reg = <0x40003000 0x31>;
60+
interrupts = <46 0>, <47 0>, <48 0>, <49 0>;
61+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBA_SERCOM0>,
62+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM0_CORE>;
63+
clock-names = "mclk", "gclk";
64+
};
65+
66+
sercom1: sercom@40003400 {
67+
compatible = "microchip,sercom-g1";
68+
status = "disabled";
69+
reg = <0x40003400 0x31>;
70+
interrupts = <50 0>, <51 0>, <52 0>, <53 0>;
71+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBA_SERCOM1>,
72+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM1_CORE>;
73+
clock-names = "mclk", "gclk";
74+
};
75+
5676
nvmctrl: nvmctrl@41004000 {
5777
compatible = "microchip,nvmctrl-g1";
5878
status = "disabled";
@@ -88,6 +108,46 @@
88108
reg = <0x41008180 0x80>;
89109
};
90110
};
111+
112+
sercom2: sercom@41012000 {
113+
compatible = "microchip,sercom-g1";
114+
status = "disabled";
115+
reg = <0x41012000 0x31>;
116+
interrupts = <54 0>, <55 0>, <56 0>, <57 0>;
117+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBB_SERCOM2>,
118+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM2_CORE>;
119+
clock-names = "mclk", "gclk";
120+
};
121+
122+
sercom3: sercom@41014000 {
123+
compatible = "microchip,sercom-g1";
124+
status = "disabled";
125+
reg = <0x41014000 0x31>;
126+
interrupts = <58 0>, <59 0>, <60 0>, <61 0>;
127+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBB_SERCOM3>,
128+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM3_CORE>;
129+
clock-names = "mclk", "gclk";
130+
};
131+
132+
sercom4: sercom@43000000 {
133+
compatible = "microchip,sercom-g1";
134+
status = "disabled";
135+
reg = <0x43000000 0x31>;
136+
interrupts = <62 0>, <63 0>, <64 0>, <65 0>;
137+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBD_SERCOM4>,
138+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM4_CORE>;
139+
clock-names = "mclk", "gclk";
140+
};
141+
142+
sercom5: sercom@43000400 {
143+
compatible = "microchip,sercom-g1";
144+
status = "disabled";
145+
reg = <0x43000400 0x31>;
146+
interrupts = <66 0>, <67 0>, <68 0>, <69 0>;
147+
clocks = <&mclkperiph CLOCK_MCHP_MCLKPERIPH_ID_APBD_SERCOM5>,
148+
<&gclkperiph CLOCK_MCHP_GCLKPERIPH_ID_SERCOM5_CORE>;
149+
clock-names = "mclk", "gclk";
150+
};
91151
};
92152
};
93153

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

0 commit comments

Comments
 (0)