brintos

brintos / linux-shallow public Read only

0
0
Text · 6.5 KiB · fe83b5c Raw
254 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---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 controller8 9description: |10  The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage11  messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI12  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@amd.com>37 38properties:39  compatible:40    enum:41      - xlnx,zynqmp-ipi-mailbox42      - xlnx,versal-ipi-mailbox43 44  method:45    description: |46      The method of calling the PM-API firmware layer.47      Permitted values are.48      - "smc" : SMC #0, following the SMCCC49      - "hvc" : HVC #0, following the SMCCC50 51    $ref: /schemas/types.yaml#/definitions/string52    enum:53      - smc54      - hvc55    default: smc56 57  '#address-cells':58    const: 259 60  '#size-cells':61    const: 262 63  reg:64    maxItems: 265 66  reg-names:67    maxItems: 268 69  xlnx,ipi-id:70    description: |71      Remote Xilinx IPI agent ID of which the mailbox is connected to.72    $ref: /schemas/types.yaml#/definitions/uint3273 74  interrupts:75    maxItems: 176 77  ranges: true78 79patternProperties:80  '^mailbox@[0-9a-f]+$':81    description: Internal ipi mailbox node82    type: object  # DT nodes are json objects83    additionalProperties: false84    properties:85 86      compatible:87        enum:88          - xlnx,zynqmp-ipi-dest-mailbox89          - xlnx,versal-ipi-dest-mailbox90 91      reg:92        minItems: 193        maxItems: 494 95      reg-names:96        minItems: 197        maxItems: 498 99      xlnx,ipi-id:100        description:101          Remote Xilinx IPI agent ID of which the mailbox is connected to.102        $ref: /schemas/types.yaml#/definitions/uint32103 104      '#mbox-cells':105        const: 1106        description:107          It contains tx(0) or rx(1) channel IPI id number.108 109    allOf:110      - if:111          properties:112            compatible:113              contains:114                enum:115                  - xlnx,zynqmp-ipi-dest-mailbox116        then:117          properties:118            reg:119              maxItems: 4120 121            reg-names:122              items:123                - const: local_request_region124                - const: local_response_region125                - const: remote_request_region126                - const: remote_response_region127        else:128          properties:129            reg:130              minItems: 1131              items:132                - description: Remote IPI agent control register region133                - description: Remote IPI agent optional message buffers134 135            reg-names:136              minItems: 1137              items:138                - const: ctrl139                - const: msg140 141    required:142      - compatible143      - reg144      - reg-names145      - "#mbox-cells"146      - xlnx,ipi-id147 148required:149  - compatible150  - interrupts151  - '#address-cells'152  - '#size-cells'153  - xlnx,ipi-id154 155allOf:156  - if:157      properties:158        compatible:159          contains:160            enum:161              - xlnx,zynqmp-ipi-mailbox162    then:163      properties:164        reg: false165        reg-names: false166 167    else:168      properties:169        reg:170          items:171            - description: Host IPI agent control register region172            - description: Host IPI agent optional message buffers173 174        reg-names:175          items:176            - const: ctrl177            - const: msg178 179      required:180        - reg181        - reg-names182 183additionalProperties: false184 185examples:186  - |187    #include<dt-bindings/interrupt-controller/arm-gic.h>188 189    amba {190      #address-cells = <0x2>;191      #size-cells = <0x2>;192      zynqmp-mailbox {193        compatible = "xlnx,zynqmp-ipi-mailbox";194        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;195        xlnx,ipi-id = <0>;196        #address-cells = <2>;197        #size-cells = <2>;198        ranges;199 200        mailbox: mailbox@ff9905c0 {201          compatible = "xlnx,zynqmp-ipi-dest-mailbox";202          reg = <0x0 0xff9905c0 0x0 0x20>,203                <0x0 0xff9905e0 0x0 0x20>,204                <0x0 0xff990e80 0x0 0x20>,205                <0x0 0xff990ea0 0x0 0x20>;206          reg-names = "local_request_region",207                      "local_response_region",208                      "remote_request_region",209                      "remote_response_region";210          #mbox-cells = <1>;211          xlnx,ipi-id = <4>;212        };213      };214    };215 216  - |217    #include<dt-bindings/interrupt-controller/arm-gic.h>218 219    bus {220      #address-cells = <2>;221      #size-cells = <2>;222      mailbox@ff300000 {223        compatible = "xlnx,versal-ipi-mailbox";224        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;225        #address-cells = <2>;226        #size-cells = <2>;227        reg = <0x0 0xff300000 0x0 0x1000>,228              <0x0 0xff990000 0x0 0x1ff>;229        reg-names = "ctrl", "msg";230        xlnx,ipi-id = <0>;231        ranges;232 233        /* buffered IPI */234        mailbox@ff340000 {235          compatible = "xlnx,versal-ipi-dest-mailbox";236          reg = <0x0 0xff340000 0x0 0x1000>,237                <0x0 0xff990400 0x0 0x1ff>;238          reg-names = "ctrl", "msg";239          #mbox-cells = <1>;240          xlnx,ipi-id = <4>;241        };242 243        /* bufferless IPI */244        mailbox@ff370000 {245          compatible = "xlnx,versal-ipi-dest-mailbox";246          reg = <0x0 0xff370000 0x0 0x1000>;247          reg-names = "ctrl";248          #mbox-cells = <1>;249          xlnx,ipi-id = <7>;250        };251      };252    };253...254