linux/Documentation/devicetree/bindings/mfd/cirrus,lochnagar.yaml
Rob Herring 4828556dca dt-bindings: Use 'additionalProperties' instead of 'unevaluatedProperties'
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>
2020-10-07 11:28:30 -05:00

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>;
};
};
};