brintos

brintos / linux-shallow public Read only

0
0
Text · 4.5 KiB · 9801de3 Raw
181 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2 3%YAML 1.24---5$id: http://devicetree.org/schemas/media/amphion,vpu.yaml#6$schema: http://devicetree.org/meta-schemas/core.yaml#7 8title: Amphion VPU codec IP9 10maintainers:11  - Ming Qian <ming.qian@nxp.com>12  - Shijie Qin <shijie.qin@nxp.com>13 14description: |-15  The Amphion MXC video encoder(Windsor) and decoder(Malone) accelerators present16  on NXP i.MX8Q SoCs.17 18properties:19  $nodename:20    pattern: "^vpu@[0-9a-f]+$"21 22  compatible:23    items:24      - enum:25          - nxp,imx8qm-vpu26          - nxp,imx8qxp-vpu27 28  reg:29    maxItems: 130 31  power-domains:32    maxItems: 133 34  "#address-cells":35    const: 136 37  "#size-cells":38    const: 139 40  ranges: true41 42patternProperties:43  "^mailbox@[0-9a-f]+$":44    description:45      Each vpu encoder or decoder correspond a MU, which used for communication46      between driver and firmware. Implement via mailbox on driver.47    $ref: /schemas/mailbox/fsl,mu.yaml#48 49 50  "^vpu-core@[0-9a-f]+$":51    description:52      Each core correspond a decoder or encoder, need to configure them53      separately. NXP i.MX8QM SoC has one decoder and two encoder, i.MX8QXP SoC54      has one decoder and one encoder.55    type: object56 57    properties:58      compatible:59        items:60          - enum:61              - nxp,imx8q-vpu-decoder62              - nxp,imx8q-vpu-encoder63 64      reg:65        maxItems: 166 67      power-domains:68        maxItems: 169 70      mbox-names:71        items:72          - const: tx073          - const: tx174          - const: rx75 76      mboxes:77        description:78          List of phandle of 2 MU channels for tx, 1 MU channel for rx.79        maxItems: 380 81      memory-region:82        description:83          Phandle to the reserved memory nodes to be associated with the84          remoteproc device. The reserved memory nodes should be carveout nodes,85          and should be defined as per the bindings in86          Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt87        items:88          - description: region reserved for firmware image sections.89          - description: region used for RPC shared memory between firmware and90                         driver.91 92    required:93      - compatible94      - reg95      - power-domains96      - mbox-names97      - mboxes98      - memory-region99 100    additionalProperties: false101 102required:103  - compatible104  - reg105  - power-domains106 107additionalProperties: false108 109examples:110  # Device node example for i.MX8QM platform:111  - |112    #include <dt-bindings/firmware/imx/rsrc.h>113 114    vpu: vpu@2c000000 {115      compatible = "nxp,imx8qm-vpu";116      ranges = <0x2c000000 0x2c000000 0x2000000>;117      reg = <0x2c000000 0x1000000>;118      #address-cells = <1>;119      #size-cells = <1>;120      power-domains = <&pd IMX_SC_R_VPU>;121 122      mu_m0: mailbox@2d000000 {123        compatible = "fsl,imx6sx-mu";124        reg = <0x2d000000 0x20000>;125        interrupts = <0 472 4>;126        #mbox-cells = <2>;127        power-domains = <&pd IMX_SC_R_VPU_MU_0>;128      };129 130      mu1_m0: mailbox@2d020000 {131        compatible = "fsl,imx6sx-mu";132        reg = <0x2d020000 0x20000>;133        interrupts = <0 473 4>;134        #mbox-cells = <2>;135        power-domains = <&pd IMX_SC_R_VPU_MU_1>;136      };137 138      mu2_m0: mailbox@2d040000 {139        compatible = "fsl,imx6sx-mu";140        reg = <0x2d040000 0x20000>;141        interrupts = <0 474 4>;142        #mbox-cells = <2>;143        power-domains = <&pd IMX_SC_R_VPU_MU_2>;144      };145 146      vpu_core0: vpu-core@2d080000 {147        compatible = "nxp,imx8q-vpu-decoder";148        reg = <0x2d080000 0x10000>;149        power-domains = <&pd IMX_SC_R_VPU_DEC_0>;150        mbox-names = "tx0", "tx1", "rx";151        mboxes = <&mu_m0 0 0>,152                 <&mu_m0 0 1>,153                 <&mu_m0 1 0>;154        memory-region = <&decoder_boot>, <&decoder_rpc>;155      };156 157      vpu_core1: vpu-core@2d090000 {158        compatible = "nxp,imx8q-vpu-encoder";159        reg = <0x2d090000 0x10000>;160        power-domains = <&pd IMX_SC_R_VPU_ENC_0>;161        mbox-names = "tx0", "tx1", "rx";162        mboxes = <&mu1_m0 0 0>,163                 <&mu1_m0 0 1>,164                 <&mu1_m0 1 0>;165        memory-region = <&encoder1_boot>, <&encoder1_rpc>;166      };167 168      vpu_core2: vpu-core@2d0a0000 {169        reg = <0x2d0a0000 0x10000>;170        compatible = "nxp,imx8q-vpu-encoder";171        power-domains = <&pd IMX_SC_R_VPU_ENC_1>;172        mbox-names = "tx0", "tx1", "rx";173        mboxes = <&mu2_m0 0 0>,174                 <&mu2_m0 0 1>,175                 <&mu2_m0 1 0>;176        memory-region = <&encoder2_boot>, <&encoder2_rpc>;177      };178    };179 180...181