# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2020 MediaTek Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: SMI (Smart Multimedia Interface) Local Arbiter

maintainers:
  - Yong Wu <yong.wu@mediatek.com>

description: |
  The hardware block diagram please check bindings/iommu/mediatek,iommu.yaml

properties:
  compatible:
    oneOf:
      - enum:
          - mediatek,mt2701-smi-larb
          - mediatek,mt2712-smi-larb
          - mediatek,mt6779-smi-larb
          - mediatek,mt8167-smi-larb
          - mediatek,mt8173-smi-larb
          - mediatek,mt8183-smi-larb
          - mediatek,mt8192-smi-larb

      - description: for mt7623
        items:
          - const: mediatek,mt7623-smi-larb
          - const: mediatek,mt2701-smi-larb

  reg:
    maxItems: 1

  clocks:
    description: |
      apb and smi are mandatory. gals(global async local sync) is optional.
    minItems: 2
    maxItems: 3
    items:
      - description: apb is Advanced Peripheral Bus clock, It's the clock for
          setting the register.
      - description: smi is the clock for transfer data and command.
      - description: the clock for gals.

  clock-names:
    minItems: 2
    maxItems: 3

  power-domains:
    maxItems: 1

  mediatek,smi:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description: a phandle to the smi_common node.

  mediatek,larb-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 31
    description: the hardware id of this larb. It's only required when this
      hardward id is not consecutive from its M4U point of view.

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - power-domains

allOf:
  - if:  # HW has gals
      properties:
        compatible:
          enum:
            - mediatek,mt8183-smi-larb

    then:
      properties:
        clock:
          items:
            minItems: 3
            maxItems: 3
        clock-names:
          items:
            - const: apb
            - const: smi
            - const: gals

    else:
      properties:
        clock:
          items:
            minItems: 2
            maxItems: 2
        clock-names:
          items:
            - const: apb
            - const: smi

  - if:
      properties:
        compatible:
          contains:
            enum:
              - mediatek,mt2701-smi-larb
              - mediatek,mt2712-smi-larb
              - mediatek,mt6779-smi-larb
              - mediatek,mt8167-smi-larb
              - mediatek,mt8192-smi-larb

    then:
      required:
        - mediatek,larb-id

additionalProperties: false

examples:
  - |+
    #include <dt-bindings/clock/mt8173-clk.h>
    #include <dt-bindings/power/mt8173-power.h>

    larb1: larb@16010000 {
      compatible = "mediatek,mt8173-smi-larb";
      reg = <0x16010000 0x1000>;
      mediatek,smi = <&smi_common>;
      power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>;
      clocks = <&vdecsys CLK_VDEC_CKEN>,
               <&vdecsys CLK_VDEC_LARB_CKEN>;
      clock-names = "apb", "smi";
    };
