xref: /openbmc/linux/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml (revision b1d00baaa0298a5e033bc00a92522e4fd07900a8)
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:
1945564c4eSSven Peter      - qcom,qca6174-bt
2045564c4eSSven Peter      - qcom,qca9377-bt
2145564c4eSSven Peter      - qcom,wcn3990-bt
2245564c4eSSven Peter      - qcom,wcn3991-bt
2345564c4eSSven Peter      - qcom,wcn3998-bt
2445564c4eSSven Peter      - qcom,qca6390-bt
2545564c4eSSven Peter      - qcom,wcn6750-bt
26*b1d00baaSSteev Klimaszewski      - qcom,wcn6855-bt
2745564c4eSSven Peter
2845564c4eSSven Peter  enable-gpios:
2945564c4eSSven Peter    maxItems: 1
3045564c4eSSven Peter    description: gpio specifier used to enable chip
3145564c4eSSven Peter
3245564c4eSSven Peter  swctrl-gpios:
3345564c4eSSven Peter    maxItems: 1
3445564c4eSSven Peter    description: gpio specifier is used to find status
3545564c4eSSven Peter                 of clock supply to SoC
3645564c4eSSven Peter
3745564c4eSSven Peter  clocks:
3845564c4eSSven Peter    maxItems: 1
3945564c4eSSven Peter    description: clock provided to the controller (SUSCLK_32KHZ)
4045564c4eSSven Peter
4145564c4eSSven Peter  vddio-supply:
4245564c4eSSven Peter    description: VDD_IO supply regulator handle
4345564c4eSSven Peter
4445564c4eSSven Peter  vddxo-supply:
4545564c4eSSven Peter    description: VDD_XO supply regulator handle
4645564c4eSSven Peter
4745564c4eSSven Peter  vddrf-supply:
4845564c4eSSven Peter    description: VDD_RF supply regulator handle
4945564c4eSSven Peter
5045564c4eSSven Peter  vddch0-supply:
5145564c4eSSven Peter    description: VDD_CH0 supply regulator handle
5245564c4eSSven Peter
5345564c4eSSven Peter  vddaon-supply:
5445564c4eSSven Peter    description: VDD_AON supply regulator handle
5545564c4eSSven Peter
5645564c4eSSven Peter  vddbtcxmx-supply:
5745564c4eSSven Peter    description: VDD_BT_CXMX supply regulator handle
5845564c4eSSven Peter
5945564c4eSSven Peter  vddrfacmn-supply:
6045564c4eSSven Peter    description: VDD_RFA_CMN supply regulator handle
6145564c4eSSven Peter
6245564c4eSSven Peter  vddrfa0p8-supply:
6345564c4eSSven Peter    description: VDD_RFA_0P8 suppply regulator handle
6445564c4eSSven Peter
6545564c4eSSven Peter  vddrfa1p7-supply:
6645564c4eSSven Peter    description: VDD_RFA_1P7 supply regulator handle
6745564c4eSSven Peter
6845564c4eSSven Peter  vddrfa1p2-supply:
6945564c4eSSven Peter    description: VDD_RFA_1P2 supply regulator handle
7045564c4eSSven Peter
7145564c4eSSven Peter  vddrfa2p2-supply:
7245564c4eSSven Peter    description: VDD_RFA_2P2 supply regulator handle
7345564c4eSSven Peter
7445564c4eSSven Peter  vddasd-supply:
7545564c4eSSven Peter    description: VDD_ASD supply regulator handle
7645564c4eSSven Peter
7745564c4eSSven Peter  max-speed:
7845564c4eSSven Peter    description: see Documentation/devicetree/bindings/serial/serial.yaml
7945564c4eSSven Peter
8045564c4eSSven Peter  firmware-name:
8145564c4eSSven Peter    description: specify the name of nvm firmware to load
8245564c4eSSven Peter
8345564c4eSSven Peter  local-bd-address: true
8445564c4eSSven Peter
8545564c4eSSven Peter
8645564c4eSSven Peterrequired:
8745564c4eSSven Peter  - compatible
8845564c4eSSven Peter
8945564c4eSSven PeteradditionalProperties: false
9045564c4eSSven Peter
9145564c4eSSven PeterallOf:
9245564c4eSSven Peter  - $ref: bluetooth-controller.yaml#
9345564c4eSSven Peter  - if:
9445564c4eSSven Peter      properties:
9545564c4eSSven Peter        compatible:
9645564c4eSSven Peter          contains:
9745564c4eSSven Peter            enum:
9845564c4eSSven Peter              - qcom,qca6174-bt
9945564c4eSSven Peter    then:
10045564c4eSSven Peter      required:
10145564c4eSSven Peter        - enable-gpios
10245564c4eSSven Peter        - clocks
10345564c4eSSven Peter
10445564c4eSSven Peter  - if:
10545564c4eSSven Peter      properties:
10645564c4eSSven Peter        compatible:
10745564c4eSSven Peter          contains:
10845564c4eSSven Peter            enum:
10945564c4eSSven Peter              - qcom,wcn3990-bt
11045564c4eSSven Peter              - qcom,wcn3991-bt
11145564c4eSSven Peter              - qcom,wcn3998-bt
11245564c4eSSven Peter    then:
11345564c4eSSven Peter      required:
11445564c4eSSven Peter        - vddio-supply
11545564c4eSSven Peter        - vddxo-supply
11645564c4eSSven Peter        - vddrf-supply
11745564c4eSSven Peter        - vddch0-supply
11845564c4eSSven Peter
11945564c4eSSven Peter  - if:
12045564c4eSSven Peter      properties:
12145564c4eSSven Peter        compatible:
12245564c4eSSven Peter          contains:
12345564c4eSSven Peter            enum:
12445564c4eSSven Peter              - qcom,wcn6750-bt
12545564c4eSSven Peter    then:
12645564c4eSSven Peter      required:
12745564c4eSSven Peter        - enable-gpios
12845564c4eSSven Peter        - swctrl-gpios
12945564c4eSSven Peter        - vddio-supply
13045564c4eSSven Peter        - vddaon-supply
13145564c4eSSven Peter        - vddbtcxmx-supply
13245564c4eSSven Peter        - vddrfacmn-supply
13345564c4eSSven Peter        - vddrfa0p8-supply
13445564c4eSSven Peter        - vddrfa1p7-supply
13545564c4eSSven Peter        - vddrfa1p2-supply
13645564c4eSSven Peter        - vddasd-supply
137*b1d00baaSSteev Klimaszewski  - if:
138*b1d00baaSSteev Klimaszewski      properties:
139*b1d00baaSSteev Klimaszewski        compatible:
140*b1d00baaSSteev Klimaszewski          contains:
141*b1d00baaSSteev Klimaszewski            enum:
142*b1d00baaSSteev Klimaszewski              - qcom,wcn6855-bt
143*b1d00baaSSteev Klimaszewski    then:
144*b1d00baaSSteev Klimaszewski      required:
145*b1d00baaSSteev Klimaszewski        - enable-gpios
146*b1d00baaSSteev Klimaszewski        - swctrl-gpios
147*b1d00baaSSteev Klimaszewski        - vddio-supply
148*b1d00baaSSteev Klimaszewski        - vddbtcxmx-supply
149*b1d00baaSSteev Klimaszewski        - vddrfacmn-supply
150*b1d00baaSSteev Klimaszewski        - vddrfa0p8-supply
151*b1d00baaSSteev Klimaszewski        - vddrfa1p2-supply
152*b1d00baaSSteev Klimaszewski        - vddrfa1p7-supply
15345564c4eSSven Peter
15445564c4eSSven Peterexamples:
15545564c4eSSven Peter  - |
15645564c4eSSven Peter    #include <dt-bindings/gpio/gpio.h>
15745564c4eSSven Peter    serial {
15845564c4eSSven Peter
15945564c4eSSven Peter        bluetooth {
16045564c4eSSven Peter            compatible = "qcom,qca6174-bt";
16145564c4eSSven Peter            enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
16245564c4eSSven Peter            clocks = <&divclk4>;
16345564c4eSSven Peter            firmware-name = "nvm_00440302.bin";
16445564c4eSSven Peter        };
16545564c4eSSven Peter    };
16645564c4eSSven Peter  - |
16745564c4eSSven Peter    serial {
16845564c4eSSven Peter
16945564c4eSSven Peter        bluetooth {
17045564c4eSSven Peter            compatible = "qcom,wcn3990-bt";
17145564c4eSSven Peter            vddio-supply = <&vreg_s4a_1p8>;
17245564c4eSSven Peter            vddxo-supply = <&vreg_l7a_1p8>;
17345564c4eSSven Peter            vddrf-supply = <&vreg_l17a_1p3>;
17445564c4eSSven Peter            vddch0-supply = <&vreg_l25a_3p3>;
17545564c4eSSven Peter            max-speed = <3200000>;
17645564c4eSSven Peter            firmware-name = "crnv21.bin";
17745564c4eSSven Peter        };
17845564c4eSSven Peter    };
17945564c4eSSven Peter  - |
18045564c4eSSven Peter    serial {
18145564c4eSSven Peter
18245564c4eSSven Peter        bluetooth {
18345564c4eSSven Peter            compatible = "qcom,wcn6750-bt";
18445564c4eSSven Peter            pinctrl-names = "default";
18545564c4eSSven Peter            pinctrl-0 = <&bt_en_default>;
18645564c4eSSven Peter            enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
18745564c4eSSven Peter            swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
18845564c4eSSven Peter            vddio-supply = <&vreg_l19b_1p8>;
18945564c4eSSven Peter            vddaon-supply = <&vreg_s7b_0p9>;
19045564c4eSSven Peter            vddbtcxmx-supply = <&vreg_s7b_0p9>;
19145564c4eSSven Peter            vddrfacmn-supply = <&vreg_s7b_0p9>;
19245564c4eSSven Peter            vddrfa0p8-supply = <&vreg_s7b_0p9>;
19345564c4eSSven Peter            vddrfa1p7-supply = <&vreg_s1b_1p8>;
19445564c4eSSven Peter            vddrfa1p2-supply = <&vreg_s8b_1p2>;
19545564c4eSSven Peter            vddrfa2p2-supply = <&vreg_s1c_2p2>;
19645564c4eSSven Peter            vddasd-supply = <&vreg_l11c_2p8>;
19745564c4eSSven Peter            max-speed = <3200000>;
19845564c4eSSven Peter            firmware-name = "msnv11.bin";
19945564c4eSSven Peter        };
20045564c4eSSven Peter    };
201