From nobody Tue Apr 7 01:03:22 2026 Received: from mail.zeus03.de (zeus03.de [194.117.254.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC61B3DBD78 for ; Thu, 2 Apr 2026 11:27:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.117.254.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775129277; cv=none; b=IlEUisNGOjdVXaMcfeDMrtu0S3Lw5VNnDn19EGmt2tXP3sQjqEb/c+Qo2lwoEIYSuLxqygVUcp416uEeb3T7gC0pcXL/7vA2heryw3Fh7cLHZ4REWSjtLFu5QY1T9PkxhD9MPwZymB4TzC1C/yw4ynF3K0ucvQ0w1oWW95pDZNs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775129277; c=relaxed/simple; bh=T9p3aJZIONmt1w+3RcK0dmLMQc6A1J6Nl8YM/mmzfgE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lPimwFUZXUMz/082aB/YoH1YTmFKIZ2+CqvCmOw/jI90Hu+RFGfh/Bzprr1xqyQL00ZW7c/d1Y1QURUbNxRVn3WjUPwEpnkt4ZJxOLw06VjqeWYsKU6DNIRA7b/4d8yaTko4nEc3KnUn2iJycoJWrtfEJH854D3xFBdOU29QWyY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com; spf=pass smtp.mailfrom=sang-engineering.com; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b=NE/Uu0Mx; arc=none smtp.client-ip=194.117.254.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b="NE/Uu0Mx" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= sang-engineering.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; s=k1; bh=1zF6qO9ByDLCq7YhJcjUTAse1EQmfYIR8iItHXNCU64=; b=NE/Uu0 Mx2lgu/jlREkdSTjh4lRtEsuxdQwwbDKFkIX0fwQn1fZL6SG/BhdBwdLkSNFktAg flKC4e0S9cz6wO/CWhruNt8eEqMRx19WN3q/MCZXki44PUw1TzR6hafCr4LHAvWC oV4VB/0HShIXkKjEzVHp+p6xTabFRsFTZ9k1FW5tgdC5X73jQgmrwXimsDDzchXg JWHZQZ6stQanYZEyJXGeSQhbe9VBpaLmQJ0Q+jkhzc4Stnmr8kbIoH5WQxb/ptCa zE9s/7aOJSda1VgA0P+bylPcLpBSKozqeyLoV/lvaIj9zroKw6zali9+NtjpTuKt voL1AgW+rZYRwwRw== Received: (qmail 2479138 invoked from network); 2 Apr 2026 13:27:40 +0200 Received: by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 2 Apr 2026 13:27:40 +0200 X-UD-Smtp-Session: l3s3148p1@sBv9fHhOxlpUhsJN From: Wolfram Sang To: linux-renesas-soc@vger.kernel.org Cc: Krzysztof Kozlowski , Marek Vasut , linux-kernel@vger.kernel.org, Wolfram Sang , Krzysztof Kozlowski , Geert Uytterhoeven , Magnus Damm , Rob Herring , Conor Dooley , devicetree@vger.kernel.org Subject: [PATCH v4 1/3] dt-bindings: soc: renesas: Document MFIS IP core Date: Thu, 2 Apr 2026 13:27:05 +0200 Message-ID: <20260402112709.13002-2-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260402112709.13002-1-wsa+renesas@sang-engineering.com> References: <20260402112709.13002-1-wsa+renesas@sang-engineering.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Document the Renesas Multifunctional Interface (MFIS) as found on the Renesas R-Car X5H (r8a78000) SoC. MFIS includes features like Mailbox/HW Spinlock/Product Register/Error Injection/Error Detection and the likes. Family-compatible values are not introduced here because MFIS is usually very different per SoC. Signed-off-by: Wolfram Sang Reviewed-by: Krzysztof Kozlowski Reviewed-by: Geert Uytterhoeven --- Changes since v3: * dropped superfluous constraints (Thanks, Geert!) * added tags from Krzysztof and Geert (Thanks!) .../soc/renesas/renesas,r8a78000-mfis.yaml | 187 ++++++++++++++++++ .../dt-bindings/soc/renesas,r8a78000-mfis.h | 28 +++ 2 files changed, 215 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/renesas/renesas,r= 8a78000-mfis.yaml create mode 100644 include/dt-bindings/soc/renesas,r8a78000-mfis.h diff --git a/Documentation/devicetree/bindings/soc/renesas/renesas,r8a78000= -mfis.yaml b/Documentation/devicetree/bindings/soc/renesas/renesas,r8a78000= -mfis.yaml new file mode 100644 index 000000000000..eef8c0a59e9c --- /dev/null +++ b/Documentation/devicetree/bindings/soc/renesas/renesas,r8a78000-mfis.y= aml @@ -0,0 +1,187 @@ +# 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 functional= ity + like mailboxes, hardware spinlocks, product identification, error inject= ion, + error detection and such. Parts of it can be used for communication betw= een + 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,r8a78000-mfis # R-Car X5H (AP<->AP, with PRR) + - renesas,r8a78000-mfis-scp # R-Car X5H (AP<->SCP, without PRR) + + reg: + maxItems: 2 + + reg-names: + items: + - const: common + - const: mboxes + + interrupts: + minItems: 32 + maxItems: 128 + description: + The interrupts raised by the remote doorbells. + + interrupt-names: + minItems: 32 + 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 documentati= on + of the SoC. The second cell may specify flags as described in the fi= le + . + +allOf: + - if: + properties: + compatible: + contains: + const: renesas,r8a78000-mfis + then: + properties: + interrupts: + minItems: 128 + interrupt-names: + minItems: 128 + items: + pattern: "^ch[0-9]+[ie]$" + + - if: + properties: + compatible: + contains: + const: renesas,r8a78000-mfis-scp + then: + properties: + interrupts: + maxItems: 32 + interrupt-names: + 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 =3D "renesas,r8a78000-mfis"; + reg =3D <0x189e0000 0x1000>, <0x18800000 0x40000>; + reg-names =3D "common", "mboxes"; + interrupts =3D , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , , + , ; + interrupt-names =3D "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", "ch= 14e", "ch15i", "ch15e", + "ch16i", "ch16e", "ch17i", "ch17e", "ch18i", "ch= 18e", "ch19i", "ch19e", + "ch20i", "ch20e", "ch21i", "ch21e", "ch22i", "ch= 22e", "ch23i", "ch23e", + "ch24i", "ch24e", "ch25i", "ch25e", "ch26i", "ch= 26e", "ch27i", "ch27e", + "ch28i", "ch28e", "ch29i", "ch29e", "ch30i", "ch= 30e", "ch31i", "ch31e", + "ch32i", "ch32e", "ch33i", "ch33e", "ch34i", "ch= 34e", "ch35i", "ch35e", + "ch36i", "ch36e", "ch37i", "ch37e", "ch38i", "ch= 38e", "ch39i", "ch39e", + "ch40i", "ch40e", "ch41i", "ch41e", "ch42i", "ch= 42e", "ch43i", "ch43e", + "ch44i", "ch44e", "ch45i", "ch45e", "ch46i", "ch= 46e", "ch47i", "ch47e", + "ch48i", "ch48e", "ch49i", "ch49e", "ch50i", "ch= 50e", "ch51i", "ch51e", + "ch52i", "ch52e", "ch53i", "ch53e", "ch54i", "ch= 54e", "ch55i", "ch55e", + "ch56i", "ch56e", "ch57i", "ch57e", "ch58i", "ch= 58e", "ch59i", "ch59e", + "ch60i", "ch60e", "ch61i", "ch61e", "ch62i", "ch= 62e", "ch63i", "ch63e"; + #hwlock-cells =3D <1>; + #mbox-cells =3D <2>; + }; diff --git a/include/dt-bindings/soc/renesas,r8a78000-mfis.h b/include/dt-b= indings/soc/renesas,r8a78000-mfis.h new file mode 100644 index 000000000000..52e17fea1a03 --- /dev/null +++ b/include/dt-bindings/soc/renesas,r8a78000-mfis.h @@ -0,0 +1,28 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +#ifndef _DT_BINDINGS_SOC_RENESAS_R8A78000_MFIS_H +#define _DT_BINDINGS_SOC_RENESAS_R8A78000_MFIS_H + +/* + * Constants for the second mbox-cell of the Renesas MFIS IP core. To be t= reated + * as bit flags which can be ORed. + */ + +/* + * MFIS HW design before r8a78001 requires a channel to be marked as either + * TX or RX. + */ +#define MFIS_CHANNEL_TX (0 << 0) +#define MFIS_CHANNEL_RX (1 << 0) + +/* + * MFIS variants before r8a78001 work with pairs of IICR and EICR register= s. + * Usually, it is specified in the datasheets which of the two a specific = core + * should use. Then, it does not need extra description in DT. For plain M= FIS + * of r8a78000, this is selectable, though. According to the system design= and + * the firmware in use, these channels need to be marked. This is not need= ed + * with other versions of the MFIS, not even with MFIS-SCP of r8a78000. + */ +#define MFIS_CHANNEL_IICR (0 << 1) +#define MFIS_CHANNEL_EICR (1 << 1) + +#endif --=20 2.51.0