xref: /openbmc/linux/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml (revision 6a0a6dd8df9b6e9c0ed8d99bbfb4e5e2f8c9834f)
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
26b1d00baaSSteev 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
53*6a0a6dd8SKrzysztof Kozlowski  vddch1-supply:
54*6a0a6dd8SKrzysztof Kozlowski    description: VDD_CH1 supply regulator handle
55*6a0a6dd8SKrzysztof Kozlowski
5645564c4eSSven Peter  vddaon-supply:
5745564c4eSSven Peter    description: VDD_AON supply regulator handle
5845564c4eSSven Peter
5945564c4eSSven Peter  vddbtcxmx-supply:
6045564c4eSSven Peter    description: VDD_BT_CXMX supply regulator handle
6145564c4eSSven Peter
6245564c4eSSven Peter  vddrfacmn-supply:
6345564c4eSSven Peter    description: VDD_RFA_CMN supply regulator handle
6445564c4eSSven Peter
6545564c4eSSven Peter  vddrfa0p8-supply:
6645564c4eSSven Peter    description: VDD_RFA_0P8 suppply regulator handle
6745564c4eSSven Peter
6845564c4eSSven Peter  vddrfa1p7-supply:
6945564c4eSSven Peter    description: VDD_RFA_1P7 supply regulator handle
7045564c4eSSven Peter
7145564c4eSSven Peter  vddrfa1p2-supply:
7245564c4eSSven Peter    description: VDD_RFA_1P2 supply regulator handle
7345564c4eSSven Peter
7445564c4eSSven Peter  vddrfa2p2-supply:
7545564c4eSSven Peter    description: VDD_RFA_2P2 supply regulator handle
7645564c4eSSven Peter
7745564c4eSSven Peter  vddasd-supply:
7845564c4eSSven Peter    description: VDD_ASD supply regulator handle
7945564c4eSSven Peter
8045564c4eSSven Peter  max-speed:
8145564c4eSSven Peter    description: see Documentation/devicetree/bindings/serial/serial.yaml
8245564c4eSSven Peter
8345564c4eSSven Peter  firmware-name:
8445564c4eSSven Peter    description: specify the name of nvm firmware to load
8545564c4eSSven Peter
8645564c4eSSven Peter  local-bd-address: true
8745564c4eSSven Peter
8845564c4eSSven Peter
8945564c4eSSven Peterrequired:
9045564c4eSSven Peter  - compatible
9145564c4eSSven Peter
9245564c4eSSven PeteradditionalProperties: false
9345564c4eSSven Peter
9445564c4eSSven PeterallOf:
9545564c4eSSven Peter  - $ref: bluetooth-controller.yaml#
9645564c4eSSven Peter  - if:
9745564c4eSSven Peter      properties:
9845564c4eSSven Peter        compatible:
9945564c4eSSven Peter          contains:
10045564c4eSSven Peter            enum:
10145564c4eSSven Peter              - qcom,qca6174-bt
10245564c4eSSven Peter    then:
10345564c4eSSven Peter      required:
10445564c4eSSven Peter        - enable-gpios
10545564c4eSSven Peter        - clocks
10645564c4eSSven Peter
10745564c4eSSven Peter  - if:
10845564c4eSSven Peter      properties:
10945564c4eSSven Peter        compatible:
11045564c4eSSven Peter          contains:
11145564c4eSSven Peter            enum:
11245564c4eSSven Peter              - qcom,wcn3990-bt
11345564c4eSSven Peter              - qcom,wcn3991-bt
11445564c4eSSven Peter              - qcom,wcn3998-bt
11545564c4eSSven Peter    then:
11645564c4eSSven Peter      required:
11745564c4eSSven Peter        - vddio-supply
11845564c4eSSven Peter        - vddxo-supply
11945564c4eSSven Peter        - vddrf-supply
12045564c4eSSven Peter        - vddch0-supply
12145564c4eSSven Peter
12245564c4eSSven Peter  - if:
12345564c4eSSven Peter      properties:
12445564c4eSSven Peter        compatible:
12545564c4eSSven Peter          contains:
12645564c4eSSven Peter            enum:
12745564c4eSSven Peter              - qcom,wcn6750-bt
12845564c4eSSven Peter    then:
12945564c4eSSven Peter      required:
13045564c4eSSven Peter        - enable-gpios
13145564c4eSSven Peter        - swctrl-gpios
13245564c4eSSven Peter        - vddio-supply
13345564c4eSSven Peter        - vddaon-supply
13445564c4eSSven Peter        - vddbtcxmx-supply
13545564c4eSSven Peter        - vddrfacmn-supply
13645564c4eSSven Peter        - vddrfa0p8-supply
13745564c4eSSven Peter        - vddrfa1p7-supply
13845564c4eSSven Peter        - vddrfa1p2-supply
13945564c4eSSven Peter        - vddasd-supply
140b1d00baaSSteev Klimaszewski  - if:
141b1d00baaSSteev Klimaszewski      properties:
142b1d00baaSSteev Klimaszewski        compatible:
143b1d00baaSSteev Klimaszewski          contains:
144b1d00baaSSteev Klimaszewski            enum:
145b1d00baaSSteev Klimaszewski              - qcom,wcn6855-bt
146b1d00baaSSteev Klimaszewski    then:
147b1d00baaSSteev Klimaszewski      required:
148b1d00baaSSteev Klimaszewski        - enable-gpios
149b1d00baaSSteev Klimaszewski        - swctrl-gpios
150b1d00baaSSteev Klimaszewski        - vddio-supply
151b1d00baaSSteev Klimaszewski        - vddbtcxmx-supply
152b1d00baaSSteev Klimaszewski        - vddrfacmn-supply
153b1d00baaSSteev Klimaszewski        - vddrfa0p8-supply
154b1d00baaSSteev Klimaszewski        - vddrfa1p2-supply
155b1d00baaSSteev Klimaszewski        - vddrfa1p7-supply
15645564c4eSSven Peter
15745564c4eSSven Peterexamples:
15845564c4eSSven Peter  - |
15945564c4eSSven Peter    #include <dt-bindings/gpio/gpio.h>
16045564c4eSSven Peter    serial {
16145564c4eSSven Peter
16245564c4eSSven Peter        bluetooth {
16345564c4eSSven Peter            compatible = "qcom,qca6174-bt";
16445564c4eSSven Peter            enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
16545564c4eSSven Peter            clocks = <&divclk4>;
16645564c4eSSven Peter            firmware-name = "nvm_00440302.bin";
16745564c4eSSven Peter        };
16845564c4eSSven Peter    };
16945564c4eSSven Peter  - |
17045564c4eSSven Peter    serial {
17145564c4eSSven Peter
17245564c4eSSven Peter        bluetooth {
17345564c4eSSven Peter            compatible = "qcom,wcn3990-bt";
17445564c4eSSven Peter            vddio-supply = <&vreg_s4a_1p8>;
17545564c4eSSven Peter            vddxo-supply = <&vreg_l7a_1p8>;
17645564c4eSSven Peter            vddrf-supply = <&vreg_l17a_1p3>;
17745564c4eSSven Peter            vddch0-supply = <&vreg_l25a_3p3>;
17845564c4eSSven Peter            max-speed = <3200000>;
17945564c4eSSven Peter            firmware-name = "crnv21.bin";
18045564c4eSSven Peter        };
18145564c4eSSven Peter    };
18245564c4eSSven Peter  - |
18345564c4eSSven Peter    serial {
18445564c4eSSven Peter
18545564c4eSSven Peter        bluetooth {
18645564c4eSSven Peter            compatible = "qcom,wcn6750-bt";
18745564c4eSSven Peter            pinctrl-names = "default";
18845564c4eSSven Peter            pinctrl-0 = <&bt_en_default>;
18945564c4eSSven Peter            enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
19045564c4eSSven Peter            swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
19145564c4eSSven Peter            vddio-supply = <&vreg_l19b_1p8>;
19245564c4eSSven Peter            vddaon-supply = <&vreg_s7b_0p9>;
19345564c4eSSven Peter            vddbtcxmx-supply = <&vreg_s7b_0p9>;
19445564c4eSSven Peter            vddrfacmn-supply = <&vreg_s7b_0p9>;
19545564c4eSSven Peter            vddrfa0p8-supply = <&vreg_s7b_0p9>;
19645564c4eSSven Peter            vddrfa1p7-supply = <&vreg_s1b_1p8>;
19745564c4eSSven Peter            vddrfa1p2-supply = <&vreg_s8b_1p2>;
19845564c4eSSven Peter            vddrfa2p2-supply = <&vreg_s1c_2p2>;
19945564c4eSSven Peter            vddasd-supply = <&vreg_l11c_2p8>;
20045564c4eSSven Peter            max-speed = <3200000>;
20145564c4eSSven Peter            firmware-name = "msnv11.bin";
20245564c4eSSven Peter        };
20345564c4eSSven Peter    };
204