162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Xilinx IPI(Inter Processor Interrupt) mailbox controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cidescription: | 1062306a36Sopenharmony_ci The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage 1162306a36Sopenharmony_ci messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI 1262306a36Sopenharmony_ci agent owns registers used for notification and buffers for message. 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci +-------------------------------------+ 1562306a36Sopenharmony_ci | Xilinx ZynqMP IPI Controller | 1662306a36Sopenharmony_ci +-------------------------------------+ 1762306a36Sopenharmony_ci +--------------------------------------------------+ 1862306a36Sopenharmony_ci TF-A | | 1962306a36Sopenharmony_ci | | 2062306a36Sopenharmony_ci | | 2162306a36Sopenharmony_ci +--------------------------+ | 2262306a36Sopenharmony_ci | | 2362306a36Sopenharmony_ci | | 2462306a36Sopenharmony_ci +--------------------------------------------------+ 2562306a36Sopenharmony_ci +------------------------------------------+ 2662306a36Sopenharmony_ci | +----------------+ +----------------+ | 2762306a36Sopenharmony_ci Hardware | | IPI Agent | | IPI Buffers | | 2862306a36Sopenharmony_ci | | Registers | | | | 2962306a36Sopenharmony_ci | | | | | | 3062306a36Sopenharmony_ci | +----------------+ +----------------+ | 3162306a36Sopenharmony_ci | | 3262306a36Sopenharmony_ci | Xilinx IPI Agent Block | 3362306a36Sopenharmony_ci +------------------------------------------+ 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cimaintainers: 3662306a36Sopenharmony_ci - Shubhrajyoti Datta <shubhrajyoti.datta@amd.com> 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciproperties: 3962306a36Sopenharmony_ci compatible: 4062306a36Sopenharmony_ci const: xlnx,zynqmp-ipi-mailbox 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci method: 4362306a36Sopenharmony_ci description: | 4462306a36Sopenharmony_ci The method of calling the PM-API firmware layer. 4562306a36Sopenharmony_ci Permitted values are. 4662306a36Sopenharmony_ci - "smc" : SMC #0, following the SMCCC 4762306a36Sopenharmony_ci - "hvc" : HVC #0, following the SMCCC 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/string 5062306a36Sopenharmony_ci enum: 5162306a36Sopenharmony_ci - smc 5262306a36Sopenharmony_ci - hvc 5362306a36Sopenharmony_ci default: smc 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci '#address-cells': 5662306a36Sopenharmony_ci const: 2 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci '#size-cells': 5962306a36Sopenharmony_ci const: 2 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci xlnx,ipi-id: 6262306a36Sopenharmony_ci description: | 6362306a36Sopenharmony_ci Remote Xilinx IPI agent ID of which the mailbox is connected to. 6462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci interrupts: 6762306a36Sopenharmony_ci maxItems: 1 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci ranges: true 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_cipatternProperties: 7262306a36Sopenharmony_ci '^mailbox@[0-9a-f]+$': 7362306a36Sopenharmony_ci description: Internal ipi mailbox node 7462306a36Sopenharmony_ci type: object # DT nodes are json objects 7562306a36Sopenharmony_ci additionalProperties: false 7662306a36Sopenharmony_ci properties: 7762306a36Sopenharmony_ci xlnx,ipi-id: 7862306a36Sopenharmony_ci description: 7962306a36Sopenharmony_ci Remote Xilinx IPI agent ID of which the mailbox is connected to. 8062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci '#mbox-cells': 8362306a36Sopenharmony_ci const: 1 8462306a36Sopenharmony_ci description: 8562306a36Sopenharmony_ci It contains tx(0) or rx(1) channel IPI id number. 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci reg: 8862306a36Sopenharmony_ci maxItems: 4 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci reg-names: 9162306a36Sopenharmony_ci items: 9262306a36Sopenharmony_ci - const: local_request_region 9362306a36Sopenharmony_ci - const: local_response_region 9462306a36Sopenharmony_ci - const: remote_request_region 9562306a36Sopenharmony_ci - const: remote_response_region 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci required: 9862306a36Sopenharmony_ci - reg 9962306a36Sopenharmony_ci - reg-names 10062306a36Sopenharmony_ci - "#mbox-cells" 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ciadditionalProperties: false 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_cirequired: 10562306a36Sopenharmony_ci - compatible 10662306a36Sopenharmony_ci - interrupts 10762306a36Sopenharmony_ci - '#address-cells' 10862306a36Sopenharmony_ci - '#size-cells' 10962306a36Sopenharmony_ci - xlnx,ipi-id 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ciexamples: 11262306a36Sopenharmony_ci - | 11362306a36Sopenharmony_ci #include<dt-bindings/interrupt-controller/arm-gic.h> 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci amba { 11662306a36Sopenharmony_ci #address-cells = <0x2>; 11762306a36Sopenharmony_ci #size-cells = <0x2>; 11862306a36Sopenharmony_ci zynqmp-mailbox { 11962306a36Sopenharmony_ci compatible = "xlnx,zynqmp-ipi-mailbox"; 12062306a36Sopenharmony_ci interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 12162306a36Sopenharmony_ci xlnx,ipi-id = <0>; 12262306a36Sopenharmony_ci #address-cells = <2>; 12362306a36Sopenharmony_ci #size-cells = <2>; 12462306a36Sopenharmony_ci ranges; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci mailbox: mailbox@ff9905c0 { 12762306a36Sopenharmony_ci reg = <0x0 0xff9905c0 0x0 0x20>, 12862306a36Sopenharmony_ci <0x0 0xff9905e0 0x0 0x20>, 12962306a36Sopenharmony_ci <0x0 0xff990e80 0x0 0x20>, 13062306a36Sopenharmony_ci <0x0 0xff990ea0 0x0 0x20>; 13162306a36Sopenharmony_ci reg-names = "local_request_region", 13262306a36Sopenharmony_ci "local_response_region", 13362306a36Sopenharmony_ci "remote_request_region", 13462306a36Sopenharmony_ci "remote_response_region"; 13562306a36Sopenharmony_ci #mbox-cells = <1>; 13662306a36Sopenharmony_ci xlnx,ipi-id = <4>; 13762306a36Sopenharmony_ci }; 13862306a36Sopenharmony_ci }; 13962306a36Sopenharmony_ci }; 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci... 142