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
7maintainers:
8  - Erwan Le Ray <erwan.leray@st.com>
9
10title: STMicroelectronics STM32 USART bindings
11
12allOf:
13  - $ref: rs485.yaml
14
15properties:
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
64if:
65  required:
66    - st,hw-flow-ctrl
67then:
68  properties:
69    cts-gpios: false
70    rts-gpios: false
71
72required:
73  - compatible
74  - reg
75  - interrupts
76  - clocks
77
78additionalProperties: false
79
80examples:
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...
95