75b8521eb7cb5e2580ad585c52aec9274ad6d373
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / serial / st,stm32-uart.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/serial/st,stm32-uart.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 maintainers:
8   - Erwan Le Ray <erwan.leray@st.com>
9
10 title: STMicroelectronics STM32 USART bindings
11
12 allOf:
13   - $ref: rs485.yaml
14
15 properties:
16   compatible:
17     enum:
18       - st,stm32-uart
19       - st,stm32f7-uart
20       - st,stm32h7-uart
21
22   reg:
23     maxItems: 1
24
25   interrupts:
26     maxItems: 1
27
28   clocks:
29     maxItems: 1
30
31   resets:
32     maxItems: 1
33
34   label:
35     description: label associated with this uart
36
37   st,hw-flow-ctrl:
38     description: enable hardware flow control
39     $ref: /schemas/types.yaml#/definitions/flag
40
41   dmas:
42     minItems: 1
43     maxItems: 2
44
45   dma-names:
46     items:
47       enum: [ rx, tx ]
48     minItems: 1
49     maxItems: 2
50
51   cts-gpios:
52     maxItems: 1
53
54   rts-gpios:
55     maxItems: 1
56
57   wakeup-source: true
58
59   rs485-rts-delay: true
60   rs485-rts-active-low: true
61   linux,rs485-enabled-at-boot-time: true
62   rs485-rx-during-tx: true
63
64 if:
65   required:
66     - st,hw-flow-ctrl
67 then:
68   properties:
69     cts-gpios: false
70     rts-gpios: false
71
72 required:
73   - compatible
74   - reg
75   - interrupts
76   - clocks
77
78 additionalProperties: false
79
80 examples:
81   - |
82     #include <dt-bindings/clock/stm32mp1-clks.h>
83     usart1: serial@40011000 {
84       compatible = "st,stm32-uart";
85       reg = <0x40011000 0x400>;
86       interrupts = <37>;
87       clocks = <&rcc 0 164>;
88       dmas = <&dma2 2 4 0x414 0x0>,
89              <&dma2 7 4 0x414 0x0>;
90       dma-names = "rx", "tx";
91       rs485-rts-active-low;
92     };
93
94 ...