# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/bluetooth/qualcomm-bluetooth.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Bluetooth Chips

maintainers:
  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
  - Rocky Liao <quic_rjliao@quicinc.com>

description:
  This binding describes Qualcomm UART-attached bluetooth chips.

properties:
  compatible:
    enum:
      - qcom,qca2066-bt
      - qcom,qca6174-bt
      - qcom,qca9377-bt
      - qcom,wcn3988-bt
      - qcom,wcn3990-bt
      - qcom,wcn3991-bt
      - qcom,wcn3998-bt
      - qcom,qca6390-bt
      - qcom,wcn6750-bt
      - qcom,wcn6855-bt
      - qcom,wcn7850-bt

  enable-gpios:
    maxItems: 1
    description: gpio specifier used to enable chip

  swctrl-gpios:
    maxItems: 1
    description: gpio specifier is used to find status
                 of clock supply to SoC

  clocks:
    maxItems: 1
    description: clock provided to the controller (SUSCLK_32KHZ)

  vddio-supply:
    description: VDD_IO supply regulator handle

  vddxo-supply:
    description: VDD_XO supply regulator handle

  vddrf-supply:
    description: VDD_RF supply regulator handle

  vddch0-supply:
    description: VDD_CH0 supply regulator handle

  vddch1-supply:
    description: VDD_CH1 supply regulator handle

  vddaon-supply:
    description: VDD_AON supply regulator handle

  vdddig-supply:
    description: VDD_DIG supply regulator handle

  vddbtcxmx-supply:
    description: VDD_BT_CXMX supply regulator handle

  vddrfacmn-supply:
    description: VDD_RFA_CMN supply regulator handle

  vddrfa0p8-supply:
    description: VDD_RFA_0P8 suppply regulator handle

  vddrfa1p7-supply:
    description: VDD_RFA_1P7 supply regulator handle

  vddrfa1p2-supply:
    description: VDD_RFA_1P2 supply regulator handle

  vddrfa1p9-supply:
    description: VDD_RFA_1P9 supply regulator handle

  vddrfa2p2-supply:
    description: VDD_RFA_2P2 supply regulator handle

  vddasd-supply:
    description: VDD_ASD supply regulator handle

  max-speed:
    description: see Documentation/devicetree/bindings/serial/serial.yaml

  firmware-name:
    description: specify the name of nvm firmware to load

  local-bd-address: true


required:
  - compatible

additionalProperties: false

allOf:
  - $ref: bluetooth-controller.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,qca2066-bt
              - qcom,qca6174-bt
    then:
      required:
        - enable-gpios
        - clocks

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,wcn3988-bt
              - qcom,wcn3990-bt
              - qcom,wcn3991-bt
              - qcom,wcn3998-bt
    then:
      required:
        - vddio-supply
        - vddxo-supply
        - vddrf-supply
        - vddch0-supply

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,wcn6750-bt
    then:
      required:
        - enable-gpios
        - swctrl-gpios
        - vddio-supply
        - vddaon-supply
        - vddbtcxmx-supply
        - vddrfacmn-supply
        - vddrfa0p8-supply
        - vddrfa1p7-supply
        - vddrfa1p2-supply
        - vddasd-supply
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,wcn6855-bt
    then:
      required:
        - enable-gpios
        - swctrl-gpios
        - vddio-supply
        - vddbtcxmx-supply
        - vddrfacmn-supply
        - vddrfa0p8-supply
        - vddrfa1p2-supply
        - vddrfa1p7-supply
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,wcn7850-bt
    then:
      required:
        - enable-gpios
        - swctrl-gpios
        - vddio-supply
        - vddaon-supply
        - vdddig-supply
        - vddrfa0p8-supply
        - vddrfa1p2-supply
        - vddrfa1p9-supply

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    serial {

        bluetooth {
            compatible = "qcom,qca6174-bt";
            enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
            clocks = <&divclk4>;
            firmware-name = "nvm_00440302.bin";
        };
    };
  - |
    serial {

        bluetooth {
            compatible = "qcom,wcn3990-bt";
            vddio-supply = <&vreg_s4a_1p8>;
            vddxo-supply = <&vreg_l7a_1p8>;
            vddrf-supply = <&vreg_l17a_1p3>;
            vddch0-supply = <&vreg_l25a_3p3>;
            max-speed = <3200000>;
            firmware-name = "crnv21.bin";
        };
    };
  - |
    serial {

        bluetooth {
            compatible = "qcom,wcn6750-bt";
            pinctrl-names = "default";
            pinctrl-0 = <&bt_en_default>;
            enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
            swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
            vddio-supply = <&vreg_l19b_1p8>;
            vddaon-supply = <&vreg_s7b_0p9>;
            vddbtcxmx-supply = <&vreg_s7b_0p9>;
            vddrfacmn-supply = <&vreg_s7b_0p9>;
            vddrfa0p8-supply = <&vreg_s7b_0p9>;
            vddrfa1p7-supply = <&vreg_s1b_1p8>;
            vddrfa1p2-supply = <&vreg_s8b_1p2>;
            vddrfa2p2-supply = <&vreg_s1c_2p2>;
            vddasd-supply = <&vreg_l11c_2p8>;
            max-speed = <3200000>;
            firmware-name = "msnv11.bin";
        };
    };
