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.

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.txt
  [5] Pinctrl: ../pinctrl/cirrus,lochnagar.txt
  [6] Regulator: ../regulator/cirrus,lochnagar.txt
  [7] Sound: ../sound/cirrus,lochnagar.txt
  [8] Hardware Monitor: ../hwmon/cirrus,lochnagar.txt

Required properties:

  - compatible : One of the following strings:
                 "cirrus,lochnagar1"
                 "cirrus,lochnagar2"

  - reg : I2C slave address

  - reset-gpios : Reset line to the Lochnagar, see [1].

Required sub-nodes:

  - lochnagar-clk : Binding for the clocking components, see [4].

  - lochnagar-pinctrl : Binding for the pin control components, see [5].

Optional sub-nodes:

  - Bindings for the regulator components, see [6]. Only available on
    Lochnagar 2.

  - lochnagar-sc : Binding for the sound card components, see [7].
                   Only available on Lochnagar 2.
  - lochnagar-hwmon : Binding for the hardware monitor components, see [8].
                      Only available on Lochnagar 2.

Optional properties:

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

Example:

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

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

	lochnagar-clk {
		compatible = "cirrus,lochnagar2-clk";
		...
	};

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

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

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