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