Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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
7title: Samsung S3C, S5P, Exynos, and S5L (Apple SoC) SoC UART Controller
8
9maintainers:
10 - Krzysztof Kozlowski <krzk@kernel.org>
11 - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12
13description: |+
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
18properties:
19 compatible:
20 oneOf:
21 - enum:
22 - apple,s5l-uart
23 - axis,artpec8-uart
24 - google,gs101-uart
25 - samsung,s3c6400-uart
26 - samsung,s5pv210-uart
27 - samsung,exynos4210-uart
28 - samsung,exynos5433-uart
29 - samsung,exynos850-uart
30 - samsung,exynos8895-uart
31 - items:
32 - enum:
33 - samsung,exynos7-uart
34 - tesla,fsd-uart
35 - const: samsung,exynos4210-uart
36 - items:
37 - enum:
38 - samsung,exynos7885-uart
39 - const: samsung,exynos5433-uart
40 - items:
41 - enum:
42 - samsung,exynosautov9-uart
43 - samsung,exynosautov920-uart
44 - const: samsung,exynos850-uart
45
46 reg:
47 maxItems: 1
48
49 reg-io-width:
50 description: |
51 The size (in bytes) of the IO accesses that should be performed
52 on the device.
53 enum: [ 1, 4 ]
54
55 clocks:
56 minItems: 2
57 maxItems: 5
58
59 clock-names:
60 minItems: 2
61 maxItems: 5
62
63 dmas:
64 items:
65 - description: DMA controller phandle and request line for RX
66 - description: DMA controller phandle and request line for TX
67
68 dma-names:
69 items:
70 - const: rx
71 - const: tx
72
73 interrupts:
74 description: RX interrupt and optionally TX interrupt.
75 minItems: 1
76 maxItems: 2
77
78 power-domains:
79 maxItems: 1
80
81 samsung,uart-fifosize:
82 description: The fifo size supported by the UART channel.
83 $ref: /schemas/types.yaml#/definitions/uint32
84 enum: [16, 64, 256]
85
86required:
87 - compatible
88 - clocks
89 - clock-names
90 - interrupts
91 - reg
92
93allOf:
94 - $ref: serial.yaml#
95
96 - if:
97 properties:
98 compatible:
99 contains:
100 enum:
101 - samsung,s3c6400-uart
102 then:
103 properties:
104 clocks:
105 minItems: 3
106 maxItems: 3
107
108 clock-names:
109 items:
110 - const: uart
111 - const: clk_uart_baud2
112 - const: clk_uart_baud3
113
114 else:
115 properties:
116 clock-names:
117 minItems: 2
118 items:
119 - const: uart
120 - const: clk_uart_baud0
121 - const: clk_uart_baud1
122 - const: clk_uart_baud2
123 - const: clk_uart_baud3
124
125 - if:
126 properties:
127 compatible:
128 contains:
129 enum:
130 - samsung,s5pv210-uart
131 then:
132 properties:
133 clocks:
134 minItems: 3
135 maxItems: 3
136
137 clock-names:
138 minItems: 3
139 maxItems: 3
140
141 - if:
142 properties:
143 compatible:
144 contains:
145 enum:
146 - apple,s5l-uart
147 - axis,artpec8-uart
148 - samsung,exynos4210-uart
149 - samsung,exynos5433-uart
150 then:
151 properties:
152 clocks:
153 maxItems: 2
154
155 clock-names:
156 maxItems: 2
157
158 - if:
159 properties:
160 compatible:
161 contains:
162 enum:
163 - google,gs101-uart
164 - samsung,exynos8895-uart
165 then:
166 required:
167 - samsung,uart-fifosize
168 properties:
169 clocks:
170 maxItems: 2
171
172 clock-names:
173 maxItems: 2
174
175 - if:
176 properties:
177 compatible:
178 contains:
179 enum:
180 - google,gs101-uart
181 then:
182 properties:
183 reg-io-width: false
184
185unevaluatedProperties: false
186
187examples:
188 - |
189 #include <dt-bindings/clock/samsung,s3c64xx-clock.h>
190
191 uart0: serial@7f005000 {
192 compatible = "samsung,s3c6400-uart";
193 reg = <0x7f005000 0x100>;
194 interrupt-parent = <&vic1>;
195 interrupts = <5>;
196 clock-names = "uart", "clk_uart_baud2",
197 "clk_uart_baud3";
198 clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>,
199 <&clocks SCLK_UART>;
200 samsung,uart-fifosize = <16>;
201 };
202 - |
203 #include <dt-bindings/clock/google,gs101.h>
204 #include <dt-bindings/interrupt-controller/arm-gic.h>
205 #include <dt-bindings/interrupt-controller/irq.h>
206
207 serial_0: serial@10a00000 {
208 compatible = "google,gs101-uart";
209 reg = <0x10a00000 0xc0>;
210 clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_0>,
211 <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_0>;
212 clock-names = "uart", "clk_uart_baud0";
213 interrupts = <GIC_SPI 634 IRQ_TYPE_LEVEL_HIGH 0>;
214 pinctrl-0 = <&uart0_bus>;
215 pinctrl-names = "default";
216 samsung,uart-fifosize = <256>;
217 };