# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/phy/qcom,qusb2-phy.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm QUSB2 phy controller maintainers: - Wesley Cheng description: QUSB2 controller supports LS/FS/HS usb connectivity on Qualcomm chipsets. properties: compatible: oneOf: - items: - enum: - qcom,ipq6018-qusb2-phy - qcom,ipq8074-qusb2-phy - qcom,ipq9574-qusb2-phy - qcom,msm8953-qusb2-phy - qcom,msm8996-qusb2-phy - qcom,msm8998-qusb2-phy - qcom,qcm2290-qusb2-phy - qcom,sdm660-qusb2-phy - qcom,sm4250-qusb2-phy - qcom,sm6115-qusb2-phy - items: - enum: - qcom,sc7180-qusb2-phy - qcom,sdm670-qusb2-phy - qcom,sdm845-qusb2-phy - qcom,sm6350-qusb2-phy - const: qcom,qusb2-v2-phy reg: maxItems: 1 "#phy-cells": const: 0 clocks: minItems: 2 items: - description: phy config clock - description: 19.2 MHz ref clk - description: phy interface clock (Optional) clock-names: minItems: 2 items: - const: cfg_ahb - const: ref - const: iface vdd-supply: description: Phandle to 0.9V regulator supply to PHY digital circuit. vdda-pll-supply: description: Phandle to 1.8V regulator supply to PHY refclk pll block. vdda-phy-dpdm-supply: description: Phandle to 3.1V regulator supply to Dp/Dm port signals. resets: maxItems: 1 description: Phandle to reset to phy block. nvmem-cells: maxItems: 1 description: Phandle to nvmem cell that contains 'HS Tx trim' tuning parameter value for qusb2 phy. qcom,tcsr-syscon: description: Phandle to TCSR syscon register region. $ref: /schemas/types.yaml#/definitions/phandle qcom,imp-res-offset-value: description: It is a 6 bit value that specifies offset to be added to PHY refgen RESCODE via IMP_CTRL1 register. It is a PHY tuning parameter that may vary for different boards of same SOC. $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 maximum: 63 default: 0 qcom,bias-ctrl-value: description: It is a 6 bit value that specifies bias-ctrl-value. It is a PHY tuning parameter that may vary for different boards of same SOC. $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 maximum: 63 default: 32 qcom,charge-ctrl-value: description: It is a 2 bit value that specifies charge-ctrl-value. It is a PHY tuning parameter that may vary for different boards of same SOC. $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 maximum: 3 default: 0 qcom,hstx-trim-value: description: It is a 4 bit value that specifies tuning for HSTX output current. Possible range is - 15mA to 24mA (stepsize of 600 uA). See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 maximum: 15 default: 3 qcom,preemphasis-level: description: It is a 2 bit value that specifies pre-emphasis level. Possible range is 0 to 15% (stepsize of 5%). See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 maximum: 3 default: 2 qcom,preemphasis-width: description: It is a 1 bit value that specifies how long the HSTX pre-emphasis (specified using qcom,preemphasis-level) must be in effect. Duration could be half-bit of full-bit. See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 maximum: 1 default: 0 qcom,hsdisc-trim-value: description: It is a 2 bit value tuning parameter that control disconnect threshold and may vary for different boards of same SOC. $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 maximum: 3 default: 0 required: - compatible - reg - "#phy-cells" - clocks - clock-names - vdd-supply - vdda-pll-supply - vdda-phy-dpdm-supply - resets allOf: - if: not: properties: compatible: contains: const: qcom,qusb2-v2-phy then: properties: qcom,imp-res-offset-value: false qcom,bias-ctrl-value: false qcom,charge-ctrl-value: false qcom,hstx-trim-value: false qcom,preemphasis-level: false qcom,preemphasis-width: false qcom,hsdisc-trim-value: false additionalProperties: false examples: - | #include hsusb_phy: phy@7411000 { compatible = "qcom,msm8996-qusb2-phy"; reg = <0x7411000 0x180>; #phy-cells = <0>; clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, <&gcc GCC_RX1_USB2_CLKREF_CLK>; clock-names = "cfg_ahb", "ref"; vdd-supply = <&pm8994_l28>; vdda-pll-supply = <&pm8994_l12>; vdda-phy-dpdm-supply = <&pm8994_l24>; resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>; nvmem-cells = <&qusb2p_hstx_trim>; };