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