# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/cirrus,lochnagar.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic Lochnagar Audio Development Board

maintainers:
  - patches@opensource.cirrus.com

description: |
  Lochnagar is an evaluation and development board for Cirrus Logic
  Smart CODEC and Amp devices. It allows the connection of most Cirrus
  Logic devices on mini-cards, as well as allowing connection of
  various application processor systems to provide a full evaluation
  platform.  Audio system topology, clocking and power can all be
  controlled through the Lochnagar, allowing the device under test
  to be used in a variety of possible use cases.

  Also see these documents for generic binding information:
    [1] GPIO : ../gpio/gpio.txt

  And these for relevant defines:
    [2] include/dt-bindings/pinctrl/lochnagar.h
    [3] include/dt-bindings/clock/lochnagar.h

  And these documents for the required sub-node binding details:
    [4] Clock: ../clock/cirrus,lochnagar.yaml
    [5] Pinctrl: ../pinctrl/cirrus,lochnagar.yaml
    [6] Sound: ../sound/cirrus,lochnagar.yaml
    [7] Hardware Monitor: ../hwmon/cirrus,lochnagar.yaml

allOf:
  - if:
      properties:
        compatible:
          enum:
            - cirrus,lochnagar2
    then:
      properties:
        lochnagar-hwmon:
          type: object
          $ref: /schemas/hwmon/cirrus,lochnagar.yaml#

        lochnagar-sc:
          type: object
          $ref: /schemas/sound/cirrus,lochnagar.yaml#

properties:
  compatible:
    enum:
      - cirrus,lochnagar1
      - cirrus,lochnagar2

  reg:
    const: 0x22

  reset-gpios:
    maxItems: 1

  present-gpios:
    description: |
      Host present line, indicating the presence of a
      host system, see [1]. This can be omitted if the present line is
      tied in hardware.
    maxItems: 1

  lochnagar-clk:
    type: object
    $ref: /schemas/clock/cirrus,lochnagar.yaml#

  lochnagar-pmic32k:
    type: object
    $ref: /schemas/clock/fixed-clock.yaml#
    properties:
      clock-frequency:
        const: 32768

  lochnagar-clk12m:
    type: object
    $ref: /schemas/clock/fixed-clock.yaml#
    properties:
      clock-frequency:
        const: 12288000

  lochnagar-clk11m:
    type: object
    $ref: /schemas/clock/fixed-clock.yaml#
    properties:
      clock-frequency:
        const: 11298600

  lochnagar-clk24m:
    type: object
    $ref: /schemas/clock/fixed-clock.yaml#
    properties:
      clock-frequency:
        const: 24576000

  lochnagar-clk22m:
    type: object
    $ref: /schemas/clock/fixed-clock.yaml#
    properties:
      clock-frequency:
        const: 22579200

  lochnagar-clk8m:
    type: object
    $ref: /schemas/clock/fixed-clock.yaml#
    properties:
      clock-frequency:
        const: 8192000

  lochnagar-usb24m:
    type: object
    $ref: /schemas/clock/fixed-clock.yaml#
    properties:
      clock-frequency:
        const: 24576000

  lochnagar-usb12m:
    type: object
    $ref: /schemas/clock/fixed-clock.yaml#
    properties:
      clock-frequency:
        const: 12288000

  pinctrl:
    type: object
    $ref: /schemas/pinctrl/cirrus,lochnagar.yaml#

  lochnagar-hwmon:
    type: object
    $ref: /schemas/hwmon/cirrus,lochnagar.yaml#

  lochnagar-sc:
    type: object
    $ref: /schemas/sound/cirrus,lochnagar.yaml#

  VDDCORE:
    description:
      Initialisation data for the VDDCORE regulator, which supplies the
      CODECs digital core if not being provided by an internal regulator.
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        enum:
          - cirrus,lochnagar2-vddcore

      SYSVDD-supply:
        description:
          Primary power supply for the Lochnagar.
    required:
      - compatible

  MICVDD:
    description:
      Initialisation data for the MICVDD regulator, which supplies the
      CODECs MICVDD.
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        enum:
          - cirrus,lochnagar2-micvdd

      SYSVDD-supply:
        description:
          Primary power supply for the Lochnagar.
    required:
      - compatible

  MIC1VDD:
    description:
      Initialisation data for the MIC1VDD supplies.
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        enum:
          - cirrus,lochnagar2-mic1vdd

      cirrus,micbias-input:
        description:
          A property selecting which of the CODEC minicard micbias outputs
          should be used.
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 1
        maximum: 4

      MICBIAS1-supply:
        description:
          Regulator supplies for the MIC1VDD outputs, supplying the digital
          microphones, normally supplied from the attached CODEC.
    required:
      - compatible

  MIC2VDD:
    description:
      Initialisation data for the MIC2VDD supplies.
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        enum:
          - cirrus,lochnagar2-mic2vdd

      cirrus,micbias-input:
        description:
          A property selecting which of the CODEC minicard micbias outputs
          should be used.
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 1
        maximum: 4

      MICBIAS2-supply:
        description:
          Regulator supplies for the MIC2VDD outputs, supplying the digital
          microphones, normally supplied from the attached CODEC.
    required:
      - compatible

  VDD1V8:
    description:
      Recommended fixed regulator for the VDD1V8 regulator, which supplies
      the CODECs analog and 1.8V digital supplies.
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        enum:
          - regulator-fixed

      regulator-min-microvolt:
        const: 1800000

      regulator-max-microvolt:
        const: 1800000

      vin-supply:
        description:
          Should be set to same supply as SYSVDD
    required:
      - compatible
      - regulator-min-microvolt
      - regulator-max-microvolt
      - regulator-boot-on
      - regulator-always-on
      - vin-supply

required:
  - compatible
  - reg
  - reset-gpios
  - lochnagar-clk
  - pinctrl

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/lochnagar.h>
    #include <dt-bindings/pinctrl/lochnagar.h>
    i2c@e0004000 {
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0xe0004000 0x1000>;

        lochnagar: lochnagar@22 {
            compatible = "cirrus,lochnagar2";
            reg = <0x22>;

            reset-gpios = <&gpio0 55 0>;
            present-gpios = <&gpio0 60 0>;

            lochnagarclk: lochnagar-clk {
                compatible = "cirrus,lochnagar2-clk";

                #clock-cells = <1>;
                clocks = <&clkaudio>, <&clkpmic>;
                clock-names = "ln-gf-mclk2", "ln-pmic-32k";

                assigned-clocks = <&lochnagarclk LOCHNAGAR_CDC_MCLK1>,
                                  <&lochnagarclk LOCHNAGAR_CDC_MCLK2>;
                assigned-clock-parents = <&clkaudio>, <&clkpmic>;
            };

            clkpmic: lochnagar-pmic32k {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <32768>;
            };

            pinctrl {
                compatible = "cirrus,lochnagar-pinctrl";

                gpio-controller;
                #gpio-cells = <2>;
                gpio-ranges = <&lochnagar 0 0 LOCHNAGAR2_PIN_NUM_GPIOS>;

                pinctrl-names = "default";
                pinctrl-0 = <&pinsettings>;

                pinsettings: pin-settings {
                    ap2aif-pins {
                        input-enable;
                        groups = "gf-aif1";
                        function = "codec-aif3";
                    };
                    codec2aif-pins {
                        output-enable;
                        groups = "codec-aif3";
                        function = "gf-aif1";
                    };
                };
            };

            lochnagar-sc {
                compatible = "cirrus,lochnagar2-soundcard";

                #sound-dai-cells = <1>;

                clocks = <&lochnagarclk LOCHNAGAR_SOUNDCARD_MCLK>;
                clock-names = "mclk";
            };

            lochnagar-hwmon {
                compatible = "cirrus,lochnagar2-hwmon";
            };

            MIC1VDD {
                compatible = "cirrus,lochnagar2-mic1vdd";

                cirrus,micbias-input = <3>;
            };

            MICVDD {
                compatible = "cirrus,lochnagar2-micvdd";

                SYSVDD-supply = <&wallvdd>;

                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
            };

            VDD1V8 {
                compatible = "regulator-fixed";

                regulator-name = "VDD1V8";
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
                regulator-boot-on;
                regulator-always-on;

                vin-supply = <&wallvdd>;
            };
        };
    };
