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,wcn3950-bt
23      - qcom,wcn3988-bt
24      - qcom,wcn3990-bt
25      - qcom,wcn3991-bt
26      - qcom,wcn3998-bt
27      - qcom,qca6390-bt
28      - qcom,wcn6750-bt
29      - qcom,wcn6855-bt
30      - qcom,wcn7850-bt
31
32  enable-gpios:
33    maxItems: 1
34    description: gpio specifier used to enable chip
35
36  swctrl-gpios:
37    maxItems: 1
38    description: gpio specifier is used to find status
39                 of clock supply to SoC
40
41  clocks:
42    maxItems: 1
43    description: clock provided to the controller (SUSCLK_32KHZ)
44
45  vddio-supply:
46    description: VDD_IO supply regulator handle
47
48  vddxo-supply:
49    description: VDD_XO supply regulator handle
50
51  vddrf-supply:
52    description: VDD_RF supply regulator handle
53
54  vddch0-supply:
55    description: VDD_CH0 supply regulator handle
56
57  vddch1-supply:
58    description: VDD_CH1 supply regulator handle
59
60  vddaon-supply:
61    description: VDD_AON supply regulator handle
62
63  vdddig-supply:
64    description: VDD_DIG supply regulator handle
65
66  vddbtcmx-supply:
67    description: VDD_BT_CMX supply regulator handle
68
69  vddbtcxmx-supply:
70    description: VDD_BT_CXMX supply regulator handle
71
72  vddrfacmn-supply:
73    description: VDD_RFA_CMN supply regulator handle
74
75  vddrfa0p8-supply:
76    description: VDD_RFA_0P8 supply regulator handle
77
78  vddrfa1p7-supply:
79    description: VDD_RFA_1P7 supply regulator handle
80
81  vddrfa1p8-supply:
82    description: VDD_RFA_1P8 supply regulator handle
83
84  vddrfa1p2-supply:
85    description: VDD_RFA_1P2 supply regulator handle
86
87  vddrfa1p9-supply:
88    description: VDD_RFA_1P9 supply regulator handle
89
90  vddrfa2p2-supply:
91    description: VDD_RFA_2P2 supply regulator handle
92
93  vddasd-supply:
94    description: VDD_ASD supply regulator handle
95
96  vddwlcx-supply:
97    description: VDD_WLCX supply regulator handle
98
99  vddwlmx-supply:
100    description: VDD_WLMX supply regulator handle
101
102  max-speed: true
103
104  firmware-name:
105    minItems: 1
106    items:
107      - description: specify the name of nvm firmware to load
108      - description: specify the name of rampatch firmware to load
109
110  local-bd-address: true
111
112  qcom,local-bd-address-broken:
113    type: boolean
114    description:
115      boot firmware is incorrectly passing the address in big-endian order
116
117required:
118  - compatible
119
120additionalProperties: false
121
122allOf:
123  - $ref: bluetooth-controller.yaml#
124  - $ref: /schemas/serial/serial-peripheral-props.yaml#
125  - if:
126      properties:
127        compatible:
128          contains:
129            enum:
130              - qcom,qca2066-bt
131              - qcom,qca6174-bt
132    then:
133      required:
134        - enable-gpios
135        - clocks
136
137  - if:
138      properties:
139        compatible:
140          contains:
141            enum:
142              - qcom,wcn3950-bt
143              - qcom,wcn3988-bt
144              - qcom,wcn3990-bt
145              - qcom,wcn3991-bt
146              - qcom,wcn3998-bt
147    then:
148      required:
149        - vddio-supply
150        - vddxo-supply
151        - vddrf-supply
152        - vddch0-supply
153
154  - if:
155      properties:
156        compatible:
157          contains:
158            enum:
159              - qcom,wcn6750-bt
160    then:
161      required:
162        - vddaon-supply
163        - vddrfacmn-supply
164        - vddrfa0p8-supply
165        - vddrfa1p7-supply
166        - vddrfa1p2-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