Commit f3116f2e authored by Adam Ford's avatar Adam Ford Committed by Mauro Carvalho Chehab
Browse files

media: dt-bindings: media: nxp, imx8mq-vpu: Split G1 and G2 nodes



The G1 and G2 are independent and separate decoder blocks
that are enabled by the vpu-blk-ctrl power-domain controller,
which now has a proper driver.

Because these blocks only share the power-domain, and can be
independently fused out, update the bindings to support separate
nodes for the G1 and G2 decoders with vpu-blk-ctrl power-domain
support.

The new DT + old kernel isn't a supported configuration.

Signed-off-by: default avatarAdam Ford <aford173@gmail.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Reviewed-by: default avatarEzequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent cf4a3ab5
Loading
Loading
Loading
Loading
+27 −38
Original line number Diff line number Diff line
@@ -15,33 +15,20 @@ description:

properties:
  compatible:
    const: nxp,imx8mq-vpu
    oneOf:
      - const: nxp,imx8mq-vpu
        deprecated: true
      - const: nxp,imx8mq-vpu-g1
      - const: nxp,imx8mq-vpu-g2

  reg:
    maxItems: 3

  reg-names:
    items:
      - const: g1
      - const: g2
      - const: ctrl
    maxItems: 1

  interrupts:
    maxItems: 2

  interrupt-names:
    items:
      - const: g1
      - const: g2
    maxItems: 1

  clocks:
    maxItems: 3

  clock-names:
    items:
      - const: g1
      - const: g2
      - const: bus
    maxItems: 1

  power-domains:
    maxItems: 1
@@ -49,31 +36,33 @@ properties:
required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - interrupt-names
  - clocks
  - clock-names

additionalProperties: false

examples:
  - |
        #include <dt-bindings/clock/imx8mq-clock.h>
        #include <dt-bindings/power/imx8mq-power.h>
        #include <dt-bindings/interrupt-controller/arm-gic.h>

        vpu_g1: video-codec@38300000 {
                compatible = "nxp,imx8mq-vpu-g1";
                reg = <0x38300000 0x10000>;
                interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clk IMX8MQ_CLK_VPU_G1_ROOT>;
                power-domains = <&vpu_blk_ctrl IMX8MQ_VPUBLK_PD_G1>;
        };
  - |
        #include <dt-bindings/clock/imx8mq-clock.h>
        #include <dt-bindings/power/imx8mq-power.h>
        #include <dt-bindings/interrupt-controller/arm-gic.h>

        vpu: video-codec@38300000 {
                compatible = "nxp,imx8mq-vpu";
                reg = <0x38300000 0x10000>,
                      <0x38310000 0x10000>,
                      <0x38320000 0x10000>;
                reg-names = "g1", "g2", "ctrl";
                interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "g1", "g2";
                clocks = <&clk IMX8MQ_CLK_VPU_G1_ROOT>,
                         <&clk IMX8MQ_CLK_VPU_G2_ROOT>,
                         <&clk IMX8MQ_CLK_VPU_DEC_ROOT>;
                clock-names = "g1", "g2", "bus";
                power-domains = <&pgc_vpu>;
        vpu_g2: video-codec@38300000 {
                compatible = "nxp,imx8mq-vpu-g2";
                reg = <0x38310000 0x10000>;
                interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clk IMX8MQ_CLK_VPU_G2_ROOT>;
                power-domains = <&vpu_blk_ctrl IMX8MQ_VPUBLK_PD_G2>;
        };