# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/phy/qcom,snps-eusb2-phy.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm SNPS eUSB2 phy controller

maintainers:
  - Abel Vesa <abel.vesa@linaro.org>

description:
  eUSB2 controller supports LS/FS/HS usb connectivity on Qualcomm chipsets.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - qcom,sdx75-snps-eusb2-phy
              - qcom,sm8650-snps-eusb2-phy
              - qcom,x1e80100-snps-eusb2-phy
          - const: qcom,sm8550-snps-eusb2-phy
      - const: qcom,sm8550-snps-eusb2-phy

  reg:
    maxItems: 1

  "#phy-cells":
    const: 0

  clocks:
    items:
      - description: ref

  clock-names:
    items:
      - const: ref

  resets:
    maxItems: 1

  phys:
    maxItems: 1
    description:
      Phandle to eUSB2 to USB 2.0 repeater

  vdd-supply:
    description:
      Phandle to 0.88V regulator supply to PHY digital circuit.

  vdda12-supply:
    description:
      Phandle to 1.2V regulator supply to PHY refclk pll block.

required:
  - compatible
  - reg
  - "#phy-cells"
  - clocks
  - clock-names
  - vdd-supply
  - vdda12-supply
  - resets

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,sm8550-gcc.h>
    #include <dt-bindings/clock/qcom,rpmh.h>
    #include <dt-bindings/clock/qcom,sm8550-tcsr.h>

    usb_1_hsphy: phy@88e3000 {
        compatible = "qcom,sm8550-snps-eusb2-phy";
        reg = <0x88e3000 0x154>;
        #phy-cells = <0>;

        clocks = <&tcsrcc TCSR_USB2_CLKREF_EN>;
        clock-names = "ref";

        vdd-supply = <&vreg_l1e_0p88>;
        vdda12-supply = <&vreg_l3e_1p2>;

        resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
    };
