In cases where we don't reference another schema, 'additionalProperties' can be used instead. This is preferred for now as 'unevaluatedProperties' support isn't implemented yet. In a few cases, this means adding some missing property definitions of which most are for SPI bus properties. 'unevaluatedProperties' is not going to work for the SPI bus properties anyways as they are evaluated from the parent node, not the SPI child node. Acked-by: Mark Brown <broonie@kernel.org> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Lee Jones <lee.jones@linaro.org> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Acked-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20201005183830.486085-3-robh@kernel.org Signed-off-by: Rob Herring <robh@kernel.org>
361 lines
9.1 KiB
YAML
361 lines
9.1 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
|
|
|
|
lochnagar-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#
|
|
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#
|
|
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#
|
|
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#
|
|
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#
|
|
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
|
|
- lochnagar-pinctrl
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clk/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>;
|
|
};
|
|
|
|
lochnagar-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>;
|
|
};
|
|
};
|
|
};
|