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