linux-zen-desktop/Documentation/devicetree/bindings/mfd/cirrus,lochnagar.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>;
};
};
};