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 <bgodavar@codeaurora.org>
11  - Rocky Liao <rjliao@codeaurora.org>
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
30  enable-gpios:
31    maxItems: 1
32    description: gpio specifier used to enable chip
33
34  swctrl-gpios:
35    maxItems: 1
36    description: gpio specifier is used to find status
37                 of clock supply to SoC
38
39  clocks:
40    maxItems: 1
41    description: clock provided to the controller (SUSCLK_32KHZ)
42
43  vddio-supply:
44    description: VDD_IO supply regulator handle
45
46  vddxo-supply:
47    description: VDD_XO supply regulator handle
48
49  vddrf-supply:
50    description: VDD_RF supply regulator handle
51
52  vddch0-supply:
53    description: VDD_CH0 supply regulator handle
54
55  vddch1-supply:
56    description: VDD_CH1 supply regulator handle
57
58  vddaon-supply:
59    description: VDD_AON supply regulator handle
60
61  vddbtcxmx-supply:
62    description: VDD_BT_CXMX supply regulator handle
63
64  vddrfacmn-supply:
65    description: VDD_RFA_CMN supply regulator handle
66
67  vddrfa0p8-supply:
68    description: VDD_RFA_0P8 suppply regulator handle
69
70  vddrfa1p7-supply:
71    description: VDD_RFA_1P7 supply regulator handle
72
73  vddrfa1p2-supply:
74    description: VDD_RFA_1P2 supply regulator handle
75
76  vddrfa2p2-supply:
77    description: VDD_RFA_2P2 supply regulator handle
78
79  vddasd-supply:
80    description: VDD_ASD supply regulator handle
81
82  max-speed:
83    description: see Documentation/devicetree/bindings/serial/serial.yaml
84
85  firmware-name:
86    description: specify the name of nvm firmware to load
87
88  local-bd-address: true
89
90
91required:
92  - compatible
93
94additionalProperties: false
95
96allOf:
97  - $ref: bluetooth-controller.yaml#
98  - if:
99      properties:
100        compatible:
101          contains:
102            enum:
103              - qcom,qca2066-bt
104              - qcom,qca6174-bt
105    then:
106      required:
107        - enable-gpios
108        - clocks
109
110  - if:
111      properties:
112        compatible:
113          contains:
114            enum:
115              - qcom,wcn3988-bt
116              - qcom,wcn3990-bt
117              - qcom,wcn3991-bt
118              - qcom,wcn3998-bt
119    then:
120      required:
121        - vddio-supply
122        - vddxo-supply
123        - vddrf-supply
124        - vddch0-supply
125
126  - if:
127      properties:
128        compatible:
129          contains:
130            enum:
131              - qcom,wcn6750-bt
132    then:
133      required:
134        - enable-gpios
135        - swctrl-gpios
136        - vddio-supply
137        - vddaon-supply
138        - vddbtcxmx-supply
139        - vddrfacmn-supply
140        - vddrfa0p8-supply
141        - vddrfa1p7-supply
142        - vddrfa1p2-supply
143        - vddasd-supply
144  - if:
145      properties:
146        compatible:
147          contains:
148            enum:
149              - qcom,wcn6855-bt
150    then:
151      required:
152        - enable-gpios
153        - swctrl-gpios
154        - vddio-supply
155        - vddbtcxmx-supply
156        - vddrfacmn-supply
157        - vddrfa0p8-supply
158        - vddrfa1p2-supply
159        - vddrfa1p7-supply
160
161examples:
162  - |
163    #include <dt-bindings/gpio/gpio.h>
164    serial {
165
166        bluetooth {
167            compatible = "qcom,qca6174-bt";
168            enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
169            clocks = <&divclk4>;
170            firmware-name = "nvm_00440302.bin";
171        };
172    };
173  - |
174    serial {
175
176        bluetooth {
177            compatible = "qcom,wcn3990-bt";
178            vddio-supply = <&vreg_s4a_1p8>;
179            vddxo-supply = <&vreg_l7a_1p8>;
180            vddrf-supply = <&vreg_l17a_1p3>;
181            vddch0-supply = <&vreg_l25a_3p3>;
182            max-speed = <3200000>;
183            firmware-name = "crnv21.bin";
184        };
185    };
186  - |
187    serial {
188
189        bluetooth {
190            compatible = "qcom,wcn6750-bt";
191            pinctrl-names = "default";
192            pinctrl-0 = <&bt_en_default>;
193            enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
194            swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
195            vddio-supply = <&vreg_l19b_1p8>;
196            vddaon-supply = <&vreg_s7b_0p9>;
197            vddbtcxmx-supply = <&vreg_s7b_0p9>;
198            vddrfacmn-supply = <&vreg_s7b_0p9>;
199            vddrfa0p8-supply = <&vreg_s7b_0p9>;
200            vddrfa1p7-supply = <&vreg_s1b_1p8>;
201            vddrfa1p2-supply = <&vreg_s8b_1p2>;
202            vddrfa2p2-supply = <&vreg_s1c_2p2>;
203            vddasd-supply = <&vreg_l11c_2p8>;
204            max-speed = <3200000>;
205            firmware-name = "msnv11.bin";
206        };
207    };
208