Merge tag '6.9-rc5-cifs-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6
[sfrench/cifs-2.6.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@foss.st.com>
9
10 title: STMicroelectronics STM32 USART
11
12 properties:
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
76 allOf:
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
105 required:
106   - compatible
107   - reg
108   - interrupts
109   - clocks
110
111 unevaluatedProperties: false
112
113 examples:
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 ...