Linux Audio

Check our new training course

Embedded Linux training

Mar 31-Apr 8, 2025
Register
Loading...
  1# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/slimbus/qcom,slim-ngd.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Qualcomm SoC SLIMBus Non Generic Device (NGD) Controller
  8
  9maintainers:
 10  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
 11  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 12
 13description:
 14  SLIMBus NGD controller is a light-weight driver responsible for communicating
 15  with SLIMBus slaves directly over the bus using messaging interface and
 16  communicating with master component residing on ADSP for bandwidth and
 17  data-channel management
 18
 19properties:
 20  compatible:
 21    enum:
 22      - qcom,slim-ngd-v1.5.0        # for MSM8996
 23      - qcom,slim-ngd-v2.1.0        # for SDM845
 24
 25  reg:
 26    maxItems: 1
 27
 28  "#address-cells":
 29    const: 1
 30
 31  "#size-cells":
 32    const: 0
 33
 34  dmas:
 35    maxItems: 2
 36
 37  dma-names:
 38    items:
 39      - const: rx
 40      - const: tx
 41
 42  interrupts:
 43    maxItems: 1
 44
 45  iommus:
 46    maxItems: 1
 47
 48patternProperties:
 49  "^slim@[0-9a-f]+$":
 50    type: object
 51    $ref: slimbus.yaml#
 52    description:
 53      Each subnode represents an instance of NGD
 54
 55    properties:
 56      reg:
 57        maxItems: 1
 58
 59    unevaluatedProperties: false
 60
 61required:
 62  - compatible
 63  - reg
 64  - "#address-cells"
 65  - "#size-cells"
 66  - dmas
 67  - dma-names
 68  - interrupts
 69
 70additionalProperties: false
 71
 72examples:
 73  - |
 74    #include <dt-bindings/gpio/gpio.h>
 75    #include <dt-bindings/interrupt-controller/arm-gic.h>
 76
 77    slim-ngd@171c0000 {
 78        compatible = "qcom,slim-ngd-v2.1.0";
 79        reg = <0x171c0000 0x2c000>;
 80        interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
 81
 82        dmas = <&slimbam 3>, <&slimbam 4>;
 83        dma-names = "rx", "tx";
 84        iommus = <&apps_smmu 0x1806 0x0>;
 85        #address-cells = <1>;
 86        #size-cells = <0>;
 87
 88        slim@1 {
 89            reg = <1>;
 90            #address-cells = <2>;
 91            #size-cells = <0>;
 92
 93            codec@1,0 {
 94                compatible = "slim217,250";
 95                reg = <1 0>;
 96                slim-ifc-dev = <&wcd9340_ifd>;
 97
 98                #sound-dai-cells = <1>;
 99
100                interrupts-extended = <&tlmm 54 IRQ_TYPE_LEVEL_HIGH>;
101                interrupt-controller;
102                #interrupt-cells = <1>;
103
104                #clock-cells = <0>;
105                clock-frequency = <9600000>;
106                clock-output-names = "mclk";
107                qcom,micbias1-microvolt = <1800000>;
108                qcom,micbias2-microvolt = <1800000>;
109                qcom,micbias3-microvolt = <1800000>;
110                qcom,micbias4-microvolt = <1800000>;
111
112                #address-cells = <1>;
113                #size-cells = <1>;
114
115                reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
116
117                /* Rest of the WCD9340 codec */
118            };
119        };
120    };