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