xref: /linux/Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml (revision e7e86d7697c6ed1dbbde18d7185c35b6967945ed)
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          - enum:
23              - microchip,sam9x7-flexcom
24              - microchip,sama7d65-flexcom
25              - microchip,sama7g5-flexcom
26          - const: atmel,sama5d2-flexcom
27
28  reg:
29    maxItems: 1
30
31  clocks:
32    maxItems: 1
33
34  "#address-cells":
35    const: 1
36
37  "#size-cells":
38    const: 1
39
40  ranges:
41    description:
42      One range for the full I/O register region. (including USART,
43      TWI and SPI registers).
44    items:
45      maxItems: 3
46
47  atmel,flexcom-mode:
48    description: |
49      Specifies the flexcom mode as follows:
50      1: USART
51      2: SPI
52      3: I2C.
53    $ref: /schemas/types.yaml#/definitions/uint32
54    enum: [1, 2, 3]
55
56patternProperties:
57  "^serial@[0-9a-f]+$":
58    type: object
59    description:
60      Child node describing USART. See atmel-usart.txt for details
61      of USART bindings.
62
63  "^spi@[0-9a-f]+$":
64    type: object
65    description:
66      Child node describing SPI. See ../spi/spi_atmel.txt for details
67      of SPI bindings.
68
69  "^i2c@[0-9a-f]+$":
70    $ref: /schemas/i2c/atmel,at91sam-i2c.yaml
71    description:
72      Child node describing I2C.
73
74required:
75  - compatible
76  - reg
77  - clocks
78  - "#address-cells"
79  - "#size-cells"
80  - ranges
81  - atmel,flexcom-mode
82
83additionalProperties: false
84
85examples:
86  - |
87    #include <dt-bindings/interrupt-controller/arm-gic.h>
88
89    flx0: flexcom@f8034000 {
90        compatible = "atmel,sama5d2-flexcom";
91        reg = <0xf8034000 0x200>;
92        clocks = <&flx0_clk>;
93        #address-cells = <1>;
94        #size-cells = <1>;
95        ranges = <0x0 0xf8034000 0x800>;
96        atmel,flexcom-mode = <2>;
97    };
98...
99