xref: /linux/Documentation/devicetree/bindings/firmware/cznic,turris-omnia-mcu.yaml (revision 55d0969c451159cff86949b38c39171cab962069)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/firmware/cznic,turris-omnia-mcu.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: CZ.NIC's Turris Omnia MCU
8
9maintainers:
10  - Marek Behún <kabel@kernel.org>
11
12description:
13  The MCU on Turris Omnia acts as a system controller providing additional
14  GPIOs, interrupts, watchdog, system power off and wakeup configuration.
15
16properties:
17  compatible:
18    const: cznic,turris-omnia-mcu
19
20  reg:
21    description: MCU I2C slave address
22    maxItems: 1
23
24  interrupts:
25    maxItems: 1
26
27  interrupt-controller: true
28
29  '#interrupt-cells':
30    const: 2
31    description: |
32      The first cell specifies the interrupt number (0 to 63), the second cell
33      specifies interrupt type (which can be one of IRQ_TYPE_EDGE_RISING,
34      IRQ_TYPE_EDGE_FALLING or IRQ_TYPE_EDGE_BOTH).
35      The interrupt numbers correspond sequentially to GPIO numbers, taking the
36      GPIO banks into account:
37        IRQ number   GPIO bank   GPIO pin within bank
38           0 - 15      0           0 - 15
39          16 - 47      1           0 - 31
40          48 - 63      2           0 - 15
41      There are several exceptions:
42        IRQ number   meaning
43          11           LED panel brightness changed by button press
44          13           TRNG entropy ready
45          14           ECDSA message signature computation done
46
47  gpio-controller: true
48
49  '#gpio-cells':
50    const: 3
51    description:
52      The first cell is bank number (0, 1 or 2), the second cell is pin number
53      within the bank (0 to 15 for banks 0 and 2, 0 to 31 for bank 1), and the
54      third cell specifies consumer flags.
55
56required:
57  - compatible
58  - reg
59  - interrupts
60  - interrupt-controller
61  - gpio-controller
62
63additionalProperties: false
64
65examples:
66  - |
67    #include <dt-bindings/interrupt-controller/irq.h>
68
69    i2c {
70        #address-cells = <1>;
71        #size-cells = <0>;
72
73        system-controller@2a {
74            compatible = "cznic,turris-omnia-mcu";
75            reg = <0x2a>;
76
77            interrupt-parent = <&gpio1>;
78            interrupts = <11 IRQ_TYPE_NONE>;
79
80            gpio-controller;
81            #gpio-cells = <3>;
82
83            interrupt-controller;
84            #interrupt-cells = <2>;
85        };
86    };
87