162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci%YAML 1.2 462306a36Sopenharmony_ci--- 562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/phy/qcom,qusb2-phy.yaml# 662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 762306a36Sopenharmony_ci 862306a36Sopenharmony_cititle: Qualcomm QUSB2 phy controller 962306a36Sopenharmony_ci 1062306a36Sopenharmony_cimaintainers: 1162306a36Sopenharmony_ci - Wesley Cheng <quic_wcheng@quicinc.com> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cidescription: 1462306a36Sopenharmony_ci QUSB2 controller supports LS/FS/HS usb connectivity on Qualcomm chipsets. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciproperties: 1762306a36Sopenharmony_ci compatible: 1862306a36Sopenharmony_ci oneOf: 1962306a36Sopenharmony_ci - items: 2062306a36Sopenharmony_ci - enum: 2162306a36Sopenharmony_ci - qcom,ipq6018-qusb2-phy 2262306a36Sopenharmony_ci - qcom,ipq8074-qusb2-phy 2362306a36Sopenharmony_ci - qcom,ipq9574-qusb2-phy 2462306a36Sopenharmony_ci - qcom,msm8953-qusb2-phy 2562306a36Sopenharmony_ci - qcom,msm8996-qusb2-phy 2662306a36Sopenharmony_ci - qcom,msm8998-qusb2-phy 2762306a36Sopenharmony_ci - qcom,qcm2290-qusb2-phy 2862306a36Sopenharmony_ci - qcom,sdm660-qusb2-phy 2962306a36Sopenharmony_ci - qcom,sm4250-qusb2-phy 3062306a36Sopenharmony_ci - qcom,sm6115-qusb2-phy 3162306a36Sopenharmony_ci - items: 3262306a36Sopenharmony_ci - enum: 3362306a36Sopenharmony_ci - qcom,sc7180-qusb2-phy 3462306a36Sopenharmony_ci - qcom,sdm670-qusb2-phy 3562306a36Sopenharmony_ci - qcom,sdm845-qusb2-phy 3662306a36Sopenharmony_ci - qcom,sm6350-qusb2-phy 3762306a36Sopenharmony_ci - const: qcom,qusb2-v2-phy 3862306a36Sopenharmony_ci reg: 3962306a36Sopenharmony_ci maxItems: 1 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci "#phy-cells": 4262306a36Sopenharmony_ci const: 0 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci clocks: 4562306a36Sopenharmony_ci minItems: 2 4662306a36Sopenharmony_ci items: 4762306a36Sopenharmony_ci - description: phy config clock 4862306a36Sopenharmony_ci - description: 19.2 MHz ref clk 4962306a36Sopenharmony_ci - description: phy interface clock (Optional) 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci clock-names: 5262306a36Sopenharmony_ci minItems: 2 5362306a36Sopenharmony_ci items: 5462306a36Sopenharmony_ci - const: cfg_ahb 5562306a36Sopenharmony_ci - const: ref 5662306a36Sopenharmony_ci - const: iface 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci vdd-supply: 5962306a36Sopenharmony_ci description: 6062306a36Sopenharmony_ci Phandle to 0.9V regulator supply to PHY digital circuit. 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci vdda-pll-supply: 6362306a36Sopenharmony_ci description: 6462306a36Sopenharmony_ci Phandle to 1.8V regulator supply to PHY refclk pll block. 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci vdda-phy-dpdm-supply: 6762306a36Sopenharmony_ci description: 6862306a36Sopenharmony_ci Phandle to 3.1V regulator supply to Dp/Dm port signals. 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci resets: 7162306a36Sopenharmony_ci maxItems: 1 7262306a36Sopenharmony_ci description: 7362306a36Sopenharmony_ci Phandle to reset to phy block. 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci nvmem-cells: 7662306a36Sopenharmony_ci maxItems: 1 7762306a36Sopenharmony_ci description: 7862306a36Sopenharmony_ci Phandle to nvmem cell that contains 'HS Tx trim' 7962306a36Sopenharmony_ci tuning parameter value for qusb2 phy. 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci qcom,tcsr-syscon: 8262306a36Sopenharmony_ci description: 8362306a36Sopenharmony_ci Phandle to TCSR syscon register region. 8462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/phandle 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci qcom,imp-res-offset-value: 8762306a36Sopenharmony_ci description: 8862306a36Sopenharmony_ci It is a 6 bit value that specifies offset to be 8962306a36Sopenharmony_ci added to PHY refgen RESCODE via IMP_CTRL1 register. It is a PHY 9062306a36Sopenharmony_ci tuning parameter that may vary for different boards of same SOC. 9162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 9262306a36Sopenharmony_ci minimum: 0 9362306a36Sopenharmony_ci maximum: 63 9462306a36Sopenharmony_ci default: 0 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci qcom,bias-ctrl-value: 9762306a36Sopenharmony_ci description: 9862306a36Sopenharmony_ci It is a 6 bit value that specifies bias-ctrl-value. It is a PHY 9962306a36Sopenharmony_ci tuning parameter that may vary for different boards of same SOC. 10062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 10162306a36Sopenharmony_ci minimum: 0 10262306a36Sopenharmony_ci maximum: 63 10362306a36Sopenharmony_ci default: 32 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci qcom,charge-ctrl-value: 10662306a36Sopenharmony_ci description: 10762306a36Sopenharmony_ci It is a 2 bit value that specifies charge-ctrl-value. It is a PHY 10862306a36Sopenharmony_ci tuning parameter that may vary for different boards of same SOC. 10962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 11062306a36Sopenharmony_ci minimum: 0 11162306a36Sopenharmony_ci maximum: 3 11262306a36Sopenharmony_ci default: 0 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci qcom,hstx-trim-value: 11562306a36Sopenharmony_ci description: 11662306a36Sopenharmony_ci It is a 4 bit value that specifies tuning for HSTX 11762306a36Sopenharmony_ci output current. 11862306a36Sopenharmony_ci Possible range is - 15mA to 24mA (stepsize of 600 uA). 11962306a36Sopenharmony_ci See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. 12062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 12162306a36Sopenharmony_ci minimum: 0 12262306a36Sopenharmony_ci maximum: 15 12362306a36Sopenharmony_ci default: 3 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci qcom,preemphasis-level: 12662306a36Sopenharmony_ci description: 12762306a36Sopenharmony_ci It is a 2 bit value that specifies pre-emphasis level. 12862306a36Sopenharmony_ci Possible range is 0 to 15% (stepsize of 5%). 12962306a36Sopenharmony_ci See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. 13062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 13162306a36Sopenharmony_ci minimum: 0 13262306a36Sopenharmony_ci maximum: 3 13362306a36Sopenharmony_ci default: 2 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci qcom,preemphasis-width: 13662306a36Sopenharmony_ci description: 13762306a36Sopenharmony_ci It is a 1 bit value that specifies how long the HSTX 13862306a36Sopenharmony_ci pre-emphasis (specified using qcom,preemphasis-level) must be in 13962306a36Sopenharmony_ci effect. Duration could be half-bit of full-bit. 14062306a36Sopenharmony_ci See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. 14162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 14262306a36Sopenharmony_ci minimum: 0 14362306a36Sopenharmony_ci maximum: 1 14462306a36Sopenharmony_ci default: 0 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci qcom,hsdisc-trim-value: 14762306a36Sopenharmony_ci description: 14862306a36Sopenharmony_ci It is a 2 bit value tuning parameter that control disconnect 14962306a36Sopenharmony_ci threshold and may vary for different boards of same SOC. 15062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 15162306a36Sopenharmony_ci minimum: 0 15262306a36Sopenharmony_ci maximum: 3 15362306a36Sopenharmony_ci default: 0 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_cirequired: 15662306a36Sopenharmony_ci - compatible 15762306a36Sopenharmony_ci - reg 15862306a36Sopenharmony_ci - "#phy-cells" 15962306a36Sopenharmony_ci - clocks 16062306a36Sopenharmony_ci - clock-names 16162306a36Sopenharmony_ci - vdd-supply 16262306a36Sopenharmony_ci - vdda-pll-supply 16362306a36Sopenharmony_ci - vdda-phy-dpdm-supply 16462306a36Sopenharmony_ci - resets 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ciallOf: 16762306a36Sopenharmony_ci - if: 16862306a36Sopenharmony_ci not: 16962306a36Sopenharmony_ci properties: 17062306a36Sopenharmony_ci compatible: 17162306a36Sopenharmony_ci contains: 17262306a36Sopenharmony_ci const: qcom,qusb2-v2-phy 17362306a36Sopenharmony_ci then: 17462306a36Sopenharmony_ci properties: 17562306a36Sopenharmony_ci qcom,imp-res-offset-value: false 17662306a36Sopenharmony_ci qcom,bias-ctrl-value: false 17762306a36Sopenharmony_ci qcom,charge-ctrl-value: false 17862306a36Sopenharmony_ci qcom,hstx-trim-value: false 17962306a36Sopenharmony_ci qcom,preemphasis-level: false 18062306a36Sopenharmony_ci qcom,preemphasis-width: false 18162306a36Sopenharmony_ci qcom,hsdisc-trim-value: false 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ciadditionalProperties: false 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ciexamples: 18662306a36Sopenharmony_ci - | 18762306a36Sopenharmony_ci #include <dt-bindings/clock/qcom,gcc-msm8996.h> 18862306a36Sopenharmony_ci hsusb_phy: phy@7411000 { 18962306a36Sopenharmony_ci compatible = "qcom,msm8996-qusb2-phy"; 19062306a36Sopenharmony_ci reg = <0x7411000 0x180>; 19162306a36Sopenharmony_ci #phy-cells = <0>; 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_ci clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, 19462306a36Sopenharmony_ci <&gcc GCC_RX1_USB2_CLKREF_CLK>; 19562306a36Sopenharmony_ci clock-names = "cfg_ahb", "ref"; 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci vdd-supply = <&pm8994_l28>; 19862306a36Sopenharmony_ci vdda-pll-supply = <&pm8994_l12>; 19962306a36Sopenharmony_ci vdda-phy-dpdm-supply = <&pm8994_l24>; 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>; 20262306a36Sopenharmony_ci nvmem-cells = <&qusb2p_hstx_trim>; 20362306a36Sopenharmony_ci }; 204