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

title: Qualcomm Technologies, Inc. eUSB2 SNPS USB HSPHY

maintainers:
  - Ronak Vijay Raheja <quic_rraheja@quicinc.com>

properties:
  compatible:
    const: qcom,usb-snps-eusb2-phy

  reg:
    description: |
      Address and length of the register set for the device. Required regs are::
       - eusb2_phy_base:: the base register for the PHY
       - eud_detect_reg:: VIOCTL_EUD_DETECT register.
      Optional regs are::
       - eud_enable_reg:: register address to read eud enable/disable status.
    minItems: 2

  vdd-supply:
    description: phandle to the Vdd supply for HSPHY digital circuit operation

  vdda12-supply:
    description: phandle to the 1.2V supply for HSPHY digital circuit operation

  clocks:
    minItems: 1
    items:
      - description: RPMH_CXO_PAD_CLK clk
      - description: TCSR_USB2_CLKREF_EN clk

  clock-names:
    minItems: 1
    items:
      - const: ref_clk_src # required
      - const: ref_clk

  qcom,vdd-voltage-level:
    description: |
      This property must be a list of three integer values (no, min, max) where
      each value represents either a voltage in microvolts or a value
      corresponding to voltage corner.
    $ref: /schemas/types.yaml#/definitions/uint32-array

  resets:
    description: |
      Reset specifier pair consists of phandle for the reset controller and
      reset lines used by this controller.

  reset-names:
    description: |
      reset signal name strings sorted in the same order as the resets
      property.

  usb-repeater:
    description: |
      phandle to eUSB2 repeater which is used with eUSB2 HSPHY for USB
      functionality.

  qcom,param-override-seq:
    description: parameter override sequence with value, reg offset pair
    $ref: /schemas/types.yaml#/definitions/uint32-array

  dummy-supply:
    description: |
      phandle to eUSB2 repeater for enforcing probe ordering for eUSB2 repeater
      and eUSB2 PHY driver.

  vdd_refgen-supply:
    description: |
      phandle to vote for additional refgen ldo. This is generally board/target
      specific.

required:
  - compatible
  - reg
  - vdd-supply
  - vdda12-supply
  - clocks
  - clock-names
  - qcom,vdd-voltage-level
  - resets
  - reset-names
  - usb-repeater

additionalProperties: false

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

    eusb2_phy: hsphy@ff4000 {
      compatible = "qcom,usb-snps-eusb2-phy";
      reg = <0x88e3000 0x154>,
            <0xc278000 0x4>;

      vdd-supply = <&pm_v8_l1>;
      qcom,vdd-voltage-level = <0 880000 880000>;
      vdda12-supply = <&pm_v8_l3>;

      clocks = <&rpmhcc RPMH_CXO_PAD_CLK>,
               <&tcsrcc TCSR_USB2_CLKREF_EN>;
      clock-names = "ref_clk_src", "ref_clk";

      resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
      reset-names = "phy_reset";

      usb-repeater = <&pm8550b_eusb2_repeater>;
    };
...
