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