# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/mediatek,mt8195-clock.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek Functional Clock Controller for MT8195

maintainers:
  - Chun-Jie Chen <chun-jie.chen@mediatek.com>

description:
  The clock architecture in Mediatek like below
  PLLs -->
          dividers -->
                      muxes
                           -->
                              clock gate

  The devices except apusys_pll provide clock gate control in different IP blocks.
  The apusys_pll provides Plls which generated from SoC 26m for AI Processing Unit.

properties:
  compatible:
    items:
      - enum:
          - mediatek,mt8195-scp_adsp
          - mediatek,mt8195-imp_iic_wrap_s
          - mediatek,mt8195-imp_iic_wrap_w
          - mediatek,mt8195-mfgcfg
          - mediatek,mt8195-wpesys
          - mediatek,mt8195-wpesys_vpp0
          - mediatek,mt8195-wpesys_vpp1
          - mediatek,mt8195-imgsys
          - mediatek,mt8195-imgsys1_dip_top
          - mediatek,mt8195-imgsys1_dip_nr
          - mediatek,mt8195-imgsys1_wpe
          - mediatek,mt8195-ipesys
          - mediatek,mt8195-camsys
          - mediatek,mt8195-camsys_rawa
          - mediatek,mt8195-camsys_yuva
          - mediatek,mt8195-camsys_rawb
          - mediatek,mt8195-camsys_yuvb
          - mediatek,mt8195-camsys_mraw
          - mediatek,mt8195-ccusys
          - mediatek,mt8195-vdecsys_soc
          - mediatek,mt8195-vdecsys
          - mediatek,mt8195-vdecsys_core1
          - mediatek,mt8195-vencsys
          - mediatek,mt8195-vencsys_core1
          - mediatek,mt8195-apusys_pll
  reg:
    maxItems: 1

  '#clock-cells':
    const: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    scp_adsp: clock-controller@10720000 {
        compatible = "mediatek,mt8195-scp_adsp";
        reg = <0x10720000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    imp_iic_wrap_s: clock-controller@11d03000 {
        compatible = "mediatek,mt8195-imp_iic_wrap_s";
        reg = <0x11d03000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    imp_iic_wrap_w: clock-controller@11e05000 {
        compatible = "mediatek,mt8195-imp_iic_wrap_w";
        reg = <0x11e05000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    mfgcfg: clock-controller@13fbf000 {
        compatible = "mediatek,mt8195-mfgcfg";
        reg = <0x13fbf000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    wpesys: clock-controller@14e00000 {
        compatible = "mediatek,mt8195-wpesys";
        reg = <0x14e00000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    wpesys_vpp0: clock-controller@14e02000 {
        compatible = "mediatek,mt8195-wpesys_vpp0";
        reg = <0x14e02000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    wpesys_vpp1: clock-controller@14e03000 {
        compatible = "mediatek,mt8195-wpesys_vpp1";
        reg = <0x14e03000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    imgsys: clock-controller@15000000 {
        compatible = "mediatek,mt8195-imgsys";
        reg = <0x15000000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    imgsys1_dip_top: clock-controller@15110000 {
        compatible = "mediatek,mt8195-imgsys1_dip_top";
        reg = <0x15110000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    imgsys1_dip_nr: clock-controller@15130000 {
        compatible = "mediatek,mt8195-imgsys1_dip_nr";
        reg = <0x15130000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    imgsys1_wpe: clock-controller@15220000 {
        compatible = "mediatek,mt8195-imgsys1_wpe";
        reg = <0x15220000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    ipesys: clock-controller@15330000 {
        compatible = "mediatek,mt8195-ipesys";
        reg = <0x15330000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    camsys: clock-controller@16000000 {
        compatible = "mediatek,mt8195-camsys";
        reg = <0x16000000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    camsys_rawa: clock-controller@1604f000 {
        compatible = "mediatek,mt8195-camsys_rawa";
        reg = <0x1604f000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    camsys_yuva: clock-controller@1606f000 {
        compatible = "mediatek,mt8195-camsys_yuva";
        reg = <0x1606f000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    camsys_rawb: clock-controller@1608f000 {
        compatible = "mediatek,mt8195-camsys_rawb";
        reg = <0x1608f000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    camsys_yuvb: clock-controller@160af000 {
        compatible = "mediatek,mt8195-camsys_yuvb";
        reg = <0x160af000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    camsys_mraw: clock-controller@16140000 {
        compatible = "mediatek,mt8195-camsys_mraw";
        reg = <0x16140000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    ccusys: clock-controller@17200000 {
        compatible = "mediatek,mt8195-ccusys";
        reg = <0x17200000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    vdecsys_soc: clock-controller@1800f000 {
        compatible = "mediatek,mt8195-vdecsys_soc";
        reg = <0x1800f000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    vdecsys: clock-controller@1802f000 {
        compatible = "mediatek,mt8195-vdecsys";
        reg = <0x1802f000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    vdecsys_core1: clock-controller@1803f000 {
        compatible = "mediatek,mt8195-vdecsys_core1";
        reg = <0x1803f000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    vencsys: clock-controller@1a000000 {
        compatible = "mediatek,mt8195-vencsys";
        reg = <0x1a000000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    vencsys_core1: clock-controller@1b000000 {
        compatible = "mediatek,mt8195-vencsys_core1";
        reg = <0x1b000000 0x1000>;
        #clock-cells = <1>;
    };

  - |
    apusys_pll: clock-controller@190f3000 {
        compatible = "mediatek,mt8195-apusys_pll";
        reg = <0x190f3000 0x1000>;
        #clock-cells = <1>;
    };
