arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / Documentation / devicetree / bindings / slimbus / qcom,slim-ngd.yaml
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
7 title: Qualcomm SoC SLIMBus Non Generic Device (NGD) Controller
8
9 maintainers:
10   - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
11   - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
12
13 description:
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
19 properties:
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
48 patternProperties:
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
61 required:
62   - compatible
63   - reg
64   - "#address-cells"
65   - "#size-cells"
66   - dmas
67   - dma-names
68   - interrupts
69
70 additionalProperties: false
71
72 examples:
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     };