1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm QMP USB4-USB3-DP PHY controller (SC8280XP) 8 9maintainers: 10 - Vinod Koul <vkoul@kernel.org> 11 12description: 13 The QMP PHY controller supports physical layer functionality for a number of 14 controllers on Qualcomm chipsets, such as, PCIe, UFS and USB. 15 16properties: 17 compatible: 18 oneOf: 19 - items: 20 - enum: 21 - qcom,eliza-qmp-usb3-dp-phy 22 - const: qcom,sm8650-qmp-usb3-dp-phy 23 - items: 24 - enum: 25 - qcom,kaanapali-qmp-usb3-dp-phy 26 - const: qcom,sm8750-qmp-usb3-dp-phy 27 - enum: 28 - qcom,glymur-qmp-usb3-dp-phy 29 - qcom,hawi-qmp-usb3-dp-phy 30 - qcom,sar2130p-qmp-usb3-dp-phy 31 - qcom,sc7180-qmp-usb3-dp-phy 32 - qcom,sc7280-qmp-usb3-dp-phy 33 - qcom,sc8180x-qmp-usb3-dp-phy 34 - qcom,sc8280xp-qmp-usb43dp-phy 35 - qcom,sdm845-qmp-usb3-dp-phy 36 - qcom,sm6350-qmp-usb3-dp-phy 37 - qcom,sm8150-qmp-usb3-dp-phy 38 - qcom,sm8250-qmp-usb3-dp-phy 39 - qcom,sm8350-qmp-usb3-dp-phy 40 - qcom,sm8450-qmp-usb3-dp-phy 41 - qcom,sm8475-qmp-usb3-dp-phy 42 - qcom,sm8550-qmp-usb3-dp-phy 43 - qcom,sm8650-qmp-usb3-dp-phy 44 - qcom,sm8750-qmp-usb3-dp-phy 45 - qcom,x1e80100-qmp-usb3-dp-phy 46 47 reg: 48 maxItems: 1 49 50 clocks: 51 minItems: 4 52 maxItems: 5 53 54 clock-names: 55 minItems: 4 56 items: 57 - const: aux 58 - const: ref 59 - const: com_aux 60 - const: usb3_pipe 61 - const: cfg_ahb 62 63 power-domains: 64 maxItems: 1 65 66 resets: 67 maxItems: 2 68 69 reset-names: 70 items: 71 - const: phy 72 - const: common 73 74 vdda-phy-supply: true 75 76 vdda-pll-supply: true 77 78 refgen-supply: true 79 80 "#clock-cells": 81 const: 1 82 description: 83 See include/dt-bindings/phy/phy-qcom-qmp.h 84 85 "#phy-cells": 86 const: 1 87 description: 88 See include/dt-bindings/phy/phy-qcom-qmp.h 89 90 mode-switch: true 91 orientation-switch: true 92 93 ports: 94 $ref: /schemas/graph.yaml#/properties/ports 95 96 properties: 97 port@0: 98 $ref: /schemas/graph.yaml#/$defs/port-base 99 description: Output endpoint of the PHY 100 unevaluatedProperties: false 101 102 properties: 103 endpoint: 104 $ref: /schemas/graph.yaml#/$defs/endpoint-base 105 unevaluatedProperties: false 106 107 endpoint@0: 108 $ref: /schemas/graph.yaml#/$defs/endpoint-base 109 description: Display Port Output lanes of the PHY when used with static mapping, 110 The entry index is the DP lanes index, and the number is the PHY 111 signal in the order RX0, TX0, TX1, RX1. 112 unevaluatedProperties: false 113 114 properties: 115 # Static lane mappings are mutually exclusive with typec-mux/orientation-mux 116 data-lanes: 117 $ref: /schemas/types.yaml#/definitions/uint32-array 118 minItems: 2 119 maxItems: 4 120 oneOf: 121 - items: # DisplayPort 1 lane, normal orientation 122 - const: 3 123 - items: # DisplayPort 1 lane, flipped orientation 124 - const: 0 125 - items: # DisplayPort 2 lanes, normal orientation 126 - const: 3 127 - const: 2 128 - items: # DisplayPort 2 lanes, flipped orientation 129 - const: 0 130 - const: 1 131 - items: # DisplayPort 4 lanes, normal orientation 132 - const: 3 133 - const: 2 134 - const: 1 135 - const: 0 136 - items: # DisplayPort 4 lanes, flipped orientation 137 - const: 0 138 - const: 1 139 - const: 2 140 - const: 3 141 required: 142 - data-lanes 143 144 endpoint@1: 145 $ref: /schemas/graph.yaml#/$defs/endpoint-base 146 description: USB Output lanes of the PHY when used with static mapping. 147 The entry index is the USB3 lane in the order TX then RX, and the 148 number is the PHY signal in the order RX0, TX0, TX1, RX1. 149 unevaluatedProperties: false 150 151 properties: 152 # Static lane mappings are mutually exclusive with typec-mux/orientation-mux 153 data-lanes: 154 $ref: /schemas/types.yaml#/definitions/uint32-array 155 minItems: 2 156 oneOf: 157 - items: # USB3, normal orientation 158 - const: 1 159 - const: 0 160 - items: # USB3, flipped orientation 161 - const: 2 162 - const: 3 163 164 required: 165 - data-lanes 166 167 port@1: 168 $ref: /schemas/graph.yaml#/properties/port 169 description: Incoming endpoint from the USB controller 170 171 port@2: 172 $ref: /schemas/graph.yaml#/properties/port 173 description: Incoming endpoint from the DisplayPort controller 174 175required: 176 - compatible 177 - reg 178 - clocks 179 - clock-names 180 - resets 181 - reset-names 182 - vdda-phy-supply 183 - vdda-pll-supply 184 - "#clock-cells" 185 - "#phy-cells" 186 187allOf: 188 - $ref: /schemas/usb/usb-switch.yaml# 189 - if: 190 properties: 191 compatible: 192 enum: 193 - qcom,sc7180-qmp-usb3-dp-phy 194 - qcom,sdm845-qmp-usb3-dp-phy 195 then: 196 properties: 197 clocks: 198 maxItems: 5 199 clock-names: 200 maxItems: 5 201 else: 202 properties: 203 clocks: 204 maxItems: 4 205 clock-names: 206 maxItems: 4 207 208 - if: 209 properties: 210 compatible: 211 contains: 212 enum: 213 - qcom,glymur-qmp-usb3-dp-phy 214 - qcom,hawi-qmp-usb3-dp-phy 215 - qcom,sar2130p-qmp-usb3-dp-phy 216 - qcom,sc8280xp-qmp-usb43dp-phy 217 - qcom,sm6350-qmp-usb3-dp-phy 218 - qcom,sm8550-qmp-usb3-dp-phy 219 - qcom,sm8650-qmp-usb3-dp-phy 220 - qcom,sm8750-qmp-usb3-dp-phy 221 - qcom,x1e80100-qmp-usb3-dp-phy 222 then: 223 required: 224 - power-domains 225 else: 226 properties: 227 power-domains: false 228 229 - if: 230 properties: 231 compatible: 232 enum: 233 - qcom,glymur-qmp-usb3-dp-phy 234 then: 235 required: 236 - refgen-supply 237 else: 238 properties: 239 refgen-supply: false 240 241additionalProperties: false 242 243examples: 244 - | 245 #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 246 247 phy@88eb000 { 248 compatible = "qcom,sc8280xp-qmp-usb43dp-phy"; 249 reg = <0x088eb000 0x4000>; 250 251 clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>, 252 <&gcc GCC_USB4_EUD_CLKREF_CLK>, 253 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>, 254 <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>; 255 clock-names = "aux", "ref", "com_aux", "usb3_pipe"; 256 257 power-domains = <&gcc USB30_PRIM_GDSC>; 258 259 resets = <&gcc GCC_USB3_PHY_PRIM_BCR>, 260 <&gcc GCC_USB4_DP_PHY_PRIM_BCR>; 261 reset-names = "phy", "common"; 262 263 vdda-phy-supply = <&vreg_l9d>; 264 vdda-pll-supply = <&vreg_l4d>; 265 266 orientation-switch; 267 268 #clock-cells = <1>; 269 #phy-cells = <1>; 270 271 ports { 272 #address-cells = <1>; 273 #size-cells = <0>; 274 275 port@0 { 276 reg = <0>; 277 278 endpoint { 279 remote-endpoint = <&typec_connector_ss>; 280 }; 281 }; 282 283 port@1 { 284 reg = <1>; 285 286 endpoint { 287 remote-endpoint = <&dwc3_ss_out>; 288 }; 289 }; 290 291 port@2 { 292 reg = <2>; 293 294 endpoint { 295 remote-endpoint = <&mdss_dp_out>; 296 }; 297 }; 298 }; 299 }; 300