1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/serial/st,stm32-uart.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
maintainers:
- Erwan Le Ray <erwan.leray@st.com>
title: STMicroelectronics STM32 USART bindings
properties:
compatible:
enum:
- st,stm32-uart
- st,stm32f7-uart
- st,stm32h7-uart
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
resets:
maxItems: 1
label:
description: label associated with this uart
st,hw-flow-ctrl:
description: enable hardware flow control (deprecated)
$ref: /schemas/types.yaml#/definitions/flag
uart-has-rtscts: true
rx-tx-swap: true
dmas:
minItems: 1
maxItems: 2
dma-names:
items:
enum: [ rx, tx ]
minItems: 1
maxItems: 2
# cts-gpios and rts-gpios properties can be used instead of 'uart-has-rtscts'
# or 'st,hw-flow-ctrl' (deprecated) for making use of any gpio pins for flow
# control instead of dedicated pins.
#
# It should be noted that both cts-gpios/rts-gpios and 'uart-has-rtscts' or
# 'st,hw-flow-ctrl' (deprecated) properties cannot co-exist in a design.
cts-gpios: true
rts-gpios: true
wakeup-source: true
rs485-rts-delay: true
rs485-rts-active-low: true
linux,rs485-enabled-at-boot-time: true
rs485-rx-during-tx: true
rx-threshold:
description:
If value is set to 1, RX FIFO threshold is disabled.
enum: [1, 2, 4, 8, 12, 14, 16]
default: 8
tx-threshold:
description:
If value is set to 1, TX FIFO threshold is disabled.
enum: [1, 2, 4, 8, 12, 14, 16]
default: 8
allOf:
- $ref: rs485.yaml#
- $ref: serial.yaml#
- if:
required:
- st,hw-flow-ctrl
then:
properties:
cts-gpios: false
rts-gpios: false
- if:
properties:
compatible:
const: st,stm32-uart
then:
properties:
rx-tx-swap: false
- if:
properties:
compatible:
contains:
enum:
- st,stm32-uart
- st,stm32f7-uart
then:
properties:
rx-threshold: false
tx-threshold: false
required:
- compatible
- reg
- interrupts
- clocks
additionalProperties:
type: object
examples:
- |
#include <dt-bindings/clock/stm32mp1-clks.h>
usart1: serial@40011000 {
compatible = "st,stm32h7-uart";
reg = <0x40011000 0x400>;
interrupts = <37>;
clocks = <&rcc 0 164>;
dmas = <&dma2 2 4 0x414 0x0>,
<&dma2 7 4 0x414 0x0>;
dma-names = "rx", "tx";
rx-threshold = <4>;
tx-threshold = <4>;
rs485-rts-active-low;
};
...
|