Merge tag 'for-linus-5.13-1' of git://github.com/cminyard/linux-ipmi
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / serial / samsung_uart.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/serial/samsung_uart.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Samsung S3C, S5P, Exynos, and S5L (Apple SoC) SoC UART Controller
8
9 maintainers:
10   - Krzysztof Kozlowski <krzk@kernel.org>
11   - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12
13 description: |+
14   Each Samsung UART should have an alias correctly numbered in the "aliases"
15   node, according to serialN format, where N is the port number (non-negative
16   decimal integer) as specified by User's Manual of respective SoC.
17
18 properties:
19   compatible:
20     items:
21       - enum:
22           - apple,s5l-uart
23           - samsung,s3c2410-uart
24           - samsung,s3c2412-uart
25           - samsung,s3c2440-uart
26           - samsung,s3c6400-uart
27           - samsung,s5pv210-uart
28           - samsung,exynos4210-uart
29
30   reg:
31     maxItems: 1
32
33   reg-io-width:
34     description: |
35       The size (in bytes) of the IO accesses that should be performed
36       on the device.
37     $ref: /schemas/types.yaml#/definitions/uint32
38     enum: [ 1, 4 ]
39
40   clocks:
41     minItems: 2
42     maxItems: 5
43
44   clock-names:
45     description: N = 0 is allowed for SoCs without internal baud clock mux.
46     minItems: 2
47     maxItems: 5
48     items:
49       - const: uart
50       - pattern: '^clk_uart_baud[0-3]$'
51       - pattern: '^clk_uart_baud[0-3]$'
52       - pattern: '^clk_uart_baud[0-3]$'
53       - pattern: '^clk_uart_baud[0-3]$'
54
55   dmas:
56     items:
57       - description: DMA controller phandle and request line for RX
58       - description: DMA controller phandle and request line for TX
59
60   dma-names:
61     items:
62       - const: rx
63       - const: tx
64
65   interrupts:
66     description: RX interrupt and optionally TX interrupt.
67     minItems: 1
68     maxItems: 2
69
70   samsung,uart-fifosize:
71     description: The fifo size supported by the UART channel.
72     $ref: /schemas/types.yaml#/definitions/uint32
73     enum: [16, 64, 256]
74
75 required:
76   - compatible
77   - clocks
78   - clock-names
79   - interrupts
80   - reg
81
82 unevaluatedProperties: false
83
84 allOf:
85   - $ref: /schemas/serial.yaml#
86
87   - if:
88       properties:
89         compatible:
90           contains:
91             enum:
92               - samsung,s3c2410-uart
93               - samsung,s5pv210-uart
94     then:
95       properties:
96         clocks:
97           minItems: 2
98           maxItems: 3
99         clock-names:
100           minItems: 2
101           maxItems: 3
102           items:
103             - const: uart
104             - pattern: '^clk_uart_baud[0-1]$'
105             - pattern: '^clk_uart_baud[0-1]$'
106
107   - if:
108       properties:
109         compatible:
110           contains:
111             enum:
112               - apple,s5l-uart
113               - samsung,exynos4210-uart
114     then:
115       properties:
116         clocks:
117           minItems: 2
118           maxItems: 2
119         clock-names:
120           minItems: 2
121           maxItems: 2
122           items:
123             - const: uart
124             - const: clk_uart_baud0
125
126 examples:
127   - |
128     #include <dt-bindings/clock/samsung,s3c64xx-clock.h>
129
130     uart0: serial@7f005000 {
131         compatible = "samsung,s3c6400-uart";
132         reg = <0x7f005000 0x100>;
133         interrupt-parent = <&vic1>;
134         interrupts = <5>;
135         clock-names = "uart", "clk_uart_baud2",
136                       "clk_uart_baud3";
137         clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>,
138                  <&clocks SCLK_UART>;
139         samsung,uart-fifosize = <16>;
140     };