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