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,qmp-usb3-dp-phy.yaml#" 6$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7 8title: Qualcomm QMP USB3 DP PHY controller 9 10maintainers: 11 - Manu Gautam <mgautam@codeaurora.org> 12 13properties: 14 compatible: 15 enum: 16 - qcom,sc7180-qmp-usb3-dp-phy 17 - qcom,sdm845-qmp-usb3-dp-phy 18 - qcom,sm8250-qmp-usb3-dp-phy 19 reg: 20 items: 21 - description: Address and length of PHY's USB serdes block. 22 - description: Address and length of the DP_COM control block. 23 - description: Address and length of PHY's DP serdes block. 24 25 reg-names: 26 items: 27 - const: usb 28 - const: dp_com 29 - const: dp 30 31 "#clock-cells": 32 enum: [ 1, 2 ] 33 34 "#address-cells": 35 enum: [ 1, 2 ] 36 37 "#size-cells": 38 enum: [ 1, 2 ] 39 40 ranges: true 41 42 clocks: 43 items: 44 - description: Phy aux clock. 45 - description: Phy config clock. 46 - description: 19.2 MHz ref clk. 47 - description: Phy common block aux clock. 48 49 clock-names: 50 items: 51 - const: aux 52 - const: cfg_ahb 53 - const: ref 54 - const: com_aux 55 56 resets: 57 items: 58 - description: reset of phy block. 59 - description: phy common block reset. 60 61 reset-names: 62 items: 63 - const: phy 64 - const: common 65 66 vdda-phy-supply: 67 description: 68 Phandle to a regulator supply to PHY core block. 69 70 vdda-pll-supply: 71 description: 72 Phandle to 1.8V regulator supply to PHY refclk pll block. 73 74 vddp-ref-clk-supply: 75 description: 76 Phandle to a regulator supply to any specific refclk pll block. 77 78#Required nodes: 79patternProperties: 80 "^usb3-phy@[0-9a-f]+$": 81 type: object 82 description: 83 The USB3 PHY. 84 85 properties: 86 reg: 87 items: 88 - description: Address and length of TX. 89 - description: Address and length of RX. 90 - description: Address and length of PCS. 91 - description: Address and length of TX2. 92 - description: Address and length of RX2. 93 - description: Address and length of pcs_misc. 94 95 clocks: 96 items: 97 - description: pipe clock 98 99 clock-names: 100 items: 101 - const: pipe0 102 103 clock-output-names: 104 items: 105 - const: usb3_phy_pipe_clk_src 106 107 '#clock-cells': 108 const: 0 109 110 '#phy-cells': 111 const: 0 112 113 required: 114 - reg 115 - clocks 116 - clock-names 117 - '#clock-cells' 118 - '#phy-cells' 119 120 "^dp-phy@[0-9a-f]+$": 121 type: object 122 description: 123 The DP PHY. 124 125 properties: 126 reg: 127 items: 128 - description: Address and length of TX. 129 - description: Address and length of RX. 130 - description: Address and length of PCS. 131 - description: Address and length of TX2. 132 - description: Address and length of RX2. 133 134 '#clock-cells': 135 const: 1 136 137 '#phy-cells': 138 const: 0 139 140 required: 141 - reg 142 - '#clock-cells' 143 - '#phy-cells' 144 145required: 146 - compatible 147 - reg 148 - "#clock-cells" 149 - "#address-cells" 150 - "#size-cells" 151 - ranges 152 - clocks 153 - clock-names 154 - resets 155 - reset-names 156 - vdda-phy-supply 157 - vdda-pll-supply 158 159additionalProperties: false 160 161examples: 162 - | 163 #include <dt-bindings/clock/qcom,gcc-sdm845.h> 164 usb_1_qmpphy: phy-wrapper@88e9000 { 165 compatible = "qcom,sdm845-qmp-usb3-dp-phy"; 166 reg = <0x088e9000 0x18c>, 167 <0x088e8000 0x10>, 168 <0x088ea000 0x40>; 169 reg-names = "usb", "dp_com", "dp"; 170 #clock-cells = <1>; 171 #address-cells = <1>; 172 #size-cells = <1>; 173 ranges = <0x0 0x088e9000 0x2000>; 174 175 clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>, 176 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, 177 <&gcc GCC_USB3_PRIM_CLKREF_CLK>, 178 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>; 179 clock-names = "aux", "cfg_ahb", "ref", "com_aux"; 180 181 resets = <&gcc GCC_USB3_PHY_PRIM_BCR>, 182 <&gcc GCC_USB3_DP_PHY_PRIM_BCR>; 183 reset-names = "phy", "common"; 184 185 vdda-phy-supply = <&vdda_usb2_ss_1p2>; 186 vdda-pll-supply = <&vdda_usb2_ss_core>; 187 188 usb3-phy@200 { 189 reg = <0x200 0x128>, 190 <0x400 0x200>, 191 <0xc00 0x218>, 192 <0x600 0x128>, 193 <0x800 0x200>, 194 <0xa00 0x100>; 195 #clock-cells = <0>; 196 #phy-cells = <0>; 197 clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>; 198 clock-names = "pipe0"; 199 clock-output-names = "usb3_phy_pipe_clk_src"; 200 }; 201 202 dp-phy@88ea200 { 203 reg = <0xa200 0x200>, 204 <0xa400 0x200>, 205 <0xaa00 0x200>, 206 <0xa600 0x200>, 207 <0xa800 0x200>; 208 #clock-cells = <1>; 209 #phy-cells = <0>; 210 }; 211 }; 212