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