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