1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/phy/samsung,usb3-drd-phy.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Samsung Exynos SoC USB 3.0 DRD PHY USB 2.0 PHY 8 9maintainers: 10 - Krzysztof Kozlowski <krzk@kernel.org> 11 - Marek Szyprowski <m.szyprowski@samsung.com> 12 - Sylwester Nawrocki <s.nawrocki@samsung.com> 13 14description: | 15 For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy 16 compatible PHYs, the second cell in the PHY specifier identifies the 17 PHY id, which is interpreted as follows:: 18 0 - UTMI+ type phy, 19 1 - PIPE3 type phy. 20 21 For SoCs like Exynos5420 having multiple USB 3.0 DRD PHY controllers, 22 'usbdrd_phy' nodes should have numbered alias in the aliases node, in the 23 form of usbdrdphyN, N = 0, 1... (depending on number of controllers). 24 25properties: 26 compatible: 27 enum: 28 - google,gs101-usb31drd-phy 29 - samsung,exynos2200-usb32drd-phy 30 - samsung,exynos5250-usbdrd-phy 31 - samsung,exynos5420-usbdrd-phy 32 - samsung,exynos5433-usbdrd-phy 33 - samsung,exynos7-usbdrd-phy 34 - samsung,exynos7870-usbdrd-phy 35 - samsung,exynos850-usbdrd-phy 36 - samsung,exynos990-usbdrd-phy 37 38 clocks: 39 minItems: 1 40 maxItems: 5 41 42 clock-names: 43 minItems: 1 44 maxItems: 5 45 description: | 46 Typically two clocks: 47 - Main PHY clock (same as USB DRD controller i.e. DWC3 IP clock), used 48 for register access. 49 - PHY reference clock (usually crystal clock), used for PHY operations, 50 associated by phy name. It is used to determine bit values for clock 51 settings register. For Exynos5420 this is given as 'sclk_usbphy30' 52 in the CMU. It's not needed for Exynos2200. 53 54 "#phy-cells": 55 const: 1 56 57 phys: 58 maxItems: 1 59 description: 60 USBDRD-underlying high-speed PHY 61 62 phy-names: 63 const: hs 64 65 port: 66 $ref: /schemas/graph.yaml#/properties/port 67 description: 68 Any connector to the data bus of this controller should be modelled using 69 the OF graph bindings specified. 70 71 reg: 72 minItems: 1 73 maxItems: 3 74 75 reg-names: 76 minItems: 1 77 items: 78 - const: phy 79 - const: pcs 80 - const: pma 81 82 samsung,pmu-syscon: 83 $ref: /schemas/types.yaml#/definitions/phandle 84 description: 85 Phandle to PMU system controller interface. 86 87 vbus-supply: 88 description: 89 VBUS power source. 90 91 vbus-boost-supply: 92 description: 93 VBUS Boost 5V power source. 94 95 pll-supply: 96 description: Power supply for the USB PLL. 97 98 dvdd-usb20-supply: 99 description: DVDD power supply for the USB 2.0 phy. 100 101 vddh-usb20-supply: 102 description: VDDh power supply for the USB 2.0 phy. 103 104 vdd33-usb20-supply: 105 description: 3.3V power supply for the USB 2.0 phy. 106 107 vdda-usbdp-supply: 108 description: VDDa power supply for the USB DP phy. 109 110 vddh-usbdp-supply: 111 description: VDDh power supply for the USB DP phy. 112 113required: 114 - compatible 115 - clocks 116 - clock-names 117 - "#phy-cells" 118 - reg 119 - samsung,pmu-syscon 120 121allOf: 122 - if: 123 properties: 124 compatible: 125 contains: 126 const: google,gs101-usb31drd-phy 127 then: 128 $ref: /schemas/usb/usb-switch.yaml# 129 130 properties: 131 clocks: 132 items: 133 - description: Gate of main PHY clock 134 - description: Gate of PHY reference clock 135 - description: Gate of control interface AXI clock 136 - description: Gate of control interface APB clock 137 - description: Gate of SCL APB clock 138 139 clock-names: 140 items: 141 - const: phy 142 - const: ref 143 - const: ctrl_aclk 144 - const: ctrl_pclk 145 - const: scl_pclk 146 147 reg: 148 minItems: 3 149 150 reg-names: 151 minItems: 3 152 153 required: 154 - reg-names 155 - orientation-switch 156 - port 157 - pll-supply 158 - dvdd-usb20-supply 159 - vddh-usb20-supply 160 - vdd33-usb20-supply 161 - vdda-usbdp-supply 162 - vddh-usbdp-supply 163 164 - if: 165 properties: 166 compatible: 167 contains: 168 enum: 169 - samsung,exynos2200-usb32drd-phy 170 then: 171 properties: 172 clocks: 173 maxItems: 1 174 clock-names: 175 items: 176 - const: phy 177 reg: 178 maxItems: 1 179 reg-names: 180 maxItems: 1 181 required: 182 - phys 183 - phy-names 184 185 - if: 186 properties: 187 compatible: 188 contains: 189 enum: 190 - samsung,exynos5433-usbdrd-phy 191 - samsung,exynos7-usbdrd-phy 192 then: 193 properties: 194 clocks: 195 minItems: 5 196 maxItems: 5 197 198 clock-names: 199 items: 200 - const: phy 201 - const: ref 202 - const: phy_utmi 203 - const: phy_pipe 204 - const: itp 205 206 reg: 207 maxItems: 1 208 209 reg-names: 210 maxItems: 1 211 212 - if: 213 properties: 214 compatible: 215 contains: 216 enum: 217 - samsung,exynos5250-usbdrd-phy 218 - samsung,exynos5420-usbdrd-phy 219 - samsung,exynos7870-usbdrd-phy 220 - samsung,exynos850-usbdrd-phy 221 - samsung,exynos990-usbdrd-phy 222 then: 223 properties: 224 clocks: 225 minItems: 2 226 maxItems: 2 227 228 clock-names: 229 items: 230 - const: phy 231 - const: ref 232 233 reg: 234 maxItems: 1 235 236 reg-names: 237 maxItems: 1 238 239unevaluatedProperties: false 240 241examples: 242 - | 243 #include <dt-bindings/clock/exynos5420.h> 244 245 phy@12100000 { 246 compatible = "samsung,exynos5420-usbdrd-phy"; 247 reg = <0x12100000 0x100>; 248 #phy-cells = <1>; 249 clocks = <&clock CLK_USBD300>, <&clock CLK_SCLK_USBPHY300>; 250 clock-names = "phy", "ref"; 251 samsung,pmu-syscon = <&pmu_system_controller>; 252 vbus-supply = <&usb300_vbus_reg>; 253 }; 254