1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 3%YAML 1.2 4--- 5$id: "http://devicetree.org/schemas/phy/qcom,qusb2-phy.yaml#" 6$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7 8title: Qualcomm QUSB2 phy controller 9 10maintainers: 11 - Wesley Cheng <quic_wcheng@quicinc.com> 12 13description: 14 QUSB2 controller supports LS/FS/HS usb connectivity on Qualcomm chipsets. 15 16properties: 17 compatible: 18 oneOf: 19 - items: 20 - enum: 21 - qcom,ipq8074-qusb2-phy 22 - qcom,msm8953-qusb2-phy 23 - qcom,msm8996-qusb2-phy 24 - qcom,msm8998-qusb2-phy 25 - qcom,qcm2290-qusb2-phy 26 - qcom,sdm660-qusb2-phy 27 - qcom,ipq6018-qusb2-phy 28 - qcom,sm4250-qusb2-phy 29 - qcom,sm6115-qusb2-phy 30 - items: 31 - enum: 32 - qcom,sc7180-qusb2-phy 33 - qcom,sdm670-qusb2-phy 34 - qcom,sdm845-qusb2-phy 35 - qcom,sm6350-qusb2-phy 36 - const: qcom,qusb2-v2-phy 37 reg: 38 maxItems: 1 39 40 "#phy-cells": 41 const: 0 42 43 clocks: 44 minItems: 2 45 items: 46 - description: phy config clock 47 - description: 19.2 MHz ref clk 48 - description: phy interface clock (Optional) 49 50 clock-names: 51 minItems: 2 52 items: 53 - const: cfg_ahb 54 - const: ref 55 - const: iface 56 57 vdd-supply: 58 description: 59 Phandle to 0.9V regulator supply to PHY digital circuit. 60 61 vdda-pll-supply: 62 description: 63 Phandle to 1.8V regulator supply to PHY refclk pll block. 64 65 vdda-phy-dpdm-supply: 66 description: 67 Phandle to 3.1V regulator supply to Dp/Dm port signals. 68 69 resets: 70 maxItems: 1 71 description: 72 Phandle to reset to phy block. 73 74 nvmem-cells: 75 maxItems: 1 76 description: 77 Phandle to nvmem cell that contains 'HS Tx trim' 78 tuning parameter value for qusb2 phy. 79 80 qcom,tcsr-syscon: 81 description: 82 Phandle to TCSR syscon register region. 83 $ref: /schemas/types.yaml#/definitions/phandle 84 85 qcom,imp-res-offset-value: 86 description: 87 It is a 6 bit value that specifies offset to be 88 added to PHY refgen RESCODE via IMP_CTRL1 register. It is a PHY 89 tuning parameter that may vary for different boards of same SOC. 90 $ref: /schemas/types.yaml#/definitions/uint32 91 minimum: 0 92 maximum: 63 93 default: 0 94 95 qcom,bias-ctrl-value: 96 description: 97 It is a 6 bit value that specifies bias-ctrl-value. It is a PHY 98 tuning parameter that may vary for different boards of same SOC. 99 $ref: /schemas/types.yaml#/definitions/uint32 100 minimum: 0 101 maximum: 63 102 default: 32 103 104 qcom,charge-ctrl-value: 105 description: 106 It is a 2 bit value that specifies charge-ctrl-value. It is a PHY 107 tuning parameter that may vary for different boards of same SOC. 108 $ref: /schemas/types.yaml#/definitions/uint32 109 minimum: 0 110 maximum: 3 111 default: 0 112 113 qcom,hstx-trim-value: 114 description: 115 It is a 4 bit value that specifies tuning for HSTX 116 output current. 117 Possible range is - 15mA to 24mA (stepsize of 600 uA). 118 See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. 119 $ref: /schemas/types.yaml#/definitions/uint32 120 minimum: 0 121 maximum: 15 122 default: 3 123 124 qcom,preemphasis-level: 125 description: 126 It is a 2 bit value that specifies pre-emphasis level. 127 Possible range is 0 to 15% (stepsize of 5%). 128 See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. 129 $ref: /schemas/types.yaml#/definitions/uint32 130 minimum: 0 131 maximum: 3 132 default: 2 133 134 qcom,preemphasis-width: 135 description: 136 It is a 1 bit value that specifies how long the HSTX 137 pre-emphasis (specified using qcom,preemphasis-level) must be in 138 effect. Duration could be half-bit of full-bit. 139 See dt-bindings/phy/phy-qcom-qusb2.h for applicable values. 140 $ref: /schemas/types.yaml#/definitions/uint32 141 minimum: 0 142 maximum: 1 143 default: 0 144 145 qcom,hsdisc-trim-value: 146 description: 147 It is a 2 bit value tuning parameter that control disconnect 148 threshold and may vary for different boards of same SOC. 149 $ref: /schemas/types.yaml#/definitions/uint32 150 minimum: 0 151 maximum: 3 152 default: 0 153 154required: 155 - compatible 156 - reg 157 - "#phy-cells" 158 - clocks 159 - clock-names 160 - vdd-supply 161 - vdda-pll-supply 162 - vdda-phy-dpdm-supply 163 - resets 164 165allOf: 166 - if: 167 not: 168 properties: 169 compatible: 170 contains: 171 const: qcom,qusb2-v2-phy 172 then: 173 properties: 174 qcom,imp-res-offset-value: false 175 qcom,bias-ctrl-value: false 176 qcom,charge-ctrl-value: false 177 qcom,hstx-trim-value: false 178 qcom,preemphasis-level: false 179 qcom,preemphasis-width: false 180 qcom,hsdisc-trim-value: false 181 182additionalProperties: false 183 184examples: 185 - | 186 #include <dt-bindings/clock/qcom,gcc-msm8996.h> 187 hsusb_phy: phy@7411000 { 188 compatible = "qcom,msm8996-qusb2-phy"; 189 reg = <0x7411000 0x180>; 190 #phy-cells = <0>; 191 192 clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, 193 <&gcc GCC_RX1_USB2_CLKREF_CLK>; 194 clock-names = "cfg_ahb", "ref"; 195 196 vdd-supply = <&pm8994_l28>; 197 vdda-pll-supply = <&pm8994_l12>; 198 vdda-phy-dpdm-supply = <&pm8994_l24>; 199 200 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>; 201 nvmem-cells = <&qusb2p_hstx_trim>; 202 }; 203