]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Bindings/soc/qcom/qcom,wcnss.yaml
Import device-tree files from Linux 6.2
[FreeBSD/FreeBSD.git] / 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: "wlan/prima/WCNSS_qcom_wlan_nv.bin"
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     allOf:
46       - $ref: /schemas/net/bluetooth/bluetooth-controller.yaml#
47     properties:
48       compatible:
49         const: qcom,wcnss-bt
50
51       local-bd-address: true
52
53     required:
54       - compatible
55
56   wifi:
57     additionalProperties: false
58     type: object
59     properties:
60       compatible:
61         const: qcom,wcnss-wlan
62
63       interrupts:
64         maxItems: 2
65
66       interrupt-names:
67         items:
68           - const: tx
69           - const: rx
70
71       qcom,smem-states:
72         $ref: /schemas/types.yaml#/definitions/phandle-array
73         maxItems: 2
74         description:
75           Should reference the tx-enable and tx-rings-empty SMEM states.
76
77       qcom,smem-state-names:
78         items:
79           - const: tx-enable
80           - const: tx-rings-empty
81         description:
82           Names of SMEM states.
83
84     required:
85       - compatible
86       - interrupts
87       - interrupt-names
88       - qcom,smem-states
89       - qcom,smem-state-names
90
91 required:
92   - compatible
93   - qcom,mmio
94   - qcom,smd-channels
95
96 additionalProperties: false
97
98 examples:
99   - |
100     #include <dt-bindings/interrupt-controller/arm-gic.h>
101
102     smd-edge {
103         interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
104
105         qcom,ipc = <&apcs 8 17>;
106         qcom,smd-edge = <6>;
107         qcom,remote-pid = <4>;
108
109         label = "pronto";
110
111         wcnss {
112             compatible = "qcom,wcnss";
113             qcom,smd-channels = "WCNSS_CTRL";
114
115             qcom,mmio = <&pronto>;
116
117             bluetooth {
118                 compatible = "qcom,wcnss-bt";
119                 /* BD address 00:11:22:33:44:55 */
120                 local-bd-address = [ 55 44 33 22 11 00 ];
121             };
122
123             wifi {
124                 compatible = "qcom,wcnss-wlan";
125
126                 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
127                              <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
128                 interrupt-names = "tx", "rx";
129
130                 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
131                 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
132             };
133         };
134     };