145564c4eSSven Peter# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
245564c4eSSven Peter%YAML 1.2
345564c4eSSven Peter---
445564c4eSSven Peter$id: http://devicetree.org/schemas/net/bluetooth/qualcomm-bluetooth.yaml#
545564c4eSSven Peter$schema: http://devicetree.org/meta-schemas/core.yaml#
645564c4eSSven Peter
745564c4eSSven Petertitle: Qualcomm Bluetooth Chips
845564c4eSSven Peter
945564c4eSSven Petermaintainers:
1045564c4eSSven Peter  - Balakrishna Godavarthi <bgodavar@codeaurora.org>
1145564c4eSSven Peter  - Rocky Liao <rjliao@codeaurora.org>
1245564c4eSSven Peter
1345564c4eSSven Peterdescription:
1445564c4eSSven Peter  This binding describes Qualcomm UART-attached bluetooth chips.
1545564c4eSSven Peter
1645564c4eSSven Peterproperties:
1745564c4eSSven Peter  compatible:
1845564c4eSSven Peter    enum:
1987a1752bSTim Jiang      - qcom,qca2066-bt
2045564c4eSSven Peter      - qcom,qca6174-bt
2145564c4eSSven Peter      - qcom,qca9377-bt
22606a8bffSLuca Weiss      - qcom,wcn3988-bt
2345564c4eSSven Peter      - qcom,wcn3990-bt
2445564c4eSSven Peter      - qcom,wcn3991-bt
2545564c4eSSven Peter      - qcom,wcn3998-bt
2645564c4eSSven Peter      - qcom,qca6390-bt
2745564c4eSSven Peter      - qcom,wcn6750-bt
28b1d00baaSSteev Klimaszewski      - qcom,wcn6855-bt
29*9f19fb8fSNeil Armstrong      - qcom,wcn7850-bt
3045564c4eSSven Peter
3145564c4eSSven Peter  enable-gpios:
3245564c4eSSven Peter    maxItems: 1
3345564c4eSSven Peter    description: gpio specifier used to enable chip
3445564c4eSSven Peter
3545564c4eSSven Peter  swctrl-gpios:
3645564c4eSSven Peter    maxItems: 1
3745564c4eSSven Peter    description: gpio specifier is used to find status
3845564c4eSSven Peter                 of clock supply to SoC
3945564c4eSSven Peter
4045564c4eSSven Peter  clocks:
4145564c4eSSven Peter    maxItems: 1
4245564c4eSSven Peter    description: clock provided to the controller (SUSCLK_32KHZ)
4345564c4eSSven Peter
4445564c4eSSven Peter  vddio-supply:
4545564c4eSSven Peter    description: VDD_IO supply regulator handle
4645564c4eSSven Peter
4745564c4eSSven Peter  vddxo-supply:
4845564c4eSSven Peter    description: VDD_XO supply regulator handle
4945564c4eSSven Peter
5045564c4eSSven Peter  vddrf-supply:
5145564c4eSSven Peter    description: VDD_RF supply regulator handle
5245564c4eSSven Peter
5345564c4eSSven Peter  vddch0-supply:
5445564c4eSSven Peter    description: VDD_CH0 supply regulator handle
5545564c4eSSven Peter
566a0a6dd8SKrzysztof Kozlowski  vddch1-supply:
576a0a6dd8SKrzysztof Kozlowski    description: VDD_CH1 supply regulator handle
586a0a6dd8SKrzysztof Kozlowski
5945564c4eSSven Peter  vddaon-supply:
6045564c4eSSven Peter    description: VDD_AON supply regulator handle
6145564c4eSSven Peter
62*9f19fb8fSNeil Armstrong  vdddig-supply:
63*9f19fb8fSNeil Armstrong    description: VDD_DIG supply regulator handle
64*9f19fb8fSNeil Armstrong
6545564c4eSSven Peter  vddbtcxmx-supply:
6645564c4eSSven Peter    description: VDD_BT_CXMX supply regulator handle
6745564c4eSSven Peter
6845564c4eSSven Peter  vddrfacmn-supply:
6945564c4eSSven Peter    description: VDD_RFA_CMN supply regulator handle
7045564c4eSSven Peter
7145564c4eSSven Peter  vddrfa0p8-supply:
7245564c4eSSven Peter    description: VDD_RFA_0P8 suppply regulator handle
7345564c4eSSven Peter
7445564c4eSSven Peter  vddrfa1p7-supply:
7545564c4eSSven Peter    description: VDD_RFA_1P7 supply regulator handle
7645564c4eSSven Peter
7745564c4eSSven Peter  vddrfa1p2-supply:
7845564c4eSSven Peter    description: VDD_RFA_1P2 supply regulator handle
7945564c4eSSven Peter
80*9f19fb8fSNeil Armstrong  vddrfa1p9-supply:
81*9f19fb8fSNeil Armstrong    description: VDD_RFA_1P9 supply regulator handle
82*9f19fb8fSNeil Armstrong
8345564c4eSSven Peter  vddrfa2p2-supply:
8445564c4eSSven Peter    description: VDD_RFA_2P2 supply regulator handle
8545564c4eSSven Peter
8645564c4eSSven Peter  vddasd-supply:
8745564c4eSSven Peter    description: VDD_ASD supply regulator handle
8845564c4eSSven Peter
8945564c4eSSven Peter  max-speed:
9045564c4eSSven Peter    description: see Documentation/devicetree/bindings/serial/serial.yaml
9145564c4eSSven Peter
9245564c4eSSven Peter  firmware-name:
9345564c4eSSven Peter    description: specify the name of nvm firmware to load
9445564c4eSSven Peter
9545564c4eSSven Peter  local-bd-address: true
9645564c4eSSven Peter
9745564c4eSSven Peter
9845564c4eSSven Peterrequired:
9945564c4eSSven Peter  - compatible
10045564c4eSSven Peter
10145564c4eSSven PeteradditionalProperties: false
10245564c4eSSven Peter
10345564c4eSSven PeterallOf:
10445564c4eSSven Peter  - $ref: bluetooth-controller.yaml#
10545564c4eSSven Peter  - if:
10645564c4eSSven Peter      properties:
10745564c4eSSven Peter        compatible:
10845564c4eSSven Peter          contains:
10945564c4eSSven Peter            enum:
11087a1752bSTim Jiang              - qcom,qca2066-bt
11145564c4eSSven Peter              - qcom,qca6174-bt
11245564c4eSSven Peter    then:
11345564c4eSSven Peter      required:
11445564c4eSSven Peter        - enable-gpios
11545564c4eSSven Peter        - clocks
11645564c4eSSven Peter
11745564c4eSSven Peter  - if:
11845564c4eSSven Peter      properties:
11945564c4eSSven Peter        compatible:
12045564c4eSSven Peter          contains:
12145564c4eSSven Peter            enum:
122606a8bffSLuca Weiss              - qcom,wcn3988-bt
12345564c4eSSven Peter              - qcom,wcn3990-bt
12445564c4eSSven Peter              - qcom,wcn3991-bt
12545564c4eSSven Peter              - qcom,wcn3998-bt
12645564c4eSSven Peter    then:
12745564c4eSSven Peter      required:
12845564c4eSSven Peter        - vddio-supply
12945564c4eSSven Peter        - vddxo-supply
13045564c4eSSven Peter        - vddrf-supply
13145564c4eSSven Peter        - vddch0-supply
13245564c4eSSven Peter
13345564c4eSSven Peter  - if:
13445564c4eSSven Peter      properties:
13545564c4eSSven Peter        compatible:
13645564c4eSSven Peter          contains:
13745564c4eSSven Peter            enum:
13845564c4eSSven Peter              - qcom,wcn6750-bt
13945564c4eSSven Peter    then:
14045564c4eSSven Peter      required:
14145564c4eSSven Peter        - enable-gpios
14245564c4eSSven Peter        - swctrl-gpios
14345564c4eSSven Peter        - vddio-supply
14445564c4eSSven Peter        - vddaon-supply
14545564c4eSSven Peter        - vddbtcxmx-supply
14645564c4eSSven Peter        - vddrfacmn-supply
14745564c4eSSven Peter        - vddrfa0p8-supply
14845564c4eSSven Peter        - vddrfa1p7-supply
14945564c4eSSven Peter        - vddrfa1p2-supply
15045564c4eSSven Peter        - vddasd-supply
151b1d00baaSSteev Klimaszewski  - if:
152b1d00baaSSteev Klimaszewski      properties:
153b1d00baaSSteev Klimaszewski        compatible:
154b1d00baaSSteev Klimaszewski          contains:
155b1d00baaSSteev Klimaszewski            enum:
156b1d00baaSSteev Klimaszewski              - qcom,wcn6855-bt
157b1d00baaSSteev Klimaszewski    then:
158b1d00baaSSteev Klimaszewski      required:
159b1d00baaSSteev Klimaszewski        - enable-gpios
160b1d00baaSSteev Klimaszewski        - swctrl-gpios
161b1d00baaSSteev Klimaszewski        - vddio-supply
162b1d00baaSSteev Klimaszewski        - vddbtcxmx-supply
163b1d00baaSSteev Klimaszewski        - vddrfacmn-supply
164b1d00baaSSteev Klimaszewski        - vddrfa0p8-supply
165b1d00baaSSteev Klimaszewski        - vddrfa1p2-supply
166b1d00baaSSteev Klimaszewski        - vddrfa1p7-supply
167*9f19fb8fSNeil Armstrong  - if:
168*9f19fb8fSNeil Armstrong      properties:
169*9f19fb8fSNeil Armstrong        compatible:
170*9f19fb8fSNeil Armstrong          contains:
171*9f19fb8fSNeil Armstrong            enum:
172*9f19fb8fSNeil Armstrong              - qcom,wcn7850-bt
173*9f19fb8fSNeil Armstrong    then:
174*9f19fb8fSNeil Armstrong      required:
175*9f19fb8fSNeil Armstrong        - enable-gpios
176*9f19fb8fSNeil Armstrong        - swctrl-gpios
177*9f19fb8fSNeil Armstrong        - vddio-supply
178*9f19fb8fSNeil Armstrong        - vddaon-supply
179*9f19fb8fSNeil Armstrong        - vdddig-supply
180*9f19fb8fSNeil Armstrong        - vddrfa0p8-supply
181*9f19fb8fSNeil Armstrong        - vddrfa1p2-supply
182*9f19fb8fSNeil Armstrong        - vddrfa1p9-supply
18345564c4eSSven Peter
18445564c4eSSven Peterexamples:
18545564c4eSSven Peter  - |
18645564c4eSSven Peter    #include <dt-bindings/gpio/gpio.h>
18745564c4eSSven Peter    serial {
18845564c4eSSven Peter
18945564c4eSSven Peter        bluetooth {
19045564c4eSSven Peter            compatible = "qcom,qca6174-bt";
19145564c4eSSven Peter            enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
19245564c4eSSven Peter            clocks = <&divclk4>;
19345564c4eSSven Peter            firmware-name = "nvm_00440302.bin";
19445564c4eSSven Peter        };
19545564c4eSSven Peter    };
19645564c4eSSven Peter  - |
19745564c4eSSven Peter    serial {
19845564c4eSSven Peter
19945564c4eSSven Peter        bluetooth {
20045564c4eSSven Peter            compatible = "qcom,wcn3990-bt";
20145564c4eSSven Peter            vddio-supply = <&vreg_s4a_1p8>;
20245564c4eSSven Peter            vddxo-supply = <&vreg_l7a_1p8>;
20345564c4eSSven Peter            vddrf-supply = <&vreg_l17a_1p3>;
20445564c4eSSven Peter            vddch0-supply = <&vreg_l25a_3p3>;
20545564c4eSSven Peter            max-speed = <3200000>;
20645564c4eSSven Peter            firmware-name = "crnv21.bin";
20745564c4eSSven Peter        };
20845564c4eSSven Peter    };
20945564c4eSSven Peter  - |
21045564c4eSSven Peter    serial {
21145564c4eSSven Peter
21245564c4eSSven Peter        bluetooth {
21345564c4eSSven Peter            compatible = "qcom,wcn6750-bt";
21445564c4eSSven Peter            pinctrl-names = "default";
21545564c4eSSven Peter            pinctrl-0 = <&bt_en_default>;
21645564c4eSSven Peter            enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
21745564c4eSSven Peter            swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
21845564c4eSSven Peter            vddio-supply = <&vreg_l19b_1p8>;
21945564c4eSSven Peter            vddaon-supply = <&vreg_s7b_0p9>;
22045564c4eSSven Peter            vddbtcxmx-supply = <&vreg_s7b_0p9>;
22145564c4eSSven Peter            vddrfacmn-supply = <&vreg_s7b_0p9>;
22245564c4eSSven Peter            vddrfa0p8-supply = <&vreg_s7b_0p9>;
22345564c4eSSven Peter            vddrfa1p7-supply = <&vreg_s1b_1p8>;
22445564c4eSSven Peter            vddrfa1p2-supply = <&vreg_s8b_1p2>;
22545564c4eSSven Peter            vddrfa2p2-supply = <&vreg_s1c_2p2>;
22645564c4eSSven Peter            vddasd-supply = <&vreg_l11c_2p8>;
22745564c4eSSven Peter            max-speed = <3200000>;
22845564c4eSSven Peter            firmware-name = "msnv11.bin";
22945564c4eSSven Peter        };
23045564c4eSSven Peter    };
231