Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

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 clock portion of
the driver.

Also see these documents for generic binding information:
  [1] Clock : ../clock/clock-bindings.txt

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

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

Required properties:

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

  - #clock-cells : Must be 1. The first cell indicates the clock
    number, see [2] for available clocks and [1].

Optional properties:

  - clocks : Must contain an entry for each clock in clock-names.
  - clock-names : May contain entries for each of the following
    clocks:
     - ln-cdc-clkout : Output clock from CODEC card.
     - ln-dsp-clkout : Output clock from DSP card.
     - ln-gf-mclk1,ln-gf-mclk2,ln-gf-mclk3,ln-gf-mclk4 : Optional
       input audio clocks from host system.
     - ln-psia1-mclk, ln-psia2-mclk : Optional input audio clocks from
       external connector.
     - ln-spdif-mclk : Optional input audio clock from SPDIF.
     - ln-spdif-clkout : Optional input audio clock from SPDIF.
     - ln-adat-mclk : Optional input audio clock from ADAT.
     - ln-pmic-32k : On board fixed clock.
     - ln-clk-12m : On board fixed clock.
     - ln-clk-11m : On board fixed clock.
     - ln-clk-24m : On board fixed clock.
     - ln-clk-22m : On board fixed clock.
     - ln-clk-8m : On board fixed clock.
     - ln-usb-clk-24m : On board fixed clock.
     - ln-usb-clk-12m : On board fixed clock.

  - assigned-clocks : A list of Lochnagar clocks to be reparented, see
    [2] for available clocks.
  - assigned-clock-parents : Parents to be assigned to the clocks
    listed in "assigned-clocks".

Optional nodes:

  - fixed-clock nodes may be registered for the following on board clocks:
     - ln-pmic-32k : 32768 Hz
     - ln-clk-12m : 12288000 Hz
     - ln-clk-11m : 11298600 Hz
     - ln-clk-24m : 24576000 Hz
     - ln-clk-22m : 22579200 Hz
     - ln-clk-8m : 8192000 Hz
     - ln-usb-clk-24m : 24576000 Hz
     - ln-usb-clk-12m : 12288000 Hz

Example:

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

		#clock-cells = <1>;

		clocks = <&clk-audio>, <&clk_pmic>;
		clock-names = "ln-gf-mclk2", "ln-pmic-32k";

		assigned-clocks = <&lochnagar-clk LOCHNAGAR_CDC_MCLK1>,
				  <&lochnagar-clk LOCHNAGAR_CDC_MCLK2>;
		assigned-clock-parents = <&clk-audio>,
					 <&clk-pmic>;
	};

	clk-pmic: clk-pmic {
		compatible = "fixed-clock";
		clock-cells = <0>;
		clock-frequency = <32768>;
	};
};