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