blob: 0dc6a40b63f4769ac5467f27dbc1a0c491a51d09 [file] [log] [blame]
Tom Rini6bb92fc2024-05-20 09:54:58 -06001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/atmel,sama5d2-flexcom.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Microchip Flexcom (Flexible Serial Communication Unit)
8
9maintainers:
10 - Kavyasree Kotagiri <kavyasree.kotagiri@microchip.com>
11
12description:
13 The Microchip Flexcom is just a wrapper which embeds a SPI controller,
14 an I2C controller and an USART. Only one function can be used at a
15 time and is chosen at boot time according to the device tree.
16
17properties:
18 compatible:
19 oneOf:
20 - const: atmel,sama5d2-flexcom
21 - items:
22 - const: microchip,sam9x7-flexcom
23 - const: atmel,sama5d2-flexcom
24 - items:
25 - const: microchip,sama7g5-flexcom
26 - const: atmel,sama5d2-flexcom
27
28
29 reg:
30 maxItems: 1
31
32 clocks:
33 maxItems: 1
34
35 "#address-cells":
36 const: 1
37
38 "#size-cells":
39 const: 1
40
41 ranges:
42 description:
43 One range for the full I/O register region. (including USART,
44 TWI and SPI registers).
45 items:
46 maxItems: 3
47
48 atmel,flexcom-mode:
49 description: |
50 Specifies the flexcom mode as follows:
51 1: USART
52 2: SPI
53 3: I2C.
54 $ref: /schemas/types.yaml#/definitions/uint32
55 enum: [1, 2, 3]
56
57patternProperties:
58 "^serial@[0-9a-f]+$":
59 type: object
60 description:
61 Child node describing USART. See atmel-usart.txt for details
62 of USART bindings.
63
64 "^spi@[0-9a-f]+$":
65 type: object
66 description:
67 Child node describing SPI. See ../spi/spi_atmel.txt for details
68 of SPI bindings.
69
70 "^i2c@[0-9a-f]+$":
71 $ref: /schemas/i2c/atmel,at91sam-i2c.yaml
72 description:
73 Child node describing I2C.
74
75required:
76 - compatible
77 - reg
78 - clocks
79 - "#address-cells"
80 - "#size-cells"
81 - ranges
82 - atmel,flexcom-mode
83
84additionalProperties: false
85
86examples:
87 - |
88 #include <dt-bindings/interrupt-controller/arm-gic.h>
89
90 flx0: flexcom@f8034000 {
91 compatible = "atmel,sama5d2-flexcom";
92 reg = <0xf8034000 0x200>;
93 clocks = <&flx0_clk>;
94 #address-cells = <1>;
95 #size-cells = <1>;
96 ranges = <0x0 0xf8034000 0x800>;
97 atmel,flexcom-mode = <2>;
98 };
99...