# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/firmware/cznic,turris-omnia-mcu.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: CZ.NIC's Turris Omnia MCU maintainers: - Marek BehĂșn description: The MCU on Turris Omnia acts as a system controller providing additional GPIOs, interrupts, watchdog, system power off and wakeup configuration. properties: compatible: const: cznic,turris-omnia-mcu reg: description: MCU I2C slave address maxItems: 1 interrupts: maxItems: 1 interrupt-controller: true '#interrupt-cells': const: 2 description: | The first cell specifies the interrupt number (0 to 63), the second cell specifies interrupt type (which can be one of IRQ_TYPE_EDGE_RISING, IRQ_TYPE_EDGE_FALLING or IRQ_TYPE_EDGE_BOTH). The interrupt numbers correspond sequentially to GPIO numbers, taking the GPIO banks into account: IRQ number GPIO bank GPIO pin within bank 0 - 15 0 0 - 15 16 - 47 1 0 - 31 48 - 63 2 0 - 15 There are several exceptions: IRQ number meaning 11 LED panel brightness changed by button press 13 TRNG entropy ready 14 ECDSA message signature computation done gpio-controller: true '#gpio-cells': const: 3 description: The first cell is bank number (0, 1 or 2), the second cell is pin number within the bank (0 to 15 for banks 0 and 2, 0 to 31 for bank 1), and the third cell specifies consumer flags. required: - compatible - reg - interrupts - interrupt-controller - gpio-controller additionalProperties: false examples: - | #include i2c { #address-cells = <1>; #size-cells = <0>; system-controller@2a { compatible = "cznic,turris-omnia-mcu"; reg = <0x2a>; interrupt-parent = <&gpio1>; interrupts = <11 IRQ_TYPE_NONE>; gpio-controller; #gpio-cells = <3>; interrupt-controller; #interrupt-cells = <2>; }; };