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

title: Marvell MMP2 Audio Clock Controller

maintainers:
  - Lubomir Rintel <lkundrak@v3.sk>

description: |
  The audio clock controller generates and supplies the clocks to the audio
  codec.

  Each clock is assigned an identifier and client nodes use this identifier
  to specify the clock which they consume.

  All these identifiers could be found in
  <dt-bindings/clock/marvell,mmp2-audio.h>.

properties:
  compatible:
    enum:
      - marvell,mmp2-audio-clock

  reg:
    maxItems: 1

  clocks:
    items:
      - description: Audio subsystem clock
      - description: The crystal oscillator clock
      - description: First I2S clock
      - description: Second I2S clock

  clock-names:
    items:
      - const: audio
      - const: vctcxo
      - const: i2s0
      - const: i2s1

  '#clock-cells':
    const: 1

  power-domains:
    maxItems: 1

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - '#clock-cells'

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/marvell,mmp2-audio.h>
    #include <dt-bindings/clock/marvell,mmp2.h>
    #include <dt-bindings/power/marvell,mmp2.h>

    clock-controller@d42a0c30 {
      compatible = "marvell,mmp2-audio-clock";
      reg = <0xd42a0c30 0x10>;
      clock-names = "audio", "vctcxo", "i2s0", "i2s1";
      clocks = <&soc_clocks MMP2_CLK_AUDIO>,
               <&soc_clocks MMP2_CLK_VCTCXO>,
               <&soc_clocks MMP2_CLK_I2S0>,
               <&soc_clocks MMP2_CLK_I2S1>;
      power-domains = <&soc_clocks MMP2_POWER_DOMAIN_AUDIO>;
      #clock-cells = <1>;
    };