Merge branch 'core-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / serial / pl011.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/serial/pl011.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: ARM AMBA Primecell PL011 serial UART
8
9 maintainers:
10   - Rob Herring <robh@kernel.org>
11
12 allOf:
13   - $ref: /schemas/serial.yaml#
14
15 # Need a custom select here or 'arm,primecell' will match on lots of nodes
16 select:
17   properties:
18     compatible:
19       contains:
20         enum:
21           - arm,pl011
22           - zte,zx296702-uart
23   required:
24     - compatible
25
26 properties:
27   compatible:
28     oneOf:
29       - items:
30           - const: arm,pl011
31           - const: arm,primecell
32       - items:
33           - const: zte,zx296702-uart
34           - const: arm,primecell
35
36   reg:
37     maxItems: 1
38
39   interrupts:
40     maxItems: 1
41
42   pinctrl-0: true
43   pinctrl-1: true
44
45   pinctrl-names:
46     description:
47       When present, must have one state named "default",
48       and may contain a second name named "sleep". The former
49       state sets up pins for ordinary operation whereas
50       the latter state will put the associated pins to sleep
51       when the UART is unused
52     minItems: 1
53     items:
54       - const: default
55       - const: sleep
56
57   clocks:
58     description:
59       When present, the first clock listed must correspond to
60       the clock named UARTCLK on the IP block, i.e. the clock
61       to the external serial line, whereas the second clock
62       must correspond to the PCLK clocking the internal logic
63       of the block. Just listing one clock (the first one) is
64       deprecated.
65     maxItems: 2
66
67   clock-names:
68     items:
69       - const: uartclk
70       - const: apb_pclk
71
72   dmas:
73     minItems: 1
74     maxItems: 2
75
76   dma-names:
77     minItems: 1
78     items:
79       - const: rx
80       - const: tx
81
82   auto-poll:
83     description:
84       Enables polling when using RX DMA.
85     type: boolean
86
87   poll-rate-ms:
88     description:
89       Rate at which poll occurs when auto-poll is set.
90       default 100ms.
91     allOf:
92       - $ref: /schemas/types.yaml#/definitions/uint32
93       - default: 100
94
95   poll-timeout-ms:
96     description:
97       Poll timeout when auto-poll is set, default
98       3000ms.
99     allOf:
100       - $ref: /schemas/types.yaml#/definitions/uint32
101       - default: 3000
102
103 required:
104   - compatible
105   - reg
106   - interrupts
107
108 dependencies:
109   poll-rate-ms: [ auto-poll ]
110   poll-timeout-ms: [ auto-poll ]
111
112 additionalProperties: false
113
114 examples:
115   - |
116     serial@80120000 {
117       compatible = "arm,pl011", "arm,primecell";
118       reg = <0x80120000 0x1000>;
119       interrupts = <0 11 4>;
120       dmas = <&dma 13 0 0x2>, <&dma 13 0 0x0>;
121       dma-names = "rx", "tx";
122       clocks = <&foo_clk>, <&bar_clk>;
123       clock-names = "uartclk", "apb_pclk";
124     };
125
126 ...