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