GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / soc / qcom / qcom,wcnss.yaml
1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/soc/qcom/qcom,wcnss.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm WCNSS
8
9 maintainers:
10   - Andy Gross <agross@kernel.org>
11   - Bjorn Andersson <bjorn.andersson@linaro.org>
12
13 description:
14   The Qualcomm WCNSS hardware consists of control block and a BT, WiFi and FM
15   radio block, all using SMD as command channels.
16
17 properties:
18   compatible:
19     const: qcom,wcnss
20
21   firmware-name:
22     $ref: /schemas/types.yaml#/definitions/string
23     default: "/*(DEBLOBBED)*/"
24     description:
25       Relative firmware image path for the WLAN NV blob.
26
27   qcom,mmio:
28     $ref: /schemas/types.yaml#/definitions/phandle
29     description: |
30       Reference to a node specifying the wcnss "ccu" and "dxe" register blocks.
31       The node must be compatible with one of the following::
32            - qcom,riva"
33            - qcom,pronto"
34
35   qcom,smd-channels:
36     $ref: /schemas/types.yaml#/definitions/string
37     const: WCNSS_CTRL
38     description:
39       Standard SMD property specifying the SMD channel used for communication
40       with the WiFi firmware.
41
42   bluetooth:
43     type: object
44     additionalProperties: false
45     properties:
46       compatible:
47         const: qcom,wcnss-bt
48
49       local-bd-address:
50         $ref: /schemas/types.yaml#/definitions/uint8-array
51         maxItems: 6
52         description:
53           See Documentation/devicetree/bindings/net/bluetooth.txt
54
55     required:
56       - compatible
57
58   wifi:
59     additionalProperties: false
60     type: object
61     properties:
62       compatible:
63         const: qcom,wcnss-wlan
64
65       interrupts:
66         maxItems: 2
67
68       interrupt-names:
69         items:
70           - const: tx
71           - const: rx
72
73       qcom,smem-states:
74         $ref: /schemas/types.yaml#/definitions/phandle-array
75         maxItems: 2
76         description:
77           Should reference the tx-enable and tx-rings-empty SMEM states.
78
79       qcom,smem-state-names:
80         items:
81           - const: tx-enable
82           - const: tx-rings-empty
83         description:
84           Names of SMEM states.
85
86     required:
87       - compatible
88       - interrupts
89       - interrupt-names
90       - qcom,smem-states
91       - qcom,smem-state-names
92
93 required:
94   - compatible
95   - qcom,mmio
96   - qcom,smd-channels
97
98 additionalProperties: false
99
100 examples:
101   - |
102     #include <dt-bindings/interrupt-controller/arm-gic.h>
103
104     smd-edge {
105         interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
106
107         qcom,ipc = <&apcs 8 17>;
108         qcom,smd-edge = <6>;
109         qcom,remote-pid = <4>;
110
111         label = "pronto";
112
113         wcnss {
114             compatible = "qcom,wcnss";
115             qcom,smd-channels = "WCNSS_CTRL";
116
117             qcom,mmio = <&pronto>;
118
119             bluetooth {
120                 compatible = "qcom,wcnss-bt";
121                 /* BD address 00:11:22:33:44:55 */
122                 local-bd-address = [ 55 44 33 22 11 00 ];
123             };
124
125             wifi {
126                 compatible = "qcom,wcnss-wlan";
127
128                 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
129                              <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
130                 interrupt-names = "tx", "rx";
131
132                 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
133                 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
134             };
135         };
136     };