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