288 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/usb/chipidea,usb2-imx.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: NXP USB2 ChipIdea USB controller8 9maintainers:10 - Xu Yang <xu.yang_2@nxp.com>11 12properties:13 compatible:14 oneOf:15 - enum:16 - fsl,imx27-usb17 - items:18 - enum:19 - fsl,imx23-usb20 - fsl,imx25-usb21 - fsl,imx28-usb22 - fsl,imx35-usb23 - fsl,imx50-usb24 - fsl,imx51-usb25 - fsl,imx53-usb26 - fsl,imx6q-usb27 - fsl,imx6sl-usb28 - fsl,imx6sx-usb29 - fsl,imx6ul-usb30 - fsl,imx7d-usb31 - fsl,vf610-usb32 - const: fsl,imx27-usb33 - items:34 - enum:35 - fsl,imx8dxl-usb36 - fsl,imx8ulp-usb37 - const: fsl,imx7ulp-usb38 - const: fsl,imx6ul-usb39 - items:40 - enum:41 - fsl,imx8mm-usb42 - fsl,imx8mn-usb43 - fsl,imx93-usb44 - const: fsl,imx7d-usb45 - const: fsl,imx27-usb46 - items:47 - enum:48 - fsl,imx6sll-usb49 - fsl,imx7ulp-usb50 - const: fsl,imx6ul-usb51 - const: fsl,imx27-usb52 53 reg:54 maxItems: 155 56 interrupts:57 maxItems: 158 59 clocks:60 minItems: 161 maxItems: 362 63 clock-names:64 minItems: 165 maxItems: 366 67 fsl,usbmisc:68 description:69 Phandler of non-core register device, with one argument that70 indicate usb controller index71 $ref: /schemas/types.yaml#/definitions/phandle-array72 items:73 - items:74 - description: phandle to usbmisc node75 - description: index of usb controller76 77 disable-over-current:78 type: boolean79 description: disable over current detect80 81 over-current-active-low:82 type: boolean83 description: over current signal polarity is active low84 85 over-current-active-high:86 type: boolean87 description:88 Over current signal polarity is active high. It's recommended to89 specify the over current polarity.90 91 power-active-high:92 type: boolean93 description: power signal polarity is active high94 95 external-vbus-divider:96 type: boolean97 description: enables off-chip resistor divider for Vbus98 99 samsung,picophy-pre-emp-curr-control:100 description:101 HS Transmitter Pre-Emphasis Current Control. This signal controls102 the amount of current sourced to the USB_OTG*_DP and USB_OTG*_DN103 pins after a J-to-K or K-to-J transition. The range is from 0x0 to104 0x3, the default value is 0x1. Details can refer to TXPREEMPAMPTUNE0105 bits of USBNC_n_PHY_CFG1.106 $ref: /schemas/types.yaml#/definitions/uint32107 minimum: 0x0108 maximum: 0x3109 110 samsung,picophy-dc-vol-level-adjust:111 description:112 HS DC Voltage Level Adjustment. Adjust the high-speed transmitter DC113 level voltage. The range is from 0x0 to 0xf, the default value is114 0x3. Details can refer to TXVREFTUNE0 bits of USBNC_n_PHY_CFG1.115 $ref: /schemas/types.yaml#/definitions/uint32116 minimum: 0x0117 maximum: 0xf118 119 fsl,picophy-rise-fall-time-adjust:120 description:121 HS Transmitter Rise/Fall Time Adjustment. Adjust the rise/fall times122 of the high-speed transmitter waveform. It has no unit. The rise/fall123 time will be increased or decreased by a certain percentage relative124 to design default time. (0:-10%; 1:design default; 2:+15%; 3:+20%)125 Details can refer to TXRISETUNE0 bit of USBNC_n_PHY_CFG1.126 $ref: /schemas/types.yaml#/definitions/uint32127 minimum: 0128 maximum: 3129 default: 1130 131 fsl,usbphy:132 description: phandle of usb phy that connects to the port. Use "phys" instead.133 $ref: /schemas/types.yaml#/definitions/phandle134 deprecated: true135 136required:137 - compatible138 139allOf:140 - $ref: chipidea,usb2-common.yaml#141 - if:142 properties:143 phy_type:144 const: hsic145 required:146 - phy_type147 then:148 properties:149 pinctrl-names:150 items:151 - const: idle152 - const: active153 154 # imx27 Soc needs three clocks155 - if:156 properties:157 compatible:158 const: fsl,imx27-usb159 then:160 properties:161 clocks:162 minItems: 3163 clock-names:164 items:165 - const: ipg166 - const: ahb167 - const: per168 169 # imx25 and imx35 Soc need three clocks170 - if:171 properties:172 compatible:173 contains:174 enum:175 - fsl,imx25-usb176 - fsl,imx35-usb177 then:178 properties:179 clocks:180 minItems: 3181 clock-names:182 items:183 - const: ipg184 - const: ahb185 - const: per186 187 # imx93 Soc needs two clocks188 - if:189 properties:190 compatible:191 contains:192 enum:193 - fsl,imx93-usb194 then:195 properties:196 clocks:197 minItems: 2198 maxItems: 2199 clock-names:200 items:201 - const: usb_ctrl_root202 - const: usb_wakeup203 204 # imx7d Soc need one clock205 - if:206 properties:207 compatible:208 items:209 - const: fsl,imx7d-usb210 - const: fsl,imx27-usb211 then:212 properties:213 clocks:214 maxItems: 1215 clock-names: false216 217 # other Soc need one clock218 - if:219 properties:220 compatible:221 contains:222 enum:223 - fsl,imx23-usb224 - fsl,imx28-usb225 - fsl,imx50-usb226 - fsl,imx51-usb227 - fsl,imx53-usb228 - fsl,imx6q-usb229 - fsl,imx6sl-usb230 - fsl,imx6sx-usb231 - fsl,imx6ul-usb232 - fsl,imx8mm-usb233 - fsl,imx8mn-usb234 - fsl,vf610-usb235 then:236 properties:237 clocks:238 maxItems: 1239 clock-names: false240 241unevaluatedProperties: false242 243examples:244 - |245 #include <dt-bindings/interrupt-controller/arm-gic.h>246 #include <dt-bindings/clock/imx7d-clock.h>247 248 usb@30b10000 {249 compatible = "fsl,imx7d-usb", "fsl,imx27-usb";250 reg = <0x30b10000 0x200>;251 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;252 clocks = <&clks IMX7D_USB_CTRL_CLK>;253 fsl,usbphy = <&usbphynop1>;254 fsl,usbmisc = <&usbmisc1 0>;255 phy-clkgate-delay-us = <400>;256 };257 258 # Example for HSIC:259 - |260 #include <dt-bindings/interrupt-controller/arm-gic.h>261 #include <dt-bindings/clock/imx6qdl-clock.h>262 263 usb@2184400 {264 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";265 reg = <0x02184400 0x200>;266 interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;267 clocks = <&clks IMX6QDL_CLK_USBOH3>;268 fsl,usbphy = <&usbphynop1>;269 fsl,usbmisc = <&usbmisc 2>;270 phy_type = "hsic";271 dr_mode = "host";272 ahb-burst-config = <0x0>;273 tx-burst-size-dword = <0x10>;274 rx-burst-size-dword = <0x10>;275 pinctrl-names = "idle", "active";276 pinctrl-0 = <&pinctrl_usbh2_idle>;277 pinctrl-1 = <&pinctrl_usbh2_active>;278 #address-cells = <1>;279 #size-cells = <0>;280 281 ethernet@1 {282 compatible = "usb424,9730";283 reg = <1>;284 };285 };286 287...288