Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: "http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml#"
0005 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0006 
0007 title: Xilinx IPI(Inter Processor Interrupt) mailbox controller
0008 
0009 description: |
0010   The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage
0011   messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI
0012   agent owns registers used for notification and buffers for message.
0013 
0014                +-------------------------------------+
0015                | Xilinx ZynqMP IPI Controller        |
0016                +-------------------------------------+
0017     +--------------------------------------------------+
0018   TF-A                   |                     |
0019                          |                     |
0020                          |                     |
0021     +--------------------------+               |
0022                          |                     |
0023                          |                     |
0024     +--------------------------------------------------+
0025               +------------------------------------------+
0026               |  +----------------+   +----------------+ |
0027   Hardware    |  |  IPI Agent     |   |  IPI Buffers   | |
0028               |  |  Registers     |   |                | |
0029               |  |                |   |                | |
0030               |  +----------------+   +----------------+ |
0031               |                                          |
0032               | Xilinx IPI Agent Block                   |
0033               +------------------------------------------+
0034 
0035 maintainers:
0036   - Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
0037 
0038 properties:
0039   compatible:
0040     const: xlnx,zynqmp-ipi-mailbox
0041 
0042   method:
0043     description: |
0044       The method of calling the PM-API firmware layer.
0045       Permitted values are.
0046       - "smc" : SMC #0, following the SMCCC
0047       - "hvc" : HVC #0, following the SMCCC
0048 
0049     $ref: /schemas/types.yaml#/definitions/string
0050     enum:
0051       - smc
0052       - hvc
0053     default: smc
0054 
0055   '#address-cells':
0056     const: 2
0057 
0058   '#size-cells':
0059     const: 2
0060 
0061   xlnx,ipi-id:
0062     description: |
0063       Remote Xilinx IPI agent ID of which the mailbox is connected to.
0064     $ref: /schemas/types.yaml#/definitions/uint32
0065 
0066   interrupts:
0067     maxItems: 1
0068 
0069   ranges: true
0070 
0071 patternProperties:
0072   '^mailbox@[0-9a-f]+$':
0073     description: Internal ipi mailbox node
0074     type: object  # DT nodes are json objects
0075     properties:
0076       xlnx,ipi-id:
0077         description:
0078           Remote Xilinx IPI agent ID of which the mailbox is connected to.
0079         $ref: /schemas/types.yaml#/definitions/uint32
0080 
0081       '#mbox-cells':
0082         const: 1
0083         description:
0084           It contains tx(0) or rx(1) channel IPI id number.
0085 
0086       reg:
0087         maxItems: 4
0088 
0089       reg-names:
0090         items:
0091           - const: local_request_region
0092           - const: local_response_region
0093           - const: remote_request_region
0094           - const: remote_response_region
0095 
0096     required:
0097       - reg
0098       - reg-names
0099       - "#mbox-cells"
0100 
0101 additionalProperties: false
0102 
0103 required:
0104   - compatible
0105   - interrupts
0106   - '#address-cells'
0107   - '#size-cells'
0108   - xlnx,ipi-id
0109 
0110 examples:
0111   - |
0112     #include<dt-bindings/interrupt-controller/arm-gic.h>
0113 
0114     amba {
0115       #address-cells = <0x2>;
0116       #size-cells = <0x2>;
0117       zynqmp-mailbox {
0118         compatible = "xlnx,zynqmp-ipi-mailbox";
0119         interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
0120         xlnx,ipi-id = <0>;
0121         #address-cells = <2>;
0122         #size-cells = <2>;
0123         ranges;
0124 
0125         mailbox: mailbox@ff9905c0 {
0126           reg = <0x0 0xff9905c0 0x0 0x20>,
0127                 <0x0 0xff9905e0 0x0 0x20>,
0128                 <0x0 0xff990e80 0x0 0x20>,
0129                 <0x0 0xff990ea0 0x0 0x20>;
0130           reg-names = "local_request_region",
0131                       "local_response_region",
0132                       "remote_request_region",
0133                       "remote_response_region";
0134           #mbox-cells = <1>;
0135           xlnx,ipi-id = <4>;
0136         };
0137       };
0138     };
0139 
0140 ...