162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/cirrus,lochnagar.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Cirrus Logic Lochnagar Audio Development Board 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - patches@opensource.cirrus.com 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci Lochnagar is an evaluation and development board for Cirrus Logic 1462306a36Sopenharmony_ci Smart CODEC and Amp devices. It allows the connection of most Cirrus 1562306a36Sopenharmony_ci Logic devices on mini-cards, as well as allowing connection of 1662306a36Sopenharmony_ci various application processor systems to provide a full evaluation 1762306a36Sopenharmony_ci platform. Audio system topology, clocking and power can all be 1862306a36Sopenharmony_ci controlled through the Lochnagar, allowing the device under test 1962306a36Sopenharmony_ci to be used in a variety of possible use cases. 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci Also see these documents for generic binding information: 2262306a36Sopenharmony_ci [1] GPIO : ../gpio/gpio.txt 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci And these for relevant defines: 2562306a36Sopenharmony_ci [2] include/dt-bindings/pinctrl/lochnagar.h 2662306a36Sopenharmony_ci [3] include/dt-bindings/clock/lochnagar.h 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci And these documents for the required sub-node binding details: 2962306a36Sopenharmony_ci [4] Clock: ../clock/cirrus,lochnagar.yaml 3062306a36Sopenharmony_ci [5] Pinctrl: ../pinctrl/cirrus,lochnagar.yaml 3162306a36Sopenharmony_ci [6] Sound: ../sound/cirrus,lochnagar.yaml 3262306a36Sopenharmony_ci [7] Hardware Monitor: ../hwmon/cirrus,lochnagar.yaml 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciallOf: 3562306a36Sopenharmony_ci - if: 3662306a36Sopenharmony_ci properties: 3762306a36Sopenharmony_ci compatible: 3862306a36Sopenharmony_ci enum: 3962306a36Sopenharmony_ci - cirrus,lochnagar2 4062306a36Sopenharmony_ci then: 4162306a36Sopenharmony_ci properties: 4262306a36Sopenharmony_ci lochnagar-hwmon: 4362306a36Sopenharmony_ci type: object 4462306a36Sopenharmony_ci $ref: /schemas/hwmon/cirrus,lochnagar.yaml# 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci lochnagar-sc: 4762306a36Sopenharmony_ci type: object 4862306a36Sopenharmony_ci $ref: /schemas/sound/cirrus,lochnagar.yaml# 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciproperties: 5162306a36Sopenharmony_ci compatible: 5262306a36Sopenharmony_ci enum: 5362306a36Sopenharmony_ci - cirrus,lochnagar1 5462306a36Sopenharmony_ci - cirrus,lochnagar2 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci reg: 5762306a36Sopenharmony_ci const: 0x22 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci reset-gpios: 6062306a36Sopenharmony_ci maxItems: 1 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci present-gpios: 6362306a36Sopenharmony_ci description: | 6462306a36Sopenharmony_ci Host present line, indicating the presence of a 6562306a36Sopenharmony_ci host system, see [1]. This can be omitted if the present line is 6662306a36Sopenharmony_ci tied in hardware. 6762306a36Sopenharmony_ci maxItems: 1 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci lochnagar-clk: 7062306a36Sopenharmony_ci type: object 7162306a36Sopenharmony_ci $ref: /schemas/clock/cirrus,lochnagar.yaml# 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci lochnagar-pmic32k: 7462306a36Sopenharmony_ci type: object 7562306a36Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 7662306a36Sopenharmony_ci properties: 7762306a36Sopenharmony_ci clock-frequency: 7862306a36Sopenharmony_ci const: 32768 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci lochnagar-clk12m: 8162306a36Sopenharmony_ci type: object 8262306a36Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 8362306a36Sopenharmony_ci properties: 8462306a36Sopenharmony_ci clock-frequency: 8562306a36Sopenharmony_ci const: 12288000 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci lochnagar-clk11m: 8862306a36Sopenharmony_ci type: object 8962306a36Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 9062306a36Sopenharmony_ci properties: 9162306a36Sopenharmony_ci clock-frequency: 9262306a36Sopenharmony_ci const: 11298600 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci lochnagar-clk24m: 9562306a36Sopenharmony_ci type: object 9662306a36Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 9762306a36Sopenharmony_ci properties: 9862306a36Sopenharmony_ci clock-frequency: 9962306a36Sopenharmony_ci const: 24576000 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci lochnagar-clk22m: 10262306a36Sopenharmony_ci type: object 10362306a36Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 10462306a36Sopenharmony_ci properties: 10562306a36Sopenharmony_ci clock-frequency: 10662306a36Sopenharmony_ci const: 22579200 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci lochnagar-clk8m: 10962306a36Sopenharmony_ci type: object 11062306a36Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 11162306a36Sopenharmony_ci properties: 11262306a36Sopenharmony_ci clock-frequency: 11362306a36Sopenharmony_ci const: 8192000 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci lochnagar-usb24m: 11662306a36Sopenharmony_ci type: object 11762306a36Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 11862306a36Sopenharmony_ci properties: 11962306a36Sopenharmony_ci clock-frequency: 12062306a36Sopenharmony_ci const: 24576000 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci lochnagar-usb12m: 12362306a36Sopenharmony_ci type: object 12462306a36Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 12562306a36Sopenharmony_ci properties: 12662306a36Sopenharmony_ci clock-frequency: 12762306a36Sopenharmony_ci const: 12288000 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci pinctrl: 13062306a36Sopenharmony_ci type: object 13162306a36Sopenharmony_ci $ref: /schemas/pinctrl/cirrus,lochnagar.yaml# 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci lochnagar-hwmon: 13462306a36Sopenharmony_ci type: object 13562306a36Sopenharmony_ci $ref: /schemas/hwmon/cirrus,lochnagar.yaml# 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci lochnagar-sc: 13862306a36Sopenharmony_ci type: object 13962306a36Sopenharmony_ci $ref: /schemas/sound/cirrus,lochnagar.yaml# 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci VDDCORE: 14262306a36Sopenharmony_ci description: 14362306a36Sopenharmony_ci Initialisation data for the VDDCORE regulator, which supplies the 14462306a36Sopenharmony_ci CODECs digital core if not being provided by an internal regulator. 14562306a36Sopenharmony_ci type: object 14662306a36Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 14762306a36Sopenharmony_ci unevaluatedProperties: false 14862306a36Sopenharmony_ci properties: 14962306a36Sopenharmony_ci compatible: 15062306a36Sopenharmony_ci enum: 15162306a36Sopenharmony_ci - cirrus,lochnagar2-vddcore 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci SYSVDD-supply: 15462306a36Sopenharmony_ci description: 15562306a36Sopenharmony_ci Primary power supply for the Lochnagar. 15662306a36Sopenharmony_ci required: 15762306a36Sopenharmony_ci - compatible 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci MICVDD: 16062306a36Sopenharmony_ci description: 16162306a36Sopenharmony_ci Initialisation data for the MICVDD regulator, which supplies the 16262306a36Sopenharmony_ci CODECs MICVDD. 16362306a36Sopenharmony_ci type: object 16462306a36Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 16562306a36Sopenharmony_ci unevaluatedProperties: false 16662306a36Sopenharmony_ci properties: 16762306a36Sopenharmony_ci compatible: 16862306a36Sopenharmony_ci enum: 16962306a36Sopenharmony_ci - cirrus,lochnagar2-micvdd 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci SYSVDD-supply: 17262306a36Sopenharmony_ci description: 17362306a36Sopenharmony_ci Primary power supply for the Lochnagar. 17462306a36Sopenharmony_ci required: 17562306a36Sopenharmony_ci - compatible 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ci MIC1VDD: 17862306a36Sopenharmony_ci description: 17962306a36Sopenharmony_ci Initialisation data for the MIC1VDD supplies. 18062306a36Sopenharmony_ci type: object 18162306a36Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 18262306a36Sopenharmony_ci unevaluatedProperties: false 18362306a36Sopenharmony_ci properties: 18462306a36Sopenharmony_ci compatible: 18562306a36Sopenharmony_ci enum: 18662306a36Sopenharmony_ci - cirrus,lochnagar2-mic1vdd 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci cirrus,micbias-input: 18962306a36Sopenharmony_ci description: 19062306a36Sopenharmony_ci A property selecting which of the CODEC minicard micbias outputs 19162306a36Sopenharmony_ci should be used. 19262306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 19362306a36Sopenharmony_ci minimum: 1 19462306a36Sopenharmony_ci maximum: 4 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci MICBIAS1-supply: 19762306a36Sopenharmony_ci description: 19862306a36Sopenharmony_ci Regulator supplies for the MIC1VDD outputs, supplying the digital 19962306a36Sopenharmony_ci microphones, normally supplied from the attached CODEC. 20062306a36Sopenharmony_ci required: 20162306a36Sopenharmony_ci - compatible 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_ci MIC2VDD: 20462306a36Sopenharmony_ci description: 20562306a36Sopenharmony_ci Initialisation data for the MIC2VDD supplies. 20662306a36Sopenharmony_ci type: object 20762306a36Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 20862306a36Sopenharmony_ci unevaluatedProperties: false 20962306a36Sopenharmony_ci properties: 21062306a36Sopenharmony_ci compatible: 21162306a36Sopenharmony_ci enum: 21262306a36Sopenharmony_ci - cirrus,lochnagar2-mic2vdd 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci cirrus,micbias-input: 21562306a36Sopenharmony_ci description: 21662306a36Sopenharmony_ci A property selecting which of the CODEC minicard micbias outputs 21762306a36Sopenharmony_ci should be used. 21862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 21962306a36Sopenharmony_ci minimum: 1 22062306a36Sopenharmony_ci maximum: 4 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ci MICBIAS2-supply: 22362306a36Sopenharmony_ci description: 22462306a36Sopenharmony_ci Regulator supplies for the MIC2VDD outputs, supplying the digital 22562306a36Sopenharmony_ci microphones, normally supplied from the attached CODEC. 22662306a36Sopenharmony_ci required: 22762306a36Sopenharmony_ci - compatible 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci VDD1V8: 23062306a36Sopenharmony_ci description: 23162306a36Sopenharmony_ci Recommended fixed regulator for the VDD1V8 regulator, which supplies 23262306a36Sopenharmony_ci the CODECs analog and 1.8V digital supplies. 23362306a36Sopenharmony_ci type: object 23462306a36Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 23562306a36Sopenharmony_ci unevaluatedProperties: false 23662306a36Sopenharmony_ci properties: 23762306a36Sopenharmony_ci compatible: 23862306a36Sopenharmony_ci enum: 23962306a36Sopenharmony_ci - regulator-fixed 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ci regulator-min-microvolt: 24262306a36Sopenharmony_ci const: 1800000 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ci regulator-max-microvolt: 24562306a36Sopenharmony_ci const: 1800000 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ci vin-supply: 24862306a36Sopenharmony_ci description: 24962306a36Sopenharmony_ci Should be set to same supply as SYSVDD 25062306a36Sopenharmony_ci required: 25162306a36Sopenharmony_ci - compatible 25262306a36Sopenharmony_ci - regulator-min-microvolt 25362306a36Sopenharmony_ci - regulator-max-microvolt 25462306a36Sopenharmony_ci - regulator-boot-on 25562306a36Sopenharmony_ci - regulator-always-on 25662306a36Sopenharmony_ci - vin-supply 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_cirequired: 25962306a36Sopenharmony_ci - compatible 26062306a36Sopenharmony_ci - reg 26162306a36Sopenharmony_ci - reset-gpios 26262306a36Sopenharmony_ci - lochnagar-clk 26362306a36Sopenharmony_ci - pinctrl 26462306a36Sopenharmony_ci 26562306a36Sopenharmony_ciadditionalProperties: false 26662306a36Sopenharmony_ci 26762306a36Sopenharmony_ciexamples: 26862306a36Sopenharmony_ci - | 26962306a36Sopenharmony_ci #include <dt-bindings/clock/lochnagar.h> 27062306a36Sopenharmony_ci #include <dt-bindings/pinctrl/lochnagar.h> 27162306a36Sopenharmony_ci i2c@e0004000 { 27262306a36Sopenharmony_ci #address-cells = <1>; 27362306a36Sopenharmony_ci #size-cells = <0>; 27462306a36Sopenharmony_ci reg = <0xe0004000 0x1000>; 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ci lochnagar: lochnagar@22 { 27762306a36Sopenharmony_ci compatible = "cirrus,lochnagar2"; 27862306a36Sopenharmony_ci reg = <0x22>; 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ci reset-gpios = <&gpio0 55 0>; 28162306a36Sopenharmony_ci present-gpios = <&gpio0 60 0>; 28262306a36Sopenharmony_ci 28362306a36Sopenharmony_ci lochnagarclk: lochnagar-clk { 28462306a36Sopenharmony_ci compatible = "cirrus,lochnagar2-clk"; 28562306a36Sopenharmony_ci 28662306a36Sopenharmony_ci #clock-cells = <1>; 28762306a36Sopenharmony_ci clocks = <&clkaudio>, <&clkpmic>; 28862306a36Sopenharmony_ci clock-names = "ln-gf-mclk2", "ln-pmic-32k"; 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ci assigned-clocks = <&lochnagarclk LOCHNAGAR_CDC_MCLK1>, 29162306a36Sopenharmony_ci <&lochnagarclk LOCHNAGAR_CDC_MCLK2>; 29262306a36Sopenharmony_ci assigned-clock-parents = <&clkaudio>, <&clkpmic>; 29362306a36Sopenharmony_ci }; 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci clkpmic: lochnagar-pmic32k { 29662306a36Sopenharmony_ci compatible = "fixed-clock"; 29762306a36Sopenharmony_ci #clock-cells = <0>; 29862306a36Sopenharmony_ci clock-frequency = <32768>; 29962306a36Sopenharmony_ci }; 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ci pinctrl { 30262306a36Sopenharmony_ci compatible = "cirrus,lochnagar-pinctrl"; 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ci gpio-controller; 30562306a36Sopenharmony_ci #gpio-cells = <2>; 30662306a36Sopenharmony_ci gpio-ranges = <&lochnagar 0 0 LOCHNAGAR2_PIN_NUM_GPIOS>; 30762306a36Sopenharmony_ci 30862306a36Sopenharmony_ci pinctrl-names = "default"; 30962306a36Sopenharmony_ci pinctrl-0 = <&pinsettings>; 31062306a36Sopenharmony_ci 31162306a36Sopenharmony_ci pinsettings: pin-settings { 31262306a36Sopenharmony_ci ap2aif-pins { 31362306a36Sopenharmony_ci input-enable; 31462306a36Sopenharmony_ci groups = "gf-aif1"; 31562306a36Sopenharmony_ci function = "codec-aif3"; 31662306a36Sopenharmony_ci }; 31762306a36Sopenharmony_ci codec2aif-pins { 31862306a36Sopenharmony_ci output-enable; 31962306a36Sopenharmony_ci groups = "codec-aif3"; 32062306a36Sopenharmony_ci function = "gf-aif1"; 32162306a36Sopenharmony_ci }; 32262306a36Sopenharmony_ci }; 32362306a36Sopenharmony_ci }; 32462306a36Sopenharmony_ci 32562306a36Sopenharmony_ci lochnagar-sc { 32662306a36Sopenharmony_ci compatible = "cirrus,lochnagar2-soundcard"; 32762306a36Sopenharmony_ci 32862306a36Sopenharmony_ci #sound-dai-cells = <1>; 32962306a36Sopenharmony_ci 33062306a36Sopenharmony_ci clocks = <&lochnagarclk LOCHNAGAR_SOUNDCARD_MCLK>; 33162306a36Sopenharmony_ci clock-names = "mclk"; 33262306a36Sopenharmony_ci }; 33362306a36Sopenharmony_ci 33462306a36Sopenharmony_ci lochnagar-hwmon { 33562306a36Sopenharmony_ci compatible = "cirrus,lochnagar2-hwmon"; 33662306a36Sopenharmony_ci }; 33762306a36Sopenharmony_ci 33862306a36Sopenharmony_ci MIC1VDD { 33962306a36Sopenharmony_ci compatible = "cirrus,lochnagar2-mic1vdd"; 34062306a36Sopenharmony_ci 34162306a36Sopenharmony_ci cirrus,micbias-input = <3>; 34262306a36Sopenharmony_ci }; 34362306a36Sopenharmony_ci 34462306a36Sopenharmony_ci MICVDD { 34562306a36Sopenharmony_ci compatible = "cirrus,lochnagar2-micvdd"; 34662306a36Sopenharmony_ci 34762306a36Sopenharmony_ci SYSVDD-supply = <&wallvdd>; 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 35062306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 35162306a36Sopenharmony_ci }; 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci VDD1V8 { 35462306a36Sopenharmony_ci compatible = "regulator-fixed"; 35562306a36Sopenharmony_ci 35662306a36Sopenharmony_ci regulator-name = "VDD1V8"; 35762306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 35862306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 35962306a36Sopenharmony_ci regulator-boot-on; 36062306a36Sopenharmony_ci regulator-always-on; 36162306a36Sopenharmony_ci 36262306a36Sopenharmony_ci vin-supply = <&wallvdd>; 36362306a36Sopenharmony_ci }; 36462306a36Sopenharmony_ci }; 36562306a36Sopenharmony_ci }; 366