# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/renesas/renesas,r8a78000-mfis.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Renesas MFIS (Multifunctional Interface) controller maintainers: - Wolfram Sang description: The Renesas Multifunctional Interface (MFIS) provides various functionality like mailboxes, hardware spinlocks, product identification, error injection, error detection and such. Parts of it can be used for communication between different CPU cores. Those cores can be in various domains like AP, RT, or SCP. Often multiple domain-specific MFIS instances exist in one SoC. properties: compatible: enum: - renesas,r8a779g0-mfis # R-Car V4H - renesas,r8a779h0-mfis # R-Car V4M - renesas,r8a78000-mfis # R-Car X5H (AP<->AP, with PRR) - renesas,r8a78000-mfis-scp # R-Car X5H (AP<->SCP, without PRR) reg: minItems: 1 maxItems: 2 reg-names: minItems: 1 items: - const: common - const: mboxes interrupts: minItems: 12 maxItems: 128 description: The interrupts raised by the remote doorbells. interrupt-names: minItems: 12 maxItems: 128 description: An interrupt name is constructed with the prefix 'ch'. Then, the channel number as specified in the documentation of the SoC. Finally, the letter 'i' if the interrupt is raised by the IICR register. Or 'e' if it is raised by the EICR register. "#hwlock-cells": const: 1 "#mbox-cells": const: 2 description: The first cell is the channel number as specified in the documentation of the SoC. The second cell may specify flags as described in the file . allOf: - if: properties: compatible: contains: enum: - renesas,r8a779g0-mfis - renesas,r8a779h0-mfis then: properties: reg: maxItems: 1 reg-names: maxItems: 1 interrupts: maxItems: 12 interrupt-names: maxItems: 12 items: pattern: "^ch[0-9]+e$" - if: properties: compatible: contains: const: renesas,r8a78000-mfis then: properties: reg: minItems: 2 reg-names: minItems: 2 interrupts: minItems: 128 interrupt-names: minItems: 128 items: pattern: "^ch[0-9]+[ie]$" - if: properties: compatible: contains: const: renesas,r8a78000-mfis-scp then: properties: reg: minItems: 2 reg-names: minItems: 2 interrupts: minItems: 32 maxItems: 32 interrupt-names: minItems: 32 maxItems: 32 items: pattern: "^ch[0-9]+i$" required: - compatible - reg - reg-names - interrupts - interrupt-names - "#hwlock-cells" - "#mbox-cells" additionalProperties: false examples: - | #include system-controller@189e0000 { compatible = "renesas,r8a78000-mfis"; reg = <0x189e0000 0x1000>, <0x18800000 0x40000>; reg-names = "common", "mboxes"; interrupts = , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; interrupt-names = "ch0i", "ch0e", "ch1i", "ch1e", "ch2i", "ch2e", "ch3i", "ch3e", "ch4i", "ch4e", "ch5i", "ch5e", "ch6i", "ch6e", "ch7i", "ch7e", "ch8i", "ch8e", "ch9i", "ch9e", "ch10i", "ch10e", "ch11i", "ch11e", "ch12i", "ch12e", "ch13i", "ch13e", "ch14i", "ch14e", "ch15i", "ch15e", "ch16i", "ch16e", "ch17i", "ch17e", "ch18i", "ch18e", "ch19i", "ch19e", "ch20i", "ch20e", "ch21i", "ch21e", "ch22i", "ch22e", "ch23i", "ch23e", "ch24i", "ch24e", "ch25i", "ch25e", "ch26i", "ch26e", "ch27i", "ch27e", "ch28i", "ch28e", "ch29i", "ch29e", "ch30i", "ch30e", "ch31i", "ch31e", "ch32i", "ch32e", "ch33i", "ch33e", "ch34i", "ch34e", "ch35i", "ch35e", "ch36i", "ch36e", "ch37i", "ch37e", "ch38i", "ch38e", "ch39i", "ch39e", "ch40i", "ch40e", "ch41i", "ch41e", "ch42i", "ch42e", "ch43i", "ch43e", "ch44i", "ch44e", "ch45i", "ch45e", "ch46i", "ch46e", "ch47i", "ch47e", "ch48i", "ch48e", "ch49i", "ch49e", "ch50i", "ch50e", "ch51i", "ch51e", "ch52i", "ch52e", "ch53i", "ch53e", "ch54i", "ch54e", "ch55i", "ch55e", "ch56i", "ch56e", "ch57i", "ch57e", "ch58i", "ch58e", "ch59i", "ch59e", "ch60i", "ch60e", "ch61i", "ch61e", "ch62i", "ch62e", "ch63i", "ch63e"; #hwlock-cells = <1>; #mbox-cells = <2>; };