# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/mailbox/microchip,sbi-ipc.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Microchip Inter-processor communication (IPC) mailbox controller maintainers: - Valentina Fernandez description: The Microchip Inter-processor Communication (IPC) facilitates message passing between processors using an interrupt signaling mechanism. properties: compatible: oneOf: - description: Intended for use by software running in supervisor privileged mode (s-mode). This SBI interface is compatible with the Mi-V Inter-hart Communication (IHC) IP. const: microchip,sbi-ipc - description: Intended for use by the SBI implementation in machine mode (m-mode), this compatible string is for the MIV_IHC Soft-IP. const: microchip,miv-ihc-rtl-v2 reg: maxItems: 1 interrupts: minItems: 1 maxItems: 5 interrupt-names: minItems: 1 maxItems: 5 items: enum: - hart-0 - hart-1 - hart-2 - hart-3 - hart-4 - hart-5 "#mbox-cells": description: > For "microchip,sbi-ipc", the cell represents the global "logical" channel IDs. The meaning of channel IDs are platform firmware dependent. For "microchip,miv-ihc-rtl-v2", the cell represents the physical channel and does not vary based on the platform firmware. const: 1 microchip,ihc-chan-disabled-mask: description: > Represents the enable/disable state of the bi-directional IHC channels within the MIV-IHC IP configuration. A bit set to '1' indicates that the corresponding channel is disabled, and any read or write operations to that channel will return zero. A bit set to '0' indicates that the corresponding channel is enabled and will be accessible through its dedicated address range registers. The actual enable/disable state of each channel is determined by the IP block’s configuration. $ref: /schemas/types.yaml#/definitions/uint16 maximum: 0x7fff default: 0 required: - compatible - interrupts - interrupt-names - "#mbox-cells" allOf: - if: properties: compatible: contains: const: microchip,sbi-ipc then: properties: reg: not: {} description: The 'microchip,sbi-ipc' operates in a programming model that does not require memory-mapped I/O (MMIO) registers since it uses SBI ecalls provided by the m-mode/firmware SBI implementation to access hardware registers. microchip,ihc-chan-disabled-mask: false else: required: - reg - microchip,ihc-chan-disabled-mask additionalProperties: false examples: - | mailbox { compatible = "microchip,sbi-ipc"; interrupt-parent = <&plic>; interrupts = <180>, <179>, <178>; interrupt-names = "hart-1", "hart-2", "hart-3"; #mbox-cells = <1>; }; - | mailbox@50000000 { compatible = "microchip,miv-ihc-rtl-v2"; microchip,ihc-chan-disabled-mask = /bits/ 16 <0>; reg = <0x50000000 0x1c000>; interrupt-parent = <&plic>; interrupts = <180>, <179>, <178>; interrupt-names = "hart-1", "hart-2", "hart-3"; #mbox-cells = <1>; };