1# 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...
100