File Index
Files and directories
Sign in
FILE

amphion,vpu.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/media/amphion,vpu.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/media/amphion,vpu.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Amphion VPU codec IP
  8
  9maintainers:
 10  - Ming Qian <ming.qian@nxp.com>
 11  - Shijie Qin <shijie.qin@nxp.com>
 12
 13description: |-
 14  The Amphion MXC video encoder(Windsor) and decoder(Malone) accelerators present
 15  on NXP i.MX8Q SoCs.
 16
 17properties:
 18  $nodename:
 19    pattern: "^vpu@[0-9a-f]+$"
 20
 21  compatible:
 22    items:
 23      - enum:
 24          - nxp,imx8qm-vpu
 25          - nxp,imx8qxp-vpu
 26
 27  reg:
 28    maxItems: 1
 29
 30  power-domains:
 31    maxItems: 1
 32
 33  "#address-cells":
 34    const: 1
 35
 36  "#size-cells":
 37    const: 1
 38
 39  ranges: true
 40
 41patternProperties:
 42  "^mailbox@[0-9a-f]+$":
 43    description:
 44      Each vpu encoder or decoder correspond a MU, which used for communication
 45      between driver and firmware. Implement via mailbox on driver.
 46    $ref: /schemas/mailbox/fsl,mu.yaml#
 47
 48  "^vpu-core@[0-9a-f]+$":
 49    description:
 50      Each core correspond a decoder or encoder, need to configure them
 51      separately. NXP i.MX8QM SoC has one decoder and two encoder, i.MX8QXP SoC
 52      has one decoder and one encoder.
 53    type: object
 54
 55    properties:
 56      compatible:
 57        items:
 58          - enum:
 59              - nxp,imx8q-vpu-decoder
 60              - nxp,imx8q-vpu-encoder
 61
 62      reg:
 63        maxItems: 1
 64
 65      power-domains:
 66        maxItems: 1
 67
 68      mbox-names:
 69        items:
 70          - const: tx0
 71          - const: tx1
 72          - const: rx
 73
 74      mboxes:
 75        description:
 76          List of phandle of 2 MU channels for tx, 1 MU channel for rx.
 77        maxItems: 3
 78
 79      memory-region:
 80        description:
 81          Phandle to the reserved memory nodes to be associated with the
 82          remoteproc device. The reserved memory nodes should be carveout nodes,
 83          and should be defined as per the bindings in
 84          Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
 85        items:
 86          - description: region reserved for firmware image sections.
 87          - description: region used for RPC shared memory between firmware and
 88                         driver.
 89
 90    required:
 91      - compatible
 92      - reg
 93      - power-domains
 94      - mbox-names
 95      - mboxes
 96      - memory-region
 97
 98    additionalProperties: false
 99
100required:
101  - compatible
102  - reg
103  - power-domains
104
105additionalProperties: false
106
107examples:
108  # Device node example for i.MX8QM platform:
109  - |
110    #include <dt-bindings/firmware/imx/rsrc.h>
111
112    vpu: vpu@2c000000 {
113      compatible = "nxp,imx8qm-vpu";
114      ranges = <0x2c000000 0x2c000000 0x2000000>;
115      reg = <0x2c000000 0x1000000>;
116      #address-cells = <1>;
117      #size-cells = <1>;
118      power-domains = <&pd IMX_SC_R_VPU>;
119
120      mu_m0: mailbox@2d000000 {
121        compatible = "fsl,imx6sx-mu";
122        reg = <0x2d000000 0x20000>;
123        interrupts = <0 472 4>;
124        #mbox-cells = <2>;
125        power-domains = <&pd IMX_SC_R_VPU_MU_0>;
126      };
127
128      mu1_m0: mailbox@2d020000 {
129        compatible = "fsl,imx6sx-mu";
130        reg = <0x2d020000 0x20000>;
131        interrupts = <0 473 4>;
132        #mbox-cells = <2>;
133        power-domains = <&pd IMX_SC_R_VPU_MU_1>;
134      };
135
136      mu2_m0: mailbox@2d040000 {
137        compatible = "fsl,imx6sx-mu";
138        reg = <0x2d040000 0x20000>;
139        interrupts = <0 474 4>;
140        #mbox-cells = <2>;
141        power-domains = <&pd IMX_SC_R_VPU_MU_2>;
142      };
143
144      vpu_core0: vpu-core@2d080000 {
145        compatible = "nxp,imx8q-vpu-decoder";
146        reg = <0x2d080000 0x10000>;
147        power-domains = <&pd IMX_SC_R_VPU_DEC_0>;
148        mbox-names = "tx0", "tx1", "rx";
149        mboxes = <&mu_m0 0 0>,
150                 <&mu_m0 0 1>,
151                 <&mu_m0 1 0>;
152        memory-region = <&decoder_boot>, <&decoder_rpc>;
153      };
154
155      vpu_core1: vpu-core@2d090000 {
156        compatible = "nxp,imx8q-vpu-encoder";
157        reg = <0x2d090000 0x10000>;
158        power-domains = <&pd IMX_SC_R_VPU_ENC_0>;
159        mbox-names = "tx0", "tx1", "rx";
160        mboxes = <&mu1_m0 0 0>,
161                 <&mu1_m0 0 1>,
162                 <&mu1_m0 1 0>;
163        memory-region = <&encoder1_boot>, <&encoder1_rpc>;
164      };
165
166      vpu_core2: vpu-core@2d0a0000 {
167        reg = <0x2d0a0000 0x10000>;
168        compatible = "nxp,imx8q-vpu-encoder";
169        power-domains = <&pd IMX_SC_R_VPU_ENC_1>;
170        mbox-names = "tx0", "tx1", "rx";
171        mboxes = <&mu2_m0 0 0>,
172                 <&mu2_m0 0 1>,
173                 <&mu2_m0 1 0>;
174        memory-region = <&encoder2_boot>, <&encoder2_rpc>;
175      };
176    };
177
178...
~/ Read-only file preview.