Cirrus Logic Lochnagar Audio Development Board

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.

This binding document describes the binding for the regulator portion
of the driver.

Also see these documents for generic binding information:
  [1] Regulator: ../regulator/regulator.txt

This binding must be part of the Lochnagar MFD binding:
  [2] ../mfd/cirrus,lochnagar.txt

Optional sub-nodes:

  - VDDCORE : Initialisation data for the VDDCORE regulator, which
    supplies the CODECs digital core if it has no build regulator for that
    purpose.
      Required Properties:
      - compatible : One of the following strings:
                     "cirrus,lochnagar2-vddcore"
      - SYSVDD-supply: Primary power supply for the Lochnagar.

  - MICVDD : Initialisation data for the MICVDD regulator, which
    supplies the CODECs MICVDD.
      Required Properties:
      - compatible : One of the following strings:
                     "cirrus,lochnagar2-micvdd"
      - SYSVDD-supply: Primary power supply for the Lochnagar.

  - MIC1VDD, MIC2VDD : Initialisation data for the MICxVDD supplies.
      Required Properties:
      - compatible : One of the following strings:
                     "cirrus,lochnagar2-mic1vdd", "cirrus,lochnagar2-mic2vdd"
      Optional Properties:
      - cirrus,micbias-input : A property selecting which of the CODEC
        minicard micbias outputs should be used, valid values are 1 - 4.
      - MICBIAS1-supply, MICBIAS2-supply: Regulator supplies for the
        MICxVDD outputs, supplying the digital microphones, normally
        supplied from the attached CODEC.

  - VDD1V8 : Recommended fixed regulator for the VDD1V8 regulator, which supplies the
    CODECs analog and 1.8V digital supplies.
      Required Properties:
      - compatible : Should be set to "regulator-fixed"
      - regulator-min-microvolt : Should be set to 1.8V
      - regulator-max-microvolt : Should be set to 1.8V
      - regulator-boot-on
      - regulator-always-on
      - vin-supply : Should be set to same supply as SYSVDD

Example:

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

		SYSVDD-supply = <&wallvdd>;

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

	lochnagar-vdd1v8: VDD1V8 {
		compatible = "regulator-fixed";

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

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

