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 <[email protected]>
11  - Rocky Liao <[email protected]>
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    minItems: 1
105    items:
106      - description: specify the name of nvm firmware to load
107      - description: specify the name of rampatch firmware to load
108
109  local-bd-address: true
110
111  qcom,local-bd-address-broken:
112    type: boolean
113    description:
114      boot firmware is incorrectly passing the address in big-endian order
115
116required:
117  - compatible
118
119additionalProperties: false
120
121allOf:
122  - $ref: bluetooth-controller.yaml#
123  - $ref: /schemas/serial/serial-peripheral-props.yaml#
124  - if:
125      properties:
126        compatible:
127          contains:
128            enum:
129              - qcom,qca2066-bt
130              - qcom,qca6174-bt
131    then:
132      required:
133        - enable-gpios
134        - clocks
135
136  - if:
137      properties:
138        compatible:
139          contains:
140            enum:
141              - qcom,wcn3988-bt
142              - qcom,wcn3990-bt
143              - qcom,wcn3991-bt
144              - qcom,wcn3998-bt
145    then:
146      required:
147        - vddio-supply
148        - vddxo-supply
149        - vddrf-supply
150        - vddch0-supply
151
152  - if:
153      properties:
154        compatible:
155          contains:
156            enum:
157              - qcom,wcn6750-bt
158    then:
159      required:
160        - vddaon-supply
161        - vddrfacmn-supply
162        - vddrfa0p8-supply
163        - vddrfa1p7-supply
164        - vddrfa1p2-supply
165  - if:
166      properties:
167        compatible:
168          contains:
169            enum:
170              - qcom,wcn6855-bt
171    then:
172      required:
173        - vddrfacmn-supply
174        - vddaon-supply
175        - vddwlcx-supply
176        - vddwlmx-supply
177        - vddbtcmx-supply
178        - vddrfa0p8-supply
179        - vddrfa1p2-supply
180        - vddrfa1p8-supply
181  - if:
182      properties:
183        compatible:
184          contains:
185            enum:
186              - qcom,wcn7850-bt
187    then:
188      required:
189        - vddrfacmn-supply
190        - vddaon-supply
191        - vddwlcx-supply
192        - vddwlmx-supply
193        - vddrfa0p8-supply
194        - vddrfa1p2-supply
195        - vddrfa1p8-supply
196  - if:
197      properties:
198        compatible:
199          contains:
200            enum:
201              - qcom,qca6390-bt
202    then:
203      required:
204        - vddrfacmn-supply
205        - vddaon-supply
206        - vddbtcmx-supply
207        - vddrfa0p8-supply
208        - vddrfa1p2-supply
209        - vddrfa1p7-supply
210
211examples:
212  - |
213    #include <dt-bindings/gpio/gpio.h>
214    serial {
215
216        bluetooth {
217            compatible = "qcom,qca6174-bt";
218            enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
219            clocks = <&divclk4>;
220            firmware-name = "nvm_00440302.bin";
221        };
222    };
223  - |
224    serial {
225
226        bluetooth {
227            compatible = "qcom,wcn3990-bt";
228            vddio-supply = <&vreg_s4a_1p8>;
229            vddxo-supply = <&vreg_l7a_1p8>;
230            vddrf-supply = <&vreg_l17a_1p3>;
231            vddch0-supply = <&vreg_l25a_3p3>;
232            max-speed = <3200000>;
233            firmware-name = "crnv21.bin";
234        };
235    };
236  - |
237    serial {
238
239        bluetooth {
240            compatible = "qcom,wcn6750-bt";
241            pinctrl-names = "default";
242            pinctrl-0 = <&bt_en_default>;
243            enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
244            swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
245            vddio-supply = <&vreg_l19b_1p8>;
246            vddaon-supply = <&vreg_s7b_0p9>;
247            vddbtcxmx-supply = <&vreg_s7b_0p9>;
248            vddrfacmn-supply = <&vreg_s7b_0p9>;
249            vddrfa0p8-supply = <&vreg_s7b_0p9>;
250            vddrfa1p7-supply = <&vreg_s1b_1p8>;
251            vddrfa1p2-supply = <&vreg_s8b_1p2>;
252            vddrfa2p2-supply = <&vreg_s1c_2p2>;
253            vddasd-supply = <&vreg_l11c_2p8>;
254            max-speed = <3200000>;
255            firmware-name = "msnv11.bin";
256        };
257    };
258