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