1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: "http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml#" 5$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 7title: Xilinx IPI(Inter Processor Interrupt) mailbox controller 8 9description: | 10 The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage 11 messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI 12 agent owns registers used for notification and buffers for message. 13 14 +-------------------------------------+ 15 | Xilinx ZynqMP IPI Controller | 16 +-------------------------------------+ 17 +--------------------------------------------------+ 18 TF-A | | 19 | | 20 | | 21 +--------------------------+ | 22 | | 23 | | 24 +--------------------------------------------------+ 25 +------------------------------------------+ 26 | +----------------+ +----------------+ | 27 Hardware | | IPI Agent | | IPI Buffers | | 28 | | Registers | | | | 29 | | | | | | 30 | +----------------+ +----------------+ | 31 | | 32 | Xilinx IPI Agent Block | 33 +------------------------------------------+ 34 35maintainers: 36 - Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com> 37 38properties: 39 compatible: 40 const: xlnx,zynqmp-ipi-mailbox 41 42 method: 43 description: | 44 The method of calling the PM-API firmware layer. 45 Permitted values are. 46 - "smc" : SMC #0, following the SMCCC 47 - "hvc" : HVC #0, following the SMCCC 48 49 $ref: /schemas/types.yaml#/definitions/string 50 enum: 51 - smc 52 - hvc 53 default: smc 54 55 '#address-cells': 56 const: 2 57 58 '#size-cells': 59 const: 2 60 61 xlnx,ipi-id: 62 description: | 63 Remote Xilinx IPI agent ID of which the mailbox is connected to. 64 $ref: /schemas/types.yaml#/definitions/uint32 65 66 interrupts: 67 maxItems: 1 68 69 ranges: true 70 71patternProperties: 72 '^mailbox@[0-9a-f]+$': 73 description: Internal ipi mailbox node 74 type: object # DT nodes are json objects 75 properties: 76 xlnx,ipi-id: 77 description: 78 Remote Xilinx IPI agent ID of which the mailbox is connected to. 79 $ref: /schemas/types.yaml#/definitions/uint32 80 81 '#mbox-cells': 82 const: 1 83 description: 84 It contains tx(0) or rx(1) channel IPI id number. 85 86 reg: 87 maxItems: 4 88 89 reg-names: 90 items: 91 - const: local_request_region 92 - const: local_response_region 93 - const: remote_request_region 94 - const: remote_response_region 95 96 required: 97 - reg 98 - reg-names 99 - "#mbox-cells" 100 101additionalProperties: false 102 103required: 104 - compatible 105 - interrupts 106 - '#address-cells' 107 - '#size-cells' 108 - xlnx,ipi-id 109 110examples: 111 - | 112 #include<dt-bindings/interrupt-controller/arm-gic.h> 113 114 amba { 115 #address-cells = <0x2>; 116 #size-cells = <0x2>; 117 zynqmp-mailbox { 118 compatible = "xlnx,zynqmp-ipi-mailbox"; 119 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 120 xlnx,ipi-id = <0>; 121 #address-cells = <2>; 122 #size-cells = <2>; 123 ranges; 124 125 mailbox: mailbox@ff9905c0 { 126 reg = <0x0 0xff9905c0 0x0 0x20>, 127 <0x0 0xff9905e0 0x0 0x20>, 128 <0x0 0xff990e80 0x0 0x20>, 129 <0x0 0xff990ea0 0x0 0x20>; 130 reg-names = "local_request_region", 131 "local_response_region", 132 "remote_request_region", 133 "remote_response_region"; 134 #mbox-cells = <1>; 135 xlnx,ipi-id = <4>; 136 }; 137 }; 138 }; 139 140... 141