xref: /linux/Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.yaml (revision b803c4a4f78834b31ebfbbcea350473333760559)
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
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    unevaluatedProperties: 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    allOf:
92      - $ref: /schemas/net/wireless/wireless-controller.yaml#
93
94required:
95  - compatible
96  - qcom,mmio
97  - qcom,smd-channels
98
99additionalProperties: false
100
101examples:
102  - |
103    #include <dt-bindings/interrupt-controller/arm-gic.h>
104
105    smd-edge {
106        interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
107
108        qcom,ipc = <&apcs 8 17>;
109        qcom,smd-edge = <6>;
110        qcom,remote-pid = <4>;
111
112        label = "pronto";
113
114        wcnss {
115            compatible = "qcom,wcnss";
116            qcom,smd-channels = "WCNSS_CTRL";
117
118            qcom,mmio = <&pronto>;
119
120            bluetooth {
121                compatible = "qcom,wcnss-bt";
122                /* Updated by boot firmware (little-endian order) */
123                local-bd-address = [ 00 00 00 00 00 00 ];
124            };
125
126            wifi {
127                compatible = "qcom,wcnss-wlan";
128
129                interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
130                             <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
131                interrupt-names = "tx", "rx";
132
133                qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
134                qcom,smem-state-names = "tx-enable", "tx-rings-empty";
135            };
136        };
137    };
138