xref: /linux/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/bluetooth/qualcomm-bluetooth.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Bluetooth Chips
8
9maintainers:
10  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
11  - Rocky Liao <quic_rjliao@quicinc.com>
12
13description:
14  This binding describes Qualcomm UART-attached bluetooth chips.
15
16properties:
17  compatible:
18    enum:
19      - qcom,qca2066-bt
20      - qcom,qca6174-bt
21      - qcom,qca9377-bt
22      - qcom,wcn3988-bt
23      - qcom,wcn3990-bt
24      - qcom,wcn3991-bt
25      - qcom,wcn3998-bt
26      - qcom,qca6390-bt
27      - qcom,wcn6750-bt
28      - qcom,wcn6855-bt
29      - qcom,wcn7850-bt
30
31  enable-gpios:
32    maxItems: 1
33    description: gpio specifier used to enable chip
34
35  swctrl-gpios:
36    maxItems: 1
37    description: gpio specifier is used to find status
38                 of clock supply to SoC
39
40  clocks:
41    maxItems: 1
42    description: clock provided to the controller (SUSCLK_32KHZ)
43
44  vddio-supply:
45    description: VDD_IO supply regulator handle
46
47  vddxo-supply:
48    description: VDD_XO supply regulator handle
49
50  vddrf-supply:
51    description: VDD_RF supply regulator handle
52
53  vddch0-supply:
54    description: VDD_CH0 supply regulator handle
55
56  vddch1-supply:
57    description: VDD_CH1 supply regulator handle
58
59  vddaon-supply:
60    description: VDD_AON supply regulator handle
61
62  vdddig-supply:
63    description: VDD_DIG supply regulator handle
64
65  vddbtcmx-supply:
66    description: VDD_BT_CMX supply regulator handle
67
68  vddbtcxmx-supply:
69    description: VDD_BT_CXMX supply regulator handle
70
71  vddrfacmn-supply:
72    description: VDD_RFA_CMN supply regulator handle
73
74  vddrfa0p8-supply:
75    description: VDD_RFA_0P8 supply regulator handle
76
77  vddrfa1p7-supply:
78    description: VDD_RFA_1P7 supply regulator handle
79
80  vddrfa1p8-supply:
81    description: VDD_RFA_1P8 supply regulator handle
82
83  vddrfa1p2-supply:
84    description: VDD_RFA_1P2 supply regulator handle
85
86  vddrfa1p9-supply:
87    description: VDD_RFA_1P9 supply regulator handle
88
89  vddrfa2p2-supply:
90    description: VDD_RFA_2P2 supply regulator handle
91
92  vddasd-supply:
93    description: VDD_ASD supply regulator handle
94
95  vddwlcx-supply:
96    description: VDD_WLCX supply regulator handle
97
98  vddwlmx-supply:
99    description: VDD_WLMX supply regulator handle
100
101  max-speed: true
102
103  firmware-name:
104    description: specify the name of nvm firmware to load
105
106  local-bd-address: true
107
108  qcom,local-bd-address-broken:
109    type: boolean
110    description:
111      boot firmware is incorrectly passing the address in big-endian order
112
113required:
114  - compatible
115
116additionalProperties: false
117
118allOf:
119  - $ref: bluetooth-controller.yaml#
120  - $ref: /schemas/serial/serial-peripheral-props.yaml#
121  - if:
122      properties:
123        compatible:
124          contains:
125            enum:
126              - qcom,qca2066-bt
127              - qcom,qca6174-bt
128    then:
129      required:
130        - enable-gpios
131        - clocks
132
133  - if:
134      properties:
135        compatible:
136          contains:
137            enum:
138              - qcom,wcn3988-bt
139              - qcom,wcn3990-bt
140              - qcom,wcn3991-bt
141              - qcom,wcn3998-bt
142    then:
143      required:
144        - vddio-supply
145        - vddxo-supply
146        - vddrf-supply
147        - vddch0-supply
148
149  - if:
150      properties:
151        compatible:
152          contains:
153            enum:
154              - qcom,wcn6750-bt
155    then:
156      required:
157        - enable-gpios
158        - swctrl-gpios
159        - vddio-supply
160        - vddaon-supply
161        - vddbtcxmx-supply
162        - vddrfacmn-supply
163        - vddrfa0p8-supply
164        - vddrfa1p7-supply
165        - vddrfa1p2-supply
166        - vddasd-supply
167  - if:
168      properties:
169        compatible:
170          contains:
171            enum:
172              - qcom,wcn6855-bt
173    then:
174      required:
175        - vddrfacmn-supply
176        - vddaon-supply
177        - vddwlcx-supply
178        - vddwlmx-supply
179        - vddbtcmx-supply
180        - vddrfa0p8-supply
181        - vddrfa1p2-supply
182        - vddrfa1p8-supply
183  - if:
184      properties:
185        compatible:
186          contains:
187            enum:
188              - qcom,wcn7850-bt
189    then:
190      required:
191        - vddrfacmn-supply
192        - vddaon-supply
193        - vddwlcx-supply
194        - vddwlmx-supply
195        - vddrfa0p8-supply
196        - vddrfa1p2-supply
197        - vddrfa1p8-supply
198  - if:
199      properties:
200        compatible:
201          contains:
202            enum:
203              - qcom,qca6390-bt
204    then:
205      required:
206        - vddrfacmn-supply
207        - vddaon-supply
208        - vddbtcmx-supply
209        - vddrfa0p8-supply
210        - vddrfa1p2-supply
211        - vddrfa1p7-supply
212
213examples:
214  - |
215    #include <dt-bindings/gpio/gpio.h>
216    serial {
217
218        bluetooth {
219            compatible = "qcom,qca6174-bt";
220            enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
221            clocks = <&divclk4>;
222            firmware-name = "nvm_00440302.bin";
223        };
224    };
225  - |
226    serial {
227
228        bluetooth {
229            compatible = "qcom,wcn3990-bt";
230            vddio-supply = <&vreg_s4a_1p8>;
231            vddxo-supply = <&vreg_l7a_1p8>;
232            vddrf-supply = <&vreg_l17a_1p3>;
233            vddch0-supply = <&vreg_l25a_3p3>;
234            max-speed = <3200000>;
235            firmware-name = "crnv21.bin";
236        };
237    };
238  - |
239    serial {
240
241        bluetooth {
242            compatible = "qcom,wcn6750-bt";
243            pinctrl-names = "default";
244            pinctrl-0 = <&bt_en_default>;
245            enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
246            swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
247            vddio-supply = <&vreg_l19b_1p8>;
248            vddaon-supply = <&vreg_s7b_0p9>;
249            vddbtcxmx-supply = <&vreg_s7b_0p9>;
250            vddrfacmn-supply = <&vreg_s7b_0p9>;
251            vddrfa0p8-supply = <&vreg_s7b_0p9>;
252            vddrfa1p7-supply = <&vreg_s1b_1p8>;
253            vddrfa1p2-supply = <&vreg_s8b_1p2>;
254            vddrfa2p2-supply = <&vreg_s1c_2p2>;
255            vddasd-supply = <&vreg_l11c_2p8>;
256            max-speed = <3200000>;
257            firmware-name = "msnv11.bin";
258        };
259    };
260