blob: abf61c15246eb62262bec1e05ade868df69d2f6b [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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 };