summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/soc/qcom/qcom,wcnss.yaml
blob: 5320504bb5e004f000b2a67b7994bfe2d5c132f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/qcom/qcom,wcnss.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm WCNSS

maintainers:
  - Andy Gross <agross@kernel.org>
  - Bjorn Andersson <bjorn.andersson@linaro.org>

description:
  The Qualcomm WCNSS hardware consists of control block and a BT, WiFi and FM
  radio block, all using SMD as command channels.

properties:
  compatible:
    const: qcom,wcnss

  firmware-name:
    $ref: /schemas/types.yaml#/definitions/string
    default: "wlan/prima/WCNSS_qcom_wlan_nv.bin"
    description:
      Relative firmware image path for the WLAN NV blob.

  qcom,mmio:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: |
      Reference to a node specifying the wcnss "ccu" and "dxe" register blocks.
      The node must be compatible with one of the following::
           - qcom,riva"
           - qcom,pronto"

  qcom,smd-channels:
    $ref: /schemas/types.yaml#/definitions/string
    const: WCNSS_CTRL
    description:
      Standard SMD property specifying the SMD channel used for communication
      with the WiFi firmware.

  bluetooth:
    type: object
    additionalProperties: false
    properties:
      compatible:
        const: qcom,wcnss-bt

      local-bd-address:
        $ref: /schemas/types.yaml#/definitions/uint8-array
        maxItems: 6
        description:
          See Documentation/devicetree/bindings/net/bluetooth.txt

    required:
      - compatible

  wifi:
    additionalProperties: false
    type: object
    properties:
      compatible:
        const: qcom,wcnss-wlan

      interrupts:
        maxItems: 2

      interrupt-names:
        items:
          - const: tx
          - const: rx

      qcom,smem-states:
        $ref: /schemas/types.yaml#/definitions/phandle-array
        maxItems: 2
        description:
          Should reference the tx-enable and tx-rings-empty SMEM states.

      qcom,smem-state-names:
        items:
          - const: tx-enable
          - const: tx-rings-empty
        description:
          Names of SMEM states.

    required:
      - compatible
      - interrupts
      - interrupt-names
      - qcom,smem-states
      - qcom,smem-state-names

required:
  - compatible
  - qcom,mmio
  - qcom,smd-channels

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    smd-edge {
        interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;

        qcom,ipc = <&apcs 8 17>;
        qcom,smd-edge = <6>;
        qcom,remote-pid = <4>;

        label = "pronto";

        wcnss {
            compatible = "qcom,wcnss";
            qcom,smd-channels = "WCNSS_CTRL";

            qcom,mmio = <&pronto>;

            bluetooth {
                compatible = "qcom,wcnss-bt";
                /* BD address 00:11:22:33:44:55 */
                local-bd-address = [ 55 44 33 22 11 00 ];
            };

            wifi {
                compatible = "qcom,wcnss-wlan";

                interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "tx", "rx";

                qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
                qcom,smem-state-names = "tx-enable", "tx-rings-empty";
            };
        };
    };