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