# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

%YAML 1.2
---
$id: "http://devicetree.org/schemas/media/mediatek,vcodec-subdev-decoder.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Mediatek Video Decode Accelerator With Multi Hardware

maintainers:
  - Yunfei Dong <yunfei.dong@mediatek.com>

description: |
  Mediatek Video Decode is the video decode hardware present in Mediatek
  SoCs which supports high resolution decoding functionalities. Required
  parent and child device node.

  About the Decoder Hardware Block Diagram, please check below:

    +------------------------------------------------+-------------------------------------+
    |                                                |                                     |
    |  input -> lat soc HW -> lat HW -> lat buffer --|--> lat buffer -> core HW -> output  |
    |            ||             ||                   |                     ||              |
    +------------||-------------||-------------------+---------------------||--------------+
                 ||     lat     ||                   |               core workqueue  <parent>
    -------------||-------------||-------------------|---------------------||---------------
                 ||<------------||----------------HW index---------------->||        <child>
                 \/             \/                                         \/
               +-------------------------------------------------------------+
               |                          enable/disable                     |
               |                 clk     power    irq    iommu               |
               |                   (lat/lat soc/core0/core1)                 |
               +-------------------------------------------------------------+

  As above, there are parent and child devices, child mean each hardware. The child device
  controls the information of each hardware independent which include clk/power/irq.

  There are two workqueues in parent device: lat workqueue and core workqueue. They are used
  to lat and core hardware deocder. Lat workqueue need to get input bitstream and lat buffer,
  then enable lat to decode, writing the result to lat buffer, dislabe hardware when lat decode
  done. Core workqueue need to get lat buffer and output buffer, then enable core to decode,
  writing the result to output buffer, disable hardware when core decode done. These two
  hardwares will decode each frame cyclically.

  For the smi common may not the same for each hardware, can't combine all hardware in one node,
  or leading to iommu fault when access dram data.

  Lat soc is a hardware which is related with some larb(local arbiter) ports. For mt8195
  platform, there are some ports like RDMA, UFO in lat soc larb, need to enable its power and
  clock when lat start to work, don't have interrupt.

  mt8195: lat soc HW + lat HW + core HW
  mt8192: lat HW + core HW

properties:
  compatible:
    enum:
      - mediatek,mt8192-vcodec-dec
      - mediatek,mt8186-vcodec-dec
      - mediatek,mt8195-vcodec-dec

  reg:
    maxItems: 1

  iommus:
    minItems: 1
    maxItems: 32
    description: |
      List of the hardware port in respective IOMMU block for current Socs.
      Refer to bindings/iommu/mediatek,iommu.yaml.

  mediatek,scp:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: |
      The node of system control processor (SCP), using
      the remoteproc & rpmsg framework.

  dma-ranges:
    maxItems: 1
    description: |
      Describes the physical address space of IOMMU maps to memory.

  "#address-cells":
    const: 2

  "#size-cells":
    const: 2

  ranges: true

# Required child node:
patternProperties:
  '^vcodec-lat@[0-9a-f]+$':
    type: object

    properties:
      compatible:
        enum:
          - mediatek,mtk-vcodec-lat
          - mediatek,mtk-vcodec-lat-soc

      reg:
        maxItems: 1

      interrupts:
        maxItems: 1

      iommus:
        minItems: 1
        maxItems: 32
        description: |
          List of the hardware port in respective IOMMU block for current Socs.
          Refer to bindings/iommu/mediatek,iommu.yaml.

      clocks:
        maxItems: 5

      clock-names:
        items:
          - const: sel
          - const: soc-vdec
          - const: soc-lat
          - const: vdec
          - const: top

      assigned-clocks:
        maxItems: 1

      assigned-clock-parents:
        maxItems: 1

      power-domains:
        maxItems: 1

    required:
      - compatible
      - reg
      - iommus
      - clocks
      - clock-names
      - assigned-clocks
      - assigned-clock-parents
      - power-domains

    additionalProperties: false

  '^vcodec-core@[0-9a-f]+$':
    type: object

    properties:
      compatible:
        const: mediatek,mtk-vcodec-core

      reg:
        maxItems: 1

      interrupts:
        maxItems: 1

      iommus:
        minItems: 1
        maxItems: 32
        description: |
          List of the hardware port in respective IOMMU block for current Socs.
          Refer to bindings/iommu/mediatek,iommu.yaml.

      clocks:
        maxItems: 5

      clock-names:
        items:
          - const: sel
          - const: soc-vdec
          - const: soc-lat
          - const: vdec
          - const: top

      assigned-clocks:
        maxItems: 1

      assigned-clock-parents:
        maxItems: 1

      power-domains:
        maxItems: 1

    required:
      - compatible
      - reg
      - interrupts
      - iommus
      - clocks
      - clock-names
      - assigned-clocks
      - assigned-clock-parents
      - power-domains

    additionalProperties: false

required:
  - compatible
  - reg
  - iommus
  - mediatek,scp
  - dma-ranges
  - ranges

if:
  properties:
    compatible:
      contains:
        enum:
          - mediatek,mtk-vcodec-lat

then:
  required:
    - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/memory/mt8192-larb-port.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/clock/mt8192-clk.h>
    #include <dt-bindings/power/mt8192-power.h>

    bus@16000000 {
        #address-cells = <2>;
        #size-cells = <2>;
        ranges = <0 0x16000000 0x16000000 0 0x40000>;

        video-codec@16000000 {
            compatible = "mediatek,mt8192-vcodec-dec";
            mediatek,scp = <&scp>;
            iommus = <&iommu0 M4U_PORT_L4_VDEC_MC_EXT>;
            dma-ranges = <0x1 0x0 0x0 0x40000000 0x0 0xfff00000>;
            #address-cells = <2>;
            #size-cells = <2>;
            ranges = <0 0 0 0x16000000 0 0x40000>;
            reg = <0 0x16000000 0 0x1000>;		/* VDEC_SYS */
            vcodec-lat@10000 {
                compatible = "mediatek,mtk-vcodec-lat";
                reg = <0 0x10000 0 0x800>;
                interrupts = <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH 0>;
                iommus = <&iommu0 M4U_PORT_L5_VDEC_LAT0_VLD_EXT>,
                    <&iommu0 M4U_PORT_L5_VDEC_LAT0_VLD2_EXT>,
                    <&iommu0 M4U_PORT_L5_VDEC_LAT0_AVC_MV_EXT>,
                    <&iommu0 M4U_PORT_L5_VDEC_LAT0_PRED_RD_EXT>,
                    <&iommu0 M4U_PORT_L5_VDEC_LAT0_TILE_EXT>,
                    <&iommu0 M4U_PORT_L5_VDEC_LAT0_WDMA_EXT>,
                    <&iommu0 M4U_PORT_L5_VDEC_LAT0_RG_CTRL_DMA_EXT>,
                    <&iommu0 M4U_PORT_L5_VDEC_UFO_ENC_EXT>;
                clocks = <&topckgen CLK_TOP_VDEC_SEL>,
                    <&vdecsys_soc CLK_VDEC_SOC_VDEC>,
                    <&vdecsys_soc CLK_VDEC_SOC_LAT>,
                    <&vdecsys_soc CLK_VDEC_SOC_LARB1>,
                    <&topckgen CLK_TOP_MAINPLL_D4>;
                clock-names = "sel", "soc-vdec", "soc-lat", "vdec", "top";
                assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
                assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
                power-domains = <&spm MT8192_POWER_DOMAIN_VDEC>;
            };

            vcodec-core@25000 {
                compatible = "mediatek,mtk-vcodec-core";
                reg = <0 0x25000 0 0x1000>;
                interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH 0>;
                iommus = <&iommu0 M4U_PORT_L4_VDEC_MC_EXT>,
                    <&iommu0 M4U_PORT_L4_VDEC_UFO_EXT>,
                    <&iommu0 M4U_PORT_L4_VDEC_PP_EXT>,
                    <&iommu0 M4U_PORT_L4_VDEC_PRED_RD_EXT>,
                    <&iommu0 M4U_PORT_L4_VDEC_PRED_WR_EXT>,
                    <&iommu0 M4U_PORT_L4_VDEC_PPWRAP_EXT>,
                    <&iommu0 M4U_PORT_L4_VDEC_TILE_EXT>,
                    <&iommu0 M4U_PORT_L4_VDEC_VLD_EXT>,
                    <&iommu0 M4U_PORT_L4_VDEC_VLD2_EXT>,
                    <&iommu0 M4U_PORT_L4_VDEC_AVC_MV_EXT>,
                    <&iommu0 M4U_PORT_L4_VDEC_RG_CTRL_DMA_EXT>;
                clocks = <&topckgen CLK_TOP_VDEC_SEL>,
                    <&vdecsys CLK_VDEC_VDEC>,
                    <&vdecsys CLK_VDEC_LAT>,
                    <&vdecsys CLK_VDEC_LARB1>,
                    <&topckgen CLK_TOP_MAINPLL_D4>;
                clock-names = "sel", "soc-vdec", "soc-lat", "vdec", "top";
                assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
                assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
                power-domains = <&spm MT8192_POWER_DOMAIN_VDEC2>;
            };
        };
    };
