18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/cirrus,lochnagar.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Cirrus Logic Lochnagar Audio Development Board 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - patches@opensource.cirrus.com 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cidescription: | 138c2ecf20Sopenharmony_ci Lochnagar is an evaluation and development board for Cirrus Logic 148c2ecf20Sopenharmony_ci Smart CODEC and Amp devices. It allows the connection of most Cirrus 158c2ecf20Sopenharmony_ci Logic devices on mini-cards, as well as allowing connection of 168c2ecf20Sopenharmony_ci various application processor systems to provide a full evaluation 178c2ecf20Sopenharmony_ci platform. Audio system topology, clocking and power can all be 188c2ecf20Sopenharmony_ci controlled through the Lochnagar, allowing the device under test 198c2ecf20Sopenharmony_ci to be used in a variety of possible use cases. 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci Also see these documents for generic binding information: 228c2ecf20Sopenharmony_ci [1] GPIO : ../gpio/gpio.txt 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci And these for relevant defines: 258c2ecf20Sopenharmony_ci [2] include/dt-bindings/pinctrl/lochnagar.h 268c2ecf20Sopenharmony_ci [3] include/dt-bindings/clock/lochnagar.h 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci And these documents for the required sub-node binding details: 298c2ecf20Sopenharmony_ci [4] Clock: ../clock/cirrus,lochnagar.yaml 308c2ecf20Sopenharmony_ci [5] Pinctrl: ../pinctrl/cirrus,lochnagar.yaml 318c2ecf20Sopenharmony_ci [6] Sound: ../sound/cirrus,lochnagar.yaml 328c2ecf20Sopenharmony_ci [7] Hardware Monitor: ../hwmon/cirrus,lochnagar.yaml 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ciallOf: 358c2ecf20Sopenharmony_ci - if: 368c2ecf20Sopenharmony_ci properties: 378c2ecf20Sopenharmony_ci compatible: 388c2ecf20Sopenharmony_ci enum: 398c2ecf20Sopenharmony_ci - cirrus,lochnagar2 408c2ecf20Sopenharmony_ci then: 418c2ecf20Sopenharmony_ci properties: 428c2ecf20Sopenharmony_ci lochnagar-hwmon: 438c2ecf20Sopenharmony_ci type: object 448c2ecf20Sopenharmony_ci $ref: /schemas/hwmon/cirrus,lochnagar.yaml# 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci lochnagar-sc: 478c2ecf20Sopenharmony_ci type: object 488c2ecf20Sopenharmony_ci $ref: /schemas/sound/cirrus,lochnagar.yaml# 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ciproperties: 518c2ecf20Sopenharmony_ci compatible: 528c2ecf20Sopenharmony_ci enum: 538c2ecf20Sopenharmony_ci - cirrus,lochnagar1 548c2ecf20Sopenharmony_ci - cirrus,lochnagar2 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci reg: 578c2ecf20Sopenharmony_ci const: 0x22 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci reset-gpios: 608c2ecf20Sopenharmony_ci maxItems: 1 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci present-gpios: 638c2ecf20Sopenharmony_ci description: | 648c2ecf20Sopenharmony_ci Host present line, indicating the presence of a 658c2ecf20Sopenharmony_ci host system, see [1]. This can be omitted if the present line is 668c2ecf20Sopenharmony_ci tied in hardware. 678c2ecf20Sopenharmony_ci maxItems: 1 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci lochnagar-clk: 708c2ecf20Sopenharmony_ci type: object 718c2ecf20Sopenharmony_ci $ref: /schemas/clock/cirrus,lochnagar.yaml# 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci lochnagar-pmic32k: 748c2ecf20Sopenharmony_ci type: object 758c2ecf20Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 768c2ecf20Sopenharmony_ci properties: 778c2ecf20Sopenharmony_ci clock-frequency: 788c2ecf20Sopenharmony_ci const: 32768 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci lochnagar-clk12m: 818c2ecf20Sopenharmony_ci type: object 828c2ecf20Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 838c2ecf20Sopenharmony_ci properties: 848c2ecf20Sopenharmony_ci clock-frequency: 858c2ecf20Sopenharmony_ci const: 12288000 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci lochnagar-clk11m: 888c2ecf20Sopenharmony_ci type: object 898c2ecf20Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 908c2ecf20Sopenharmony_ci properties: 918c2ecf20Sopenharmony_ci clock-frequency: 928c2ecf20Sopenharmony_ci const: 11298600 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci lochnagar-clk24m: 958c2ecf20Sopenharmony_ci type: object 968c2ecf20Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 978c2ecf20Sopenharmony_ci properties: 988c2ecf20Sopenharmony_ci clock-frequency: 998c2ecf20Sopenharmony_ci const: 24576000 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci lochnagar-clk22m: 1028c2ecf20Sopenharmony_ci type: object 1038c2ecf20Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 1048c2ecf20Sopenharmony_ci properties: 1058c2ecf20Sopenharmony_ci clock-frequency: 1068c2ecf20Sopenharmony_ci const: 22579200 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci lochnagar-clk8m: 1098c2ecf20Sopenharmony_ci type: object 1108c2ecf20Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 1118c2ecf20Sopenharmony_ci properties: 1128c2ecf20Sopenharmony_ci clock-frequency: 1138c2ecf20Sopenharmony_ci const: 8192000 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci lochnagar-usb24m: 1168c2ecf20Sopenharmony_ci type: object 1178c2ecf20Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 1188c2ecf20Sopenharmony_ci properties: 1198c2ecf20Sopenharmony_ci clock-frequency: 1208c2ecf20Sopenharmony_ci const: 24576000 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci lochnagar-usb12m: 1238c2ecf20Sopenharmony_ci type: object 1248c2ecf20Sopenharmony_ci $ref: /schemas/clock/fixed-clock.yaml# 1258c2ecf20Sopenharmony_ci properties: 1268c2ecf20Sopenharmony_ci clock-frequency: 1278c2ecf20Sopenharmony_ci const: 12288000 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci lochnagar-pinctrl: 1308c2ecf20Sopenharmony_ci type: object 1318c2ecf20Sopenharmony_ci $ref: /schemas/pinctrl/cirrus,lochnagar.yaml# 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci lochnagar-hwmon: 1348c2ecf20Sopenharmony_ci type: object 1358c2ecf20Sopenharmony_ci $ref: /schemas/hwmon/cirrus,lochnagar.yaml# 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ci lochnagar-sc: 1388c2ecf20Sopenharmony_ci type: object 1398c2ecf20Sopenharmony_ci $ref: /schemas/sound/cirrus,lochnagar.yaml# 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci VDDCORE: 1428c2ecf20Sopenharmony_ci description: 1438c2ecf20Sopenharmony_ci Initialisation data for the VDDCORE regulator, which supplies the 1448c2ecf20Sopenharmony_ci CODECs digital core if not being provided by an internal regulator. 1458c2ecf20Sopenharmony_ci type: object 1468c2ecf20Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 1478c2ecf20Sopenharmony_ci properties: 1488c2ecf20Sopenharmony_ci compatible: 1498c2ecf20Sopenharmony_ci enum: 1508c2ecf20Sopenharmony_ci - cirrus,lochnagar2-vddcore 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_ci SYSVDD-supply: 1538c2ecf20Sopenharmony_ci description: 1548c2ecf20Sopenharmony_ci Primary power supply for the Lochnagar. 1558c2ecf20Sopenharmony_ci required: 1568c2ecf20Sopenharmony_ci - compatible 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci MICVDD: 1598c2ecf20Sopenharmony_ci description: 1608c2ecf20Sopenharmony_ci Initialisation data for the MICVDD regulator, which supplies the 1618c2ecf20Sopenharmony_ci CODECs MICVDD. 1628c2ecf20Sopenharmony_ci type: object 1638c2ecf20Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 1648c2ecf20Sopenharmony_ci properties: 1658c2ecf20Sopenharmony_ci compatible: 1668c2ecf20Sopenharmony_ci enum: 1678c2ecf20Sopenharmony_ci - cirrus,lochnagar2-micvdd 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci SYSVDD-supply: 1708c2ecf20Sopenharmony_ci description: 1718c2ecf20Sopenharmony_ci Primary power supply for the Lochnagar. 1728c2ecf20Sopenharmony_ci required: 1738c2ecf20Sopenharmony_ci - compatible 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci MIC1VDD: 1768c2ecf20Sopenharmony_ci description: 1778c2ecf20Sopenharmony_ci Initialisation data for the MIC1VDD supplies. 1788c2ecf20Sopenharmony_ci type: object 1798c2ecf20Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 1808c2ecf20Sopenharmony_ci properties: 1818c2ecf20Sopenharmony_ci compatible: 1828c2ecf20Sopenharmony_ci enum: 1838c2ecf20Sopenharmony_ci - cirrus,lochnagar2-mic1vdd 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci cirrus,micbias-input: 1868c2ecf20Sopenharmony_ci description: 1878c2ecf20Sopenharmony_ci A property selecting which of the CODEC minicard micbias outputs 1888c2ecf20Sopenharmony_ci should be used. 1898c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 1908c2ecf20Sopenharmony_ci minimum: 1 1918c2ecf20Sopenharmony_ci maximum: 4 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci MICBIAS1-supply: 1948c2ecf20Sopenharmony_ci description: 1958c2ecf20Sopenharmony_ci Regulator supplies for the MIC1VDD outputs, supplying the digital 1968c2ecf20Sopenharmony_ci microphones, normally supplied from the attached CODEC. 1978c2ecf20Sopenharmony_ci required: 1988c2ecf20Sopenharmony_ci - compatible 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci MIC2VDD: 2018c2ecf20Sopenharmony_ci description: 2028c2ecf20Sopenharmony_ci Initialisation data for the MIC2VDD supplies. 2038c2ecf20Sopenharmony_ci type: object 2048c2ecf20Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 2058c2ecf20Sopenharmony_ci properties: 2068c2ecf20Sopenharmony_ci compatible: 2078c2ecf20Sopenharmony_ci enum: 2088c2ecf20Sopenharmony_ci - cirrus,lochnagar2-mic2vdd 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ci cirrus,micbias-input: 2118c2ecf20Sopenharmony_ci description: 2128c2ecf20Sopenharmony_ci A property selecting which of the CODEC minicard micbias outputs 2138c2ecf20Sopenharmony_ci should be used. 2148c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 2158c2ecf20Sopenharmony_ci minimum: 1 2168c2ecf20Sopenharmony_ci maximum: 4 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci MICBIAS2-supply: 2198c2ecf20Sopenharmony_ci description: 2208c2ecf20Sopenharmony_ci Regulator supplies for the MIC2VDD outputs, supplying the digital 2218c2ecf20Sopenharmony_ci microphones, normally supplied from the attached CODEC. 2228c2ecf20Sopenharmony_ci required: 2238c2ecf20Sopenharmony_ci - compatible 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci VDD1V8: 2268c2ecf20Sopenharmony_ci description: 2278c2ecf20Sopenharmony_ci Recommended fixed regulator for the VDD1V8 regulator, which supplies 2288c2ecf20Sopenharmony_ci the CODECs analog and 1.8V digital supplies. 2298c2ecf20Sopenharmony_ci type: object 2308c2ecf20Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 2318c2ecf20Sopenharmony_ci properties: 2328c2ecf20Sopenharmony_ci compatible: 2338c2ecf20Sopenharmony_ci enum: 2348c2ecf20Sopenharmony_ci - regulator-fixed 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci regulator-min-microvolt: 2378c2ecf20Sopenharmony_ci const: 1800000 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci regulator-max-microvolt: 2408c2ecf20Sopenharmony_ci const: 1800000 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci vin-supply: 2438c2ecf20Sopenharmony_ci description: 2448c2ecf20Sopenharmony_ci Should be set to same supply as SYSVDD 2458c2ecf20Sopenharmony_ci required: 2468c2ecf20Sopenharmony_ci - compatible 2478c2ecf20Sopenharmony_ci - regulator-min-microvolt 2488c2ecf20Sopenharmony_ci - regulator-max-microvolt 2498c2ecf20Sopenharmony_ci - regulator-boot-on 2508c2ecf20Sopenharmony_ci - regulator-always-on 2518c2ecf20Sopenharmony_ci - vin-supply 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_cirequired: 2548c2ecf20Sopenharmony_ci - compatible 2558c2ecf20Sopenharmony_ci - reg 2568c2ecf20Sopenharmony_ci - reset-gpios 2578c2ecf20Sopenharmony_ci - lochnagar-clk 2588c2ecf20Sopenharmony_ci - lochnagar-pinctrl 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_ciadditionalProperties: false 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ciexamples: 2638c2ecf20Sopenharmony_ci - | 2648c2ecf20Sopenharmony_ci #include <dt-bindings/clk/lochnagar.h> 2658c2ecf20Sopenharmony_ci #include <dt-bindings/pinctrl/lochnagar.h> 2668c2ecf20Sopenharmony_ci i2c@e0004000 { 2678c2ecf20Sopenharmony_ci #address-cells = <1>; 2688c2ecf20Sopenharmony_ci #size-cells = <0>; 2698c2ecf20Sopenharmony_ci reg = <0xe0004000 0x1000>; 2708c2ecf20Sopenharmony_ci 2718c2ecf20Sopenharmony_ci lochnagar: lochnagar@22 { 2728c2ecf20Sopenharmony_ci compatible = "cirrus,lochnagar2"; 2738c2ecf20Sopenharmony_ci reg = <0x22>; 2748c2ecf20Sopenharmony_ci 2758c2ecf20Sopenharmony_ci reset-gpios = <&gpio0 55 0>; 2768c2ecf20Sopenharmony_ci present-gpios = <&gpio0 60 0>; 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ci lochnagarclk: lochnagar-clk { 2798c2ecf20Sopenharmony_ci compatible = "cirrus,lochnagar2-clk"; 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci #clock-cells = <1>; 2828c2ecf20Sopenharmony_ci clocks = <&clkaudio>, <&clkpmic>; 2838c2ecf20Sopenharmony_ci clock-names = "ln-gf-mclk2", "ln-pmic-32k"; 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci assigned-clocks = <&lochnagarclk LOCHNAGAR_CDC_MCLK1>, 2868c2ecf20Sopenharmony_ci <&lochnagarclk LOCHNAGAR_CDC_MCLK2>; 2878c2ecf20Sopenharmony_ci assigned-clock-parents = <&clkaudio>, <&clkpmic>; 2888c2ecf20Sopenharmony_ci }; 2898c2ecf20Sopenharmony_ci 2908c2ecf20Sopenharmony_ci clkpmic: lochnagar-pmic32k { 2918c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 2928c2ecf20Sopenharmony_ci #clock-cells = <0>; 2938c2ecf20Sopenharmony_ci clock-frequency = <32768>; 2948c2ecf20Sopenharmony_ci }; 2958c2ecf20Sopenharmony_ci 2968c2ecf20Sopenharmony_ci lochnagar-pinctrl { 2978c2ecf20Sopenharmony_ci compatible = "cirrus,lochnagar-pinctrl"; 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_ci gpio-controller; 3008c2ecf20Sopenharmony_ci #gpio-cells = <2>; 3018c2ecf20Sopenharmony_ci gpio-ranges = <&lochnagar 0 0 LOCHNAGAR2_PIN_NUM_GPIOS>; 3028c2ecf20Sopenharmony_ci 3038c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3048c2ecf20Sopenharmony_ci pinctrl-0 = <&pinsettings>; 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci pinsettings: pin-settings { 3078c2ecf20Sopenharmony_ci ap2aif-pins { 3088c2ecf20Sopenharmony_ci input-enable; 3098c2ecf20Sopenharmony_ci groups = "gf-aif1"; 3108c2ecf20Sopenharmony_ci function = "codec-aif3"; 3118c2ecf20Sopenharmony_ci }; 3128c2ecf20Sopenharmony_ci codec2aif-pins { 3138c2ecf20Sopenharmony_ci output-enable; 3148c2ecf20Sopenharmony_ci groups = "codec-aif3"; 3158c2ecf20Sopenharmony_ci function = "gf-aif1"; 3168c2ecf20Sopenharmony_ci }; 3178c2ecf20Sopenharmony_ci }; 3188c2ecf20Sopenharmony_ci }; 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_ci lochnagar-sc { 3218c2ecf20Sopenharmony_ci compatible = "cirrus,lochnagar2-soundcard"; 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ci #sound-dai-cells = <1>; 3248c2ecf20Sopenharmony_ci 3258c2ecf20Sopenharmony_ci clocks = <&lochnagarclk LOCHNAGAR_SOUNDCARD_MCLK>; 3268c2ecf20Sopenharmony_ci clock-names = "mclk"; 3278c2ecf20Sopenharmony_ci }; 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_ci lochnagar-hwmon { 3308c2ecf20Sopenharmony_ci compatible = "cirrus,lochnagar2-hwmon"; 3318c2ecf20Sopenharmony_ci }; 3328c2ecf20Sopenharmony_ci 3338c2ecf20Sopenharmony_ci MIC1VDD { 3348c2ecf20Sopenharmony_ci compatible = "cirrus,lochnagar2-mic1vdd"; 3358c2ecf20Sopenharmony_ci 3368c2ecf20Sopenharmony_ci cirrus,micbias-input = <3>; 3378c2ecf20Sopenharmony_ci }; 3388c2ecf20Sopenharmony_ci 3398c2ecf20Sopenharmony_ci MICVDD { 3408c2ecf20Sopenharmony_ci compatible = "cirrus,lochnagar2-micvdd"; 3418c2ecf20Sopenharmony_ci 3428c2ecf20Sopenharmony_ci SYSVDD-supply = <&wallvdd>; 3438c2ecf20Sopenharmony_ci 3448c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 3458c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 3468c2ecf20Sopenharmony_ci }; 3478c2ecf20Sopenharmony_ci 3488c2ecf20Sopenharmony_ci VDD1V8 { 3498c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 3508c2ecf20Sopenharmony_ci 3518c2ecf20Sopenharmony_ci regulator-name = "VDD1V8"; 3528c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 3538c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 3548c2ecf20Sopenharmony_ci regulator-boot-on; 3558c2ecf20Sopenharmony_ci regulator-always-on; 3568c2ecf20Sopenharmony_ci 3578c2ecf20Sopenharmony_ci vin-supply = <&wallvdd>; 3588c2ecf20Sopenharmony_ci }; 3598c2ecf20Sopenharmony_ci }; 3608c2ecf20Sopenharmony_ci }; 361