1*2846c905SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*2846c905SEmmanuel Vadot%YAML 1.2 3*2846c905SEmmanuel Vadot--- 4*2846c905SEmmanuel Vadot$id: http://devicetree.org/schemas/mailbox/microchip,sbi-ipc.yaml# 5*2846c905SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*2846c905SEmmanuel Vadot 7*2846c905SEmmanuel Vadottitle: Microchip Inter-processor communication (IPC) mailbox controller 8*2846c905SEmmanuel Vadot 9*2846c905SEmmanuel Vadotmaintainers: 10*2846c905SEmmanuel Vadot - Valentina Fernandez <valentina.fernandezalanis@microchip.com> 11*2846c905SEmmanuel Vadot 12*2846c905SEmmanuel Vadotdescription: 13*2846c905SEmmanuel Vadot The Microchip Inter-processor Communication (IPC) facilitates 14*2846c905SEmmanuel Vadot message passing between processors using an interrupt signaling 15*2846c905SEmmanuel Vadot mechanism. 16*2846c905SEmmanuel Vadot 17*2846c905SEmmanuel Vadotproperties: 18*2846c905SEmmanuel Vadot compatible: 19*2846c905SEmmanuel Vadot oneOf: 20*2846c905SEmmanuel Vadot - description: 21*2846c905SEmmanuel Vadot Intended for use by software running in supervisor privileged 22*2846c905SEmmanuel Vadot mode (s-mode). This SBI interface is compatible with the Mi-V 23*2846c905SEmmanuel Vadot Inter-hart Communication (IHC) IP. 24*2846c905SEmmanuel Vadot const: microchip,sbi-ipc 25*2846c905SEmmanuel Vadot 26*2846c905SEmmanuel Vadot - description: 27*2846c905SEmmanuel Vadot Intended for use by the SBI implementation in machine mode 28*2846c905SEmmanuel Vadot (m-mode), this compatible string is for the MIV_IHC Soft-IP. 29*2846c905SEmmanuel Vadot const: microchip,miv-ihc-rtl-v2 30*2846c905SEmmanuel Vadot 31*2846c905SEmmanuel Vadot reg: 32*2846c905SEmmanuel Vadot maxItems: 1 33*2846c905SEmmanuel Vadot 34*2846c905SEmmanuel Vadot interrupts: 35*2846c905SEmmanuel Vadot minItems: 1 36*2846c905SEmmanuel Vadot maxItems: 5 37*2846c905SEmmanuel Vadot 38*2846c905SEmmanuel Vadot interrupt-names: 39*2846c905SEmmanuel Vadot minItems: 1 40*2846c905SEmmanuel Vadot maxItems: 5 41*2846c905SEmmanuel Vadot items: 42*2846c905SEmmanuel Vadot enum: 43*2846c905SEmmanuel Vadot - hart-0 44*2846c905SEmmanuel Vadot - hart-1 45*2846c905SEmmanuel Vadot - hart-2 46*2846c905SEmmanuel Vadot - hart-3 47*2846c905SEmmanuel Vadot - hart-4 48*2846c905SEmmanuel Vadot - hart-5 49*2846c905SEmmanuel Vadot 50*2846c905SEmmanuel Vadot "#mbox-cells": 51*2846c905SEmmanuel Vadot description: > 52*2846c905SEmmanuel Vadot For "microchip,sbi-ipc", the cell represents the global "logical" 53*2846c905SEmmanuel Vadot channel IDs. The meaning of channel IDs are platform firmware dependent. 54*2846c905SEmmanuel Vadot 55*2846c905SEmmanuel Vadot For "microchip,miv-ihc-rtl-v2", the cell represents the physical 56*2846c905SEmmanuel Vadot channel and does not vary based on the platform firmware. 57*2846c905SEmmanuel Vadot const: 1 58*2846c905SEmmanuel Vadot 59*2846c905SEmmanuel Vadot microchip,ihc-chan-disabled-mask: 60*2846c905SEmmanuel Vadot description: > 61*2846c905SEmmanuel Vadot Represents the enable/disable state of the bi-directional IHC 62*2846c905SEmmanuel Vadot channels within the MIV-IHC IP configuration. 63*2846c905SEmmanuel Vadot 64*2846c905SEmmanuel Vadot A bit set to '1' indicates that the corresponding channel is disabled, 65*2846c905SEmmanuel Vadot and any read or write operations to that channel will return zero. 66*2846c905SEmmanuel Vadot 67*2846c905SEmmanuel Vadot A bit set to '0' indicates that the corresponding channel is enabled 68*2846c905SEmmanuel Vadot and will be accessible through its dedicated address range registers. 69*2846c905SEmmanuel Vadot 70*2846c905SEmmanuel Vadot The actual enable/disable state of each channel is determined by the 71*2846c905SEmmanuel Vadot IP block’s configuration. 72*2846c905SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint16 73*2846c905SEmmanuel Vadot maximum: 0x7fff 74*2846c905SEmmanuel Vadot default: 0 75*2846c905SEmmanuel Vadot 76*2846c905SEmmanuel Vadotrequired: 77*2846c905SEmmanuel Vadot - compatible 78*2846c905SEmmanuel Vadot - interrupts 79*2846c905SEmmanuel Vadot - interrupt-names 80*2846c905SEmmanuel Vadot - "#mbox-cells" 81*2846c905SEmmanuel Vadot 82*2846c905SEmmanuel VadotallOf: 83*2846c905SEmmanuel Vadot - if: 84*2846c905SEmmanuel Vadot properties: 85*2846c905SEmmanuel Vadot compatible: 86*2846c905SEmmanuel Vadot contains: 87*2846c905SEmmanuel Vadot const: microchip,sbi-ipc 88*2846c905SEmmanuel Vadot then: 89*2846c905SEmmanuel Vadot properties: 90*2846c905SEmmanuel Vadot reg: 91*2846c905SEmmanuel Vadot not: {} 92*2846c905SEmmanuel Vadot description: 93*2846c905SEmmanuel Vadot The 'microchip,sbi-ipc' operates in a programming model 94*2846c905SEmmanuel Vadot that does not require memory-mapped I/O (MMIO) registers 95*2846c905SEmmanuel Vadot since it uses SBI ecalls provided by the m-mode/firmware 96*2846c905SEmmanuel Vadot SBI implementation to access hardware registers. 97*2846c905SEmmanuel Vadot microchip,ihc-chan-disabled-mask: false 98*2846c905SEmmanuel Vadot else: 99*2846c905SEmmanuel Vadot required: 100*2846c905SEmmanuel Vadot - reg 101*2846c905SEmmanuel Vadot - microchip,ihc-chan-disabled-mask 102*2846c905SEmmanuel Vadot 103*2846c905SEmmanuel VadotadditionalProperties: false 104*2846c905SEmmanuel Vadot 105*2846c905SEmmanuel Vadotexamples: 106*2846c905SEmmanuel Vadot - | 107*2846c905SEmmanuel Vadot mailbox { 108*2846c905SEmmanuel Vadot compatible = "microchip,sbi-ipc"; 109*2846c905SEmmanuel Vadot interrupt-parent = <&plic>; 110*2846c905SEmmanuel Vadot interrupts = <180>, <179>, <178>; 111*2846c905SEmmanuel Vadot interrupt-names = "hart-1", "hart-2", "hart-3"; 112*2846c905SEmmanuel Vadot #mbox-cells = <1>; 113*2846c905SEmmanuel Vadot }; 114*2846c905SEmmanuel Vadot - | 115*2846c905SEmmanuel Vadot mailbox@50000000 { 116*2846c905SEmmanuel Vadot compatible = "microchip,miv-ihc-rtl-v2"; 117*2846c905SEmmanuel Vadot microchip,ihc-chan-disabled-mask = /bits/ 16 <0>; 118*2846c905SEmmanuel Vadot reg = <0x50000000 0x1c000>; 119*2846c905SEmmanuel Vadot interrupt-parent = <&plic>; 120*2846c905SEmmanuel Vadot interrupts = <180>, <179>, <178>; 121*2846c905SEmmanuel Vadot interrupt-names = "hart-1", "hart-2", "hart-3"; 122*2846c905SEmmanuel Vadot #mbox-cells = <1>; 123*2846c905SEmmanuel Vadot }; 124