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