# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2023 Linaro Limited
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/qcom,ath11k-pci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies ath11k wireless devices (PCIe)

maintainers:
  - Kalle Valo <kvalo@kernel.org>
  - Jeff Johnson <jjohnson@kernel.org>

description: |
  Qualcomm Technologies IEEE 802.11ax PCIe devices

properties:
  compatible:
    enum:
      - pci17cb,1101  # QCA6390
      - pci17cb,1103  # WCN6855

  reg:
    maxItems: 1

  qcom,ath11k-calibration-variant:
    $ref: /schemas/types.yaml#/definitions/string
    description: |
      string to uniquely identify variant of the calibration data for designs
      with colliding bus and device ids

  vddrfacmn-supply:
    description: VDD_RFA_CMN supply regulator handle

  vddaon-supply:
    description: VDD_AON supply regulator handle

  vddwlcx-supply:
    description: VDD_WL_CX supply regulator handle

  vddwlmx-supply:
    description: VDD_WL_MX supply regulator handle

  vddrfa0p8-supply:
    description: VDD_RFA_0P8 supply regulator handle

  vddrfa1p2-supply:
    description: VDD_RFA_1P2 supply regulator handle

  vddrfa1p7-supply:
    description: VDD_RFA_1P7 supply regulator handle

  vddrfa1p8-supply:
    description: VDD_RFA_1P8 supply regulator handle

  vddpcie0p9-supply:
    description: VDD_PCIE_0P9 supply regulator handle

  vddpcie1p8-supply:
    description: VDD_PCIE_1P8 supply regulator handle

required:
  - compatible
  - reg

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: pci17cb,1101
    then:
      required:
        - vddrfacmn-supply
        - vddaon-supply
        - vddwlcx-supply
        - vddwlmx-supply
        - vddrfa0p8-supply
        - vddrfa1p2-supply
        - vddrfa1p7-supply
        - vddpcie0p9-supply
        - vddpcie1p8-supply
  - if:
      properties:
        compatible:
          contains:
            const: pci17cb,1103
    then:
      required:
        - vddrfacmn-supply
        - vddaon-supply
        - vddwlcx-supply
        - vddwlmx-supply
        - vddrfa0p8-supply
        - vddrfa1p2-supply
        - vddrfa1p8-supply
        - vddpcie0p9-supply
        - vddpcie1p8-supply

additionalProperties: false

examples:
  - |
    pcie {
        #address-cells = <3>;
        #size-cells = <2>;

        pcie@0 {
            device_type = "pci";
            reg = <0x0 0x0 0x0 0x0 0x0>;
            #address-cells = <3>;
            #size-cells = <2>;
            ranges;

            bus-range = <0x01 0xff>;

            wifi@0 {
                compatible = "pci17cb,1103";
                reg = <0x10000 0x0 0x0 0x0 0x0>;

                vddrfacmn-supply = <&vreg_pmu_rfa_cmn_0p8>;
                vddaon-supply = <&vreg_pmu_aon_0p8>;
                vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
                vddwlmx-supply = <&vreg_pmu_wlmx_0p8>;
                vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
                vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
                vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
                vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
                vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;

                qcom,ath11k-calibration-variant = "LE_X13S";
            };
        };
    };
