18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci%YAML 1.2
48c2ecf20Sopenharmony_ci---
58c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/phy/qcom,qusb2-phy.yaml#"
68c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#"
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cititle: Qualcomm QUSB2 phy controller
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_cimaintainers:
118c2ecf20Sopenharmony_ci  - Manu Gautam <mgautam@codeaurora.org>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cidescription:
148c2ecf20Sopenharmony_ci  QUSB2 controller supports LS/FS/HS usb connectivity on Qualcomm chipsets.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciproperties:
178c2ecf20Sopenharmony_ci  compatible:
188c2ecf20Sopenharmony_ci    oneOf:
198c2ecf20Sopenharmony_ci      - items:
208c2ecf20Sopenharmony_ci          - enum:
218c2ecf20Sopenharmony_ci              - qcom,ipq8074-qusb2-phy
228c2ecf20Sopenharmony_ci              - qcom,msm8996-qusb2-phy
238c2ecf20Sopenharmony_ci              - qcom,msm8998-qusb2-phy
248c2ecf20Sopenharmony_ci      - items:
258c2ecf20Sopenharmony_ci          - enum:
268c2ecf20Sopenharmony_ci              - qcom,sc7180-qusb2-phy
278c2ecf20Sopenharmony_ci              - qcom,sdm845-qusb2-phy
288c2ecf20Sopenharmony_ci          - const: qcom,qusb2-v2-phy
298c2ecf20Sopenharmony_ci  reg:
308c2ecf20Sopenharmony_ci    maxItems: 1
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci  "#phy-cells":
338c2ecf20Sopenharmony_ci    const: 0
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci  clocks:
368c2ecf20Sopenharmony_ci    minItems: 2
378c2ecf20Sopenharmony_ci    maxItems: 3
388c2ecf20Sopenharmony_ci    items:
398c2ecf20Sopenharmony_ci      - description: phy config clock
408c2ecf20Sopenharmony_ci      - description: 19.2 MHz ref clk
418c2ecf20Sopenharmony_ci      - description: phy interface clock (Optional)
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci  clock-names:
448c2ecf20Sopenharmony_ci    minItems: 2
458c2ecf20Sopenharmony_ci    maxItems: 3
468c2ecf20Sopenharmony_ci    items:
478c2ecf20Sopenharmony_ci      - const: cfg_ahb
488c2ecf20Sopenharmony_ci      - const: ref
498c2ecf20Sopenharmony_ci      - const: iface
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci  vdda-pll-supply:
528c2ecf20Sopenharmony_ci    description:
538c2ecf20Sopenharmony_ci      Phandle to 1.8V regulator supply to PHY refclk pll block.
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci  vdda-phy-dpdm-supply:
568c2ecf20Sopenharmony_ci    description:
578c2ecf20Sopenharmony_ci      Phandle to 3.1V regulator supply to Dp/Dm port signals.
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci  resets:
608c2ecf20Sopenharmony_ci    maxItems: 1
618c2ecf20Sopenharmony_ci    description:
628c2ecf20Sopenharmony_ci      Phandle to reset to phy block.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci  nvmem-cells:
658c2ecf20Sopenharmony_ci    maxItems: 1
668c2ecf20Sopenharmony_ci    description:
678c2ecf20Sopenharmony_ci      Phandle to nvmem cell that contains 'HS Tx trim'
688c2ecf20Sopenharmony_ci      tuning parameter value for qusb2 phy.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci  qcom,tcsr-syscon:
718c2ecf20Sopenharmony_ci    description:
728c2ecf20Sopenharmony_ci      Phandle to TCSR syscon register region.
738c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciif:
768c2ecf20Sopenharmony_ci  properties:
778c2ecf20Sopenharmony_ci    compatible:
788c2ecf20Sopenharmony_ci      contains:
798c2ecf20Sopenharmony_ci        const: qcom,qusb2-v2-phy
808c2ecf20Sopenharmony_cithen:
818c2ecf20Sopenharmony_ci  properties:
828c2ecf20Sopenharmony_ci    qcom,imp-res-offset-value:
838c2ecf20Sopenharmony_ci      description:
848c2ecf20Sopenharmony_ci        It is a 6 bit value that specifies offset to be
858c2ecf20Sopenharmony_ci        added to PHY refgen RESCODE via IMP_CTRL1 register. It is a PHY
868c2ecf20Sopenharmony_ci        tuning parameter that may vary for different boards of same SOC.
878c2ecf20Sopenharmony_ci      $ref: /schemas/types.yaml#/definitions/uint32
888c2ecf20Sopenharmony_ci      minimum: 0
898c2ecf20Sopenharmony_ci      maximum: 63
908c2ecf20Sopenharmony_ci      default: 0
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci    qcom,bias-ctrl-value:
938c2ecf20Sopenharmony_ci      description:
948c2ecf20Sopenharmony_ci        It is a 6 bit value that specifies bias-ctrl-value. It is a PHY
958c2ecf20Sopenharmony_ci        tuning parameter that may vary for different boards of same SOC.
968c2ecf20Sopenharmony_ci      $ref: /schemas/types.yaml#/definitions/uint32
978c2ecf20Sopenharmony_ci      minimum: 0
988c2ecf20Sopenharmony_ci      maximum: 63
998c2ecf20Sopenharmony_ci      default: 32
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci    qcom,charge-ctrl-value:
1028c2ecf20Sopenharmony_ci      description:
1038c2ecf20Sopenharmony_ci        It is a 2 bit value that specifies charge-ctrl-value. It is a PHY
1048c2ecf20Sopenharmony_ci        tuning parameter that may vary for different boards of same SOC.
1058c2ecf20Sopenharmony_ci      $ref: /schemas/types.yaml#/definitions/uint32
1068c2ecf20Sopenharmony_ci      minimum: 0
1078c2ecf20Sopenharmony_ci      maximum: 3
1088c2ecf20Sopenharmony_ci      default: 0
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci    qcom,hstx-trim-value:
1118c2ecf20Sopenharmony_ci      description:
1128c2ecf20Sopenharmony_ci        It is a 4 bit value that specifies tuning for HSTX
1138c2ecf20Sopenharmony_ci        output current.
1148c2ecf20Sopenharmony_ci        Possible range is - 15mA to 24mA (stepsize of 600 uA).
1158c2ecf20Sopenharmony_ci        See dt-bindings/phy/phy-qcom-qusb2.h for applicable values.
1168c2ecf20Sopenharmony_ci      $ref: /schemas/types.yaml#/definitions/uint32
1178c2ecf20Sopenharmony_ci      minimum: 0
1188c2ecf20Sopenharmony_ci      maximum: 15
1198c2ecf20Sopenharmony_ci      default: 3
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci    qcom,preemphasis-level:
1228c2ecf20Sopenharmony_ci      description:
1238c2ecf20Sopenharmony_ci        It is a 2 bit value that specifies pre-emphasis level.
1248c2ecf20Sopenharmony_ci        Possible range is 0 to 15% (stepsize of 5%).
1258c2ecf20Sopenharmony_ci        See dt-bindings/phy/phy-qcom-qusb2.h for applicable values.
1268c2ecf20Sopenharmony_ci      $ref: /schemas/types.yaml#/definitions/uint32
1278c2ecf20Sopenharmony_ci      minimum: 0
1288c2ecf20Sopenharmony_ci      maximum: 3
1298c2ecf20Sopenharmony_ci      default: 2
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci    qcom,preemphasis-width:
1328c2ecf20Sopenharmony_ci      description:
1338c2ecf20Sopenharmony_ci        It is a 1 bit value that specifies how long the HSTX
1348c2ecf20Sopenharmony_ci        pre-emphasis (specified using qcom,preemphasis-level) must be in
1358c2ecf20Sopenharmony_ci        effect. Duration could be half-bit of full-bit.
1368c2ecf20Sopenharmony_ci        See dt-bindings/phy/phy-qcom-qusb2.h for applicable values.
1378c2ecf20Sopenharmony_ci      $ref: /schemas/types.yaml#/definitions/uint32
1388c2ecf20Sopenharmony_ci      minimum: 0
1398c2ecf20Sopenharmony_ci      maximum: 1
1408c2ecf20Sopenharmony_ci      default: 0
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci    qcom,hsdisc-trim-value:
1438c2ecf20Sopenharmony_ci      description:
1448c2ecf20Sopenharmony_ci        It is a 2 bit value tuning parameter that control disconnect
1458c2ecf20Sopenharmony_ci        threshold and may vary for different boards of same SOC.
1468c2ecf20Sopenharmony_ci      $ref: /schemas/types.yaml#/definitions/uint32
1478c2ecf20Sopenharmony_ci      minimum: 0
1488c2ecf20Sopenharmony_ci      maximum: 3
1498c2ecf20Sopenharmony_ci      default: 0
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_cirequired:
1528c2ecf20Sopenharmony_ci  - compatible
1538c2ecf20Sopenharmony_ci  - reg
1548c2ecf20Sopenharmony_ci  - "#phy-cells"
1558c2ecf20Sopenharmony_ci  - clocks
1568c2ecf20Sopenharmony_ci  - clock-names
1578c2ecf20Sopenharmony_ci  - vdda-pll-supply
1588c2ecf20Sopenharmony_ci  - vdda-phy-dpdm-supply
1598c2ecf20Sopenharmony_ci  - resets
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ciadditionalProperties: false
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ciexamples:
1648c2ecf20Sopenharmony_ci  - |
1658c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/qcom,gcc-msm8996.h>
1668c2ecf20Sopenharmony_ci    hsusb_phy: phy@7411000 {
1678c2ecf20Sopenharmony_ci        compatible = "qcom,msm8996-qusb2-phy";
1688c2ecf20Sopenharmony_ci        reg = <0x7411000 0x180>;
1698c2ecf20Sopenharmony_ci        #phy-cells = <0>;
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ci        clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
1728c2ecf20Sopenharmony_ci                 <&gcc GCC_RX1_USB2_CLKREF_CLK>;
1738c2ecf20Sopenharmony_ci        clock-names = "cfg_ahb", "ref";
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci        vdda-pll-supply = <&pm8994_l12>;
1768c2ecf20Sopenharmony_ci        vdda-phy-dpdm-supply = <&pm8994_l24>;
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci        resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
1798c2ecf20Sopenharmony_ci        nvmem-cells = <&qusb2p_hstx_trim>;
1808c2ecf20Sopenharmony_ci    };
181