Commit d7dc892d authored by Philipp Zabel's avatar Philipp Zabel Committed by Mauro Carvalho Chehab
Browse files

media: dt-bindings: convert CODA VPU bindings to yaml



Convert to YAML and add generic IP core compatibles "cnm,codadx6",
"cnm,codahx4", "cnm,coda7541", and "cnm,coda960" in addition to the SoC
specific compatibles. The new generic compatibles are already used in
the SoC device trees and replace the free form comments. For example:

- compatible : should be "fsl,<chip>-src" for i.MX SoCs:
  (a) "fsl,imx27-vpu" for CodaDx6 present in i.MX27

turns into:

properties:
  compatible:
    oneOf:
      - items:
          - const: fsl,imx27-vpu
          - const: cnm,codadx6

This allows to properly specify the secondary JPEG unit interrupt that
is only present on cnm,coda960.

Also add the missing "fsl,imx6dl-vpu", "cnm,coda960" compatible.
The AXI bus connection to the internal SRAM is different between i.MX6Q
and i.MX6DL, which requires the driver to load a different firmware
depending on the SoC.

Further, specify the power-domain property for i.MX6 and change the
clock order from "ahb", "per" to "per", "ahb". This order is currently
used in all SoC device trees.

Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent b20d9fac
Loading
Loading
Loading
Loading
+0 −31
Original line number Diff line number Diff line
Chips&Media Coda multi-standard codec IP
========================================

Coda codec IPs are present in i.MX SoCs in various versions,
called VPU (Video Processing Unit).

Required properties:
- compatible : should be "fsl,<chip>-src" for i.MX SoCs:
  (a) "fsl,imx27-vpu" for CodaDx6 present in i.MX27
  (b) "fsl,imx51-vpu" for CodaHx4 present in i.MX51
  (c) "fsl,imx53-vpu" for CODA7541 present in i.MX53
  (d) "fsl,imx6q-vpu" for CODA960 present in i.MX6q
- reg: should be register base and length as documented in the
  SoC reference manual
- interrupts : Should contain the VPU interrupt. For CODA960,
  a second interrupt is needed for the MJPEG unit.
- clocks : Should contain the ahb and per clocks, in the order
  determined by the clock-names property.
- clock-names : Should be "ahb", "per"
- iram : phandle pointing to the SRAM device node

Example:

vpu: vpu@63ff4000 {
	compatible = "fsl,imx53-vpu";
	reg = <0x63ff4000 0x1000>;
	interrupts = <9>;
	clocks = <&clks 63>, <&clks 63>;
	clock-names = "ahb", "per";
	iram = <&ocram>;
};
+108 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/coda.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Chips&Media Coda multi-standard codec IP

maintainers:
  - Philipp Zabel <p.zabel@pengutronix.de>

description: |-
  Coda codec IPs are present in i.MX SoCs in various versions,
  called VPU (Video Processing Unit).

properties:
  compatible:
    oneOf:
      - items:
          - const: fsl,imx27-vpu
          - const: cnm,codadx6
      - items:
          - const: fsl,imx51-vpu
          - const: cnm,codahx4
      - items:
          - const: fsl,imx53-vpu
          - const: cnm,coda7541
      - items:
          - enum:
              - fsl,imx6dl-vpu
              - fsl,imx6q-vpu
          - const: cnm,coda960

  reg:
    maxItems: 1

  clocks:
    items:
      - description: PER clock
      - description: AHB interface clock

  clock-names:
    items:
      - const: per
      - const: ahb

  resets:
    maxItems: 1

  iram:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: phandle pointing to the SRAM device node
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: cnm,coda960
    then:
      properties:
        interrupts:
          items:
            - description: BIT processor interrupt
            - description: JPEG unit interrupt

        interrupt-names:
          items:
            - const: bit
            - const: jpeg
    else:
      properties:
        interrupts:
          items:
            - description: BIT processor interrupt

  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,imx6dl-vpu
              - fsl,imx6q-vpu
    then:
      properties:
        power-domains:
          $ref: /schemas/types.yaml#/definitions/phandle
          description: phandle pointing to the PU power domain
          maxItems: 1

examples:
  - |
    vpu: video-codec@63ff4000 {
        compatible = "fsl,imx53-vpu", "cnm,coda7541";
        reg = <0x63ff4000 0x1000>;
        interrupts = <9>;
        clocks = <&clks 63>, <&clks 63>;
        clock-names = "per", "ahb";
        iram = <&ocram>;
    };
+1 −1
Original line number Diff line number Diff line
@@ -4354,7 +4354,7 @@ CODA V4L2 MEM2MEM DRIVER
M:	Philipp Zabel <p.zabel@pengutronix.de>
L:	linux-media@vger.kernel.org
S:	Maintained
F:	Documentation/devicetree/bindings/media/coda.txt
F:	Documentation/devicetree/bindings/media/coda.yaml
F:	drivers/media/platform/coda/
CODE OF CONDUCT