366 lines
9.3 KiB
YAML
366 lines
9.3 KiB
YAML
|
# 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>;
|
||
|
};
|
||
|
};
|
||
|
};
|