Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[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 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   uart-has-rtscts: true
39
40   rx-tx-swap: true
41
42   dmas:
43     minItems: 1
44     maxItems: 2
45
46   dma-names:
47     items:
48       enum: [ rx, tx ]
49     minItems: 1
50     maxItems: 2
51
52 # cts-gpios and rts-gpios properties can be used instead of 'uart-has-rtscts'
53 # or 'st,hw-flow-ctrl' (deprecated) for making use of any gpio pins for flow
54 # control instead of dedicated pins.
55 #
56 # It should be noted that both cts-gpios/rts-gpios and 'uart-has-rtscts' or
57 # 'st,hw-flow-ctrl' (deprecated) properties cannot co-exist in a design.
58   cts-gpios: true
59   rts-gpios: true
60
61   wakeup-source: true
62
63   rs485-rts-delay: true
64   rs485-rts-active-low: true
65   linux,rs485-enabled-at-boot-time: true
66   rs485-rx-during-tx: true
67
68   rx-threshold:
69     description:
70       If value is set to 1, RX FIFO threshold is disabled.
71     enum: [1, 2, 4, 8, 12, 14, 16]
72     default: 8
73
74   tx-threshold:
75     description:
76       If value is set to 1, TX FIFO threshold is disabled.
77     enum: [1, 2, 4, 8, 12, 14, 16]
78     default: 8
79
80 allOf:
81   - $ref: rs485.yaml#
82   - $ref: serial.yaml#
83   - if:
84       required:
85         - st,hw-flow-ctrl
86     then:
87       properties:
88         cts-gpios: false
89         rts-gpios: false
90   - if:
91       properties:
92         compatible:
93           const: st,stm32-uart
94     then:
95       properties:
96         rx-tx-swap: false
97   - if:
98       properties:
99         compatible:
100           contains:
101             enum:
102               - st,stm32-uart
103               - st,stm32f7-uart
104     then:
105       properties:
106         rx-threshold: false
107         tx-threshold: false
108
109 required:
110   - compatible
111   - reg
112   - interrupts
113   - clocks
114
115 unevaluatedProperties: false
116
117 examples:
118   - |
119     #include <dt-bindings/clock/stm32mp1-clks.h>
120     usart1: serial@40011000 {
121       compatible = "st,stm32h7-uart";
122       reg = <0x40011000 0x400>;
123       interrupts = <37>;
124       clocks = <&rcc 0 164>;
125       dmas = <&dma2 2 4 0x414 0x0>,
126              <&dma2 7 4 0x414 0x0>;
127       dma-names = "rx", "tx";
128       rx-threshold = <4>;
129       tx-threshold = <4>;
130       rs485-rts-active-low;
131     };
132
133 ...