blob: fd6db0ca98eb7e56d7399f55c408844d5e782805 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: Qualcomm WCNSS
8
9maintainers:
10 - Andy Gross <agross@kernel.org>
11 - Bjorn Andersson <bjorn.andersson@linaro.org>
12
13description:
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
17properties:
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
91required:
92 - compatible
93 - qcom,mmio
94 - qcom,smd-channels
95
96additionalProperties: false
97
98examples:
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";
Tom Rini762f85b2024-07-20 11:15:10 -0600119 /* Updated by boot firmware (little-endian order) */
120 local-bd-address = [ 00 00 00 00 00 00 ];
Tom Rini53633a82024-02-29 12:33:36 -0500121 };
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 };