1 # SPDX-License-Identifier: (GPL-2.0-only OR BS 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/usb/chipide 4 $id: http://devicetree.org/schemas/usb/chipidea,usb2-imx.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: NXP USB2 ChipIdea USB controller 7 title: NXP USB2 ChipIdea USB controller 8 8 9 maintainers: 9 maintainers: 10 - Xu Yang <xu.yang_2@nxp.com> 10 - Xu Yang <xu.yang_2@nxp.com> 11 11 12 properties: 12 properties: 13 compatible: 13 compatible: 14 oneOf: 14 oneOf: 15 - enum: 15 - enum: 16 - fsl,imx27-usb 16 - fsl,imx27-usb 17 - items: 17 - items: 18 - enum: 18 - enum: 19 - fsl,imx23-usb 19 - fsl,imx23-usb 20 - fsl,imx25-usb 20 - fsl,imx25-usb 21 - fsl,imx28-usb 21 - fsl,imx28-usb 22 - fsl,imx35-usb 22 - fsl,imx35-usb 23 - fsl,imx50-usb 23 - fsl,imx50-usb 24 - fsl,imx51-usb 24 - fsl,imx51-usb 25 - fsl,imx53-usb 25 - fsl,imx53-usb 26 - fsl,imx6q-usb 26 - fsl,imx6q-usb 27 - fsl,imx6sl-usb 27 - fsl,imx6sl-usb 28 - fsl,imx6sx-usb 28 - fsl,imx6sx-usb 29 - fsl,imx6ul-usb 29 - fsl,imx6ul-usb 30 - fsl,imx7d-usb 30 - fsl,imx7d-usb 31 - fsl,vf610-usb 31 - fsl,vf610-usb 32 - const: fsl,imx27-usb 32 - const: fsl,imx27-usb 33 - items: 33 - items: 34 - enum: 34 - enum: 35 - fsl,imx8dxl-usb 35 - fsl,imx8dxl-usb 36 - fsl,imx8ulp-usb 36 - fsl,imx8ulp-usb 37 - const: fsl,imx7ulp-usb 37 - const: fsl,imx7ulp-usb 38 - const: fsl,imx6ul-usb 38 - const: fsl,imx6ul-usb 39 - items: 39 - items: 40 - enum: 40 - enum: 41 - fsl,imx8mm-usb 41 - fsl,imx8mm-usb 42 - fsl,imx8mn-usb 42 - fsl,imx8mn-usb 43 - fsl,imx93-usb 43 - fsl,imx93-usb 44 - const: fsl,imx7d-usb 44 - const: fsl,imx7d-usb 45 - const: fsl,imx27-usb 45 - const: fsl,imx27-usb 46 - items: 46 - items: 47 - enum: 47 - enum: 48 - fsl,imx6sll-usb 48 - fsl,imx6sll-usb 49 - fsl,imx7ulp-usb 49 - fsl,imx7ulp-usb 50 - const: fsl,imx6ul-usb 50 - const: fsl,imx6ul-usb 51 - const: fsl,imx27-usb 51 - const: fsl,imx27-usb 52 52 53 reg: 53 reg: 54 maxItems: 1 54 maxItems: 1 55 55 56 interrupts: 56 interrupts: 57 maxItems: 1 57 maxItems: 1 58 58 59 clocks: 59 clocks: 60 minItems: 1 60 minItems: 1 61 maxItems: 3 61 maxItems: 3 62 62 63 clock-names: 63 clock-names: 64 minItems: 1 64 minItems: 1 65 maxItems: 3 65 maxItems: 3 66 66 67 fsl,usbmisc: 67 fsl,usbmisc: 68 description: 68 description: 69 Phandler of non-core register device, wi 69 Phandler of non-core register device, with one argument that 70 indicate usb controller index 70 indicate usb controller index 71 $ref: /schemas/types.yaml#/definitions/pha 71 $ref: /schemas/types.yaml#/definitions/phandle-array 72 items: 72 items: 73 - items: 73 - items: 74 - description: phandle to usbmisc no 74 - description: phandle to usbmisc node 75 - description: index of usb controll 75 - description: index of usb controller 76 76 77 disable-over-current: 77 disable-over-current: 78 type: boolean 78 type: boolean 79 description: disable over current detect 79 description: disable over current detect 80 80 81 over-current-active-low: 81 over-current-active-low: 82 type: boolean 82 type: boolean 83 description: over current signal polarity 83 description: over current signal polarity is active low 84 84 85 over-current-active-high: 85 over-current-active-high: 86 type: boolean 86 type: boolean 87 description: 87 description: 88 Over current signal polarity is active h 88 Over current signal polarity is active high. It's recommended to 89 specify the over current polarity. 89 specify the over current polarity. 90 90 91 power-active-high: 91 power-active-high: 92 type: boolean 92 type: boolean 93 description: power signal polarity is acti 93 description: power signal polarity is active high 94 94 95 external-vbus-divider: 95 external-vbus-divider: 96 type: boolean 96 type: boolean 97 description: enables off-chip resistor div 97 description: enables off-chip resistor divider for Vbus 98 98 99 samsung,picophy-pre-emp-curr-control: 99 samsung,picophy-pre-emp-curr-control: 100 description: 100 description: 101 HS Transmitter Pre-Emphasis Current Cont 101 HS Transmitter Pre-Emphasis Current Control. This signal controls 102 the amount of current sourced to the USB 102 the amount of current sourced to the USB_OTG*_DP and USB_OTG*_DN 103 pins after a J-to-K or K-to-J transition 103 pins after a J-to-K or K-to-J transition. The range is from 0x0 to 104 0x3, the default value is 0x1. Details c 104 0x3, the default value is 0x1. Details can refer to TXPREEMPAMPTUNE0 105 bits of USBNC_n_PHY_CFG1. 105 bits of USBNC_n_PHY_CFG1. 106 $ref: /schemas/types.yaml#/definitions/uin 106 $ref: /schemas/types.yaml#/definitions/uint32 107 minimum: 0x0 107 minimum: 0x0 108 maximum: 0x3 108 maximum: 0x3 109 109 110 samsung,picophy-dc-vol-level-adjust: 110 samsung,picophy-dc-vol-level-adjust: 111 description: 111 description: 112 HS DC Voltage Level Adjustment. Adjust t 112 HS DC Voltage Level Adjustment. Adjust the high-speed transmitter DC 113 level voltage. The range is from 0x0 to 113 level voltage. The range is from 0x0 to 0xf, the default value is 114 0x3. Details can refer to TXVREFTUNE0 bi 114 0x3. Details can refer to TXVREFTUNE0 bits of USBNC_n_PHY_CFG1. 115 $ref: /schemas/types.yaml#/definitions/uin 115 $ref: /schemas/types.yaml#/definitions/uint32 116 minimum: 0x0 116 minimum: 0x0 117 maximum: 0xf 117 maximum: 0xf 118 118 119 fsl,picophy-rise-fall-time-adjust: 119 fsl,picophy-rise-fall-time-adjust: 120 description: 120 description: 121 HS Transmitter Rise/Fall Time Adjustment 121 HS Transmitter Rise/Fall Time Adjustment. Adjust the rise/fall times 122 of the high-speed transmitter waveform. 122 of the high-speed transmitter waveform. It has no unit. The rise/fall 123 time will be increased or decreased by a 123 time will be increased or decreased by a certain percentage relative 124 to design default time. (0:-10%; 1:desig 124 to design default time. (0:-10%; 1:design default; 2:+15%; 3:+20%) 125 Details can refer to TXRISETUNE0 bit of 125 Details can refer to TXRISETUNE0 bit of USBNC_n_PHY_CFG1. 126 $ref: /schemas/types.yaml#/definitions/uin 126 $ref: /schemas/types.yaml#/definitions/uint32 127 minimum: 0 127 minimum: 0 128 maximum: 3 128 maximum: 3 129 default: 1 129 default: 1 130 130 131 fsl,usbphy: 131 fsl,usbphy: 132 description: phandle of usb phy that conne 132 description: phandle of usb phy that connects to the port. Use "phys" instead. 133 $ref: /schemas/types.yaml#/definitions/pha 133 $ref: /schemas/types.yaml#/definitions/phandle 134 deprecated: true 134 deprecated: true 135 135 136 required: 136 required: 137 - compatible 137 - compatible 138 138 139 allOf: 139 allOf: 140 - $ref: chipidea,usb2-common.yaml# 140 - $ref: chipidea,usb2-common.yaml# 141 - if: 141 - if: 142 properties: 142 properties: 143 phy_type: 143 phy_type: 144 const: hsic 144 const: hsic 145 required: 145 required: 146 - phy_type 146 - phy_type 147 then: 147 then: 148 properties: 148 properties: 149 pinctrl-names: 149 pinctrl-names: 150 items: 150 items: 151 - const: idle 151 - const: idle 152 - const: active 152 - const: active 153 153 154 # imx27 Soc needs three clocks 154 # imx27 Soc needs three clocks 155 - if: 155 - if: 156 properties: 156 properties: 157 compatible: 157 compatible: 158 const: fsl,imx27-usb 158 const: fsl,imx27-usb 159 then: 159 then: 160 properties: 160 properties: 161 clocks: 161 clocks: 162 minItems: 3 162 minItems: 3 163 clock-names: 163 clock-names: 164 items: 164 items: 165 - const: ipg 165 - const: ipg 166 - const: ahb 166 - const: ahb 167 - const: per 167 - const: per 168 168 169 # imx25 and imx35 Soc need three clocks 169 # imx25 and imx35 Soc need three clocks 170 - if: 170 - if: 171 properties: 171 properties: 172 compatible: 172 compatible: 173 contains: 173 contains: 174 enum: 174 enum: 175 - fsl,imx25-usb 175 - fsl,imx25-usb 176 - fsl,imx35-usb 176 - fsl,imx35-usb 177 then: 177 then: 178 properties: 178 properties: 179 clocks: 179 clocks: 180 minItems: 3 180 minItems: 3 181 clock-names: 181 clock-names: 182 items: 182 items: 183 - const: ipg 183 - const: ipg 184 - const: ahb 184 - const: ahb 185 - const: per 185 - const: per 186 186 187 # imx93 Soc needs two clocks 187 # imx93 Soc needs two clocks 188 - if: 188 - if: 189 properties: 189 properties: 190 compatible: 190 compatible: 191 contains: 191 contains: 192 enum: 192 enum: 193 - fsl,imx93-usb 193 - fsl,imx93-usb 194 then: 194 then: 195 properties: 195 properties: 196 clocks: 196 clocks: 197 minItems: 2 197 minItems: 2 198 maxItems: 2 198 maxItems: 2 199 clock-names: 199 clock-names: 200 items: 200 items: 201 - const: usb_ctrl_root 201 - const: usb_ctrl_root 202 - const: usb_wakeup 202 - const: usb_wakeup 203 203 204 # imx7d Soc need one clock 204 # imx7d Soc need one clock 205 - if: 205 - if: 206 properties: 206 properties: 207 compatible: 207 compatible: 208 items: 208 items: 209 - const: fsl,imx7d-usb 209 - const: fsl,imx7d-usb 210 - const: fsl,imx27-usb 210 - const: fsl,imx27-usb 211 then: 211 then: 212 properties: 212 properties: 213 clocks: 213 clocks: 214 maxItems: 1 214 maxItems: 1 215 clock-names: false 215 clock-names: false 216 216 217 # other Soc need one clock 217 # other Soc need one clock 218 - if: 218 - if: 219 properties: 219 properties: 220 compatible: 220 compatible: 221 contains: 221 contains: 222 enum: 222 enum: 223 - fsl,imx23-usb 223 - fsl,imx23-usb 224 - fsl,imx28-usb 224 - fsl,imx28-usb 225 - fsl,imx50-usb 225 - fsl,imx50-usb 226 - fsl,imx51-usb 226 - fsl,imx51-usb 227 - fsl,imx53-usb 227 - fsl,imx53-usb 228 - fsl,imx6q-usb 228 - fsl,imx6q-usb 229 - fsl,imx6sl-usb 229 - fsl,imx6sl-usb 230 - fsl,imx6sx-usb 230 - fsl,imx6sx-usb 231 - fsl,imx6ul-usb 231 - fsl,imx6ul-usb 232 - fsl,imx8mm-usb 232 - fsl,imx8mm-usb 233 - fsl,imx8mn-usb 233 - fsl,imx8mn-usb 234 - fsl,vf610-usb 234 - fsl,vf610-usb 235 then: 235 then: 236 properties: 236 properties: 237 clocks: 237 clocks: 238 maxItems: 1 238 maxItems: 1 239 clock-names: false 239 clock-names: false 240 240 241 unevaluatedProperties: false 241 unevaluatedProperties: false 242 242 243 examples: 243 examples: 244 - | 244 - | 245 #include <dt-bindings/interrupt-controller 245 #include <dt-bindings/interrupt-controller/arm-gic.h> 246 #include <dt-bindings/clock/imx7d-clock.h> 246 #include <dt-bindings/clock/imx7d-clock.h> 247 247 248 usb@30b10000 { 248 usb@30b10000 { 249 compatible = "fsl,imx7d-usb", "fsl,imx 249 compatible = "fsl,imx7d-usb", "fsl,imx27-usb"; 250 reg = <0x30b10000 0x200>; 250 reg = <0x30b10000 0x200>; 251 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVE 251 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 252 clocks = <&clks IMX7D_USB_CTRL_CLK>; 252 clocks = <&clks IMX7D_USB_CTRL_CLK>; 253 fsl,usbphy = <&usbphynop1>; 253 fsl,usbphy = <&usbphynop1>; 254 fsl,usbmisc = <&usbmisc1 0>; 254 fsl,usbmisc = <&usbmisc1 0>; 255 phy-clkgate-delay-us = <400>; 255 phy-clkgate-delay-us = <400>; 256 }; 256 }; 257 257 258 # Example for HSIC: 258 # Example for HSIC: 259 - | 259 - | 260 #include <dt-bindings/interrupt-controller 260 #include <dt-bindings/interrupt-controller/arm-gic.h> 261 #include <dt-bindings/clock/imx6qdl-clock. 261 #include <dt-bindings/clock/imx6qdl-clock.h> 262 262 263 usb@2184400 { 263 usb@2184400 { 264 compatible = "fsl,imx6q-usb", "fsl,imx 264 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 265 reg = <0x02184400 0x200>; 265 reg = <0x02184400 0x200>; 266 interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH 266 interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>; 267 clocks = <&clks IMX6QDL_CLK_USBOH3>; 267 clocks = <&clks IMX6QDL_CLK_USBOH3>; 268 fsl,usbphy = <&usbphynop1>; 268 fsl,usbphy = <&usbphynop1>; 269 fsl,usbmisc = <&usbmisc 2>; 269 fsl,usbmisc = <&usbmisc 2>; 270 phy_type = "hsic"; 270 phy_type = "hsic"; 271 dr_mode = "host"; 271 dr_mode = "host"; 272 ahb-burst-config = <0x0>; 272 ahb-burst-config = <0x0>; 273 tx-burst-size-dword = <0x10>; 273 tx-burst-size-dword = <0x10>; 274 rx-burst-size-dword = <0x10>; 274 rx-burst-size-dword = <0x10>; 275 pinctrl-names = "idle", "active"; 275 pinctrl-names = "idle", "active"; 276 pinctrl-0 = <&pinctrl_usbh2_idle>; 276 pinctrl-0 = <&pinctrl_usbh2_idle>; 277 pinctrl-1 = <&pinctrl_usbh2_active>; 277 pinctrl-1 = <&pinctrl_usbh2_active>; 278 #address-cells = <1>; 278 #address-cells = <1>; 279 #size-cells = <0>; 279 #size-cells = <0>; 280 280 281 ethernet@1 { 281 ethernet@1 { 282 compatible = "usb424,9730"; 282 compatible = "usb424,9730"; 283 reg = <1>; 283 reg = <1>; 284 }; 284 }; 285 }; 285 }; 286 286 287 ... 287 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.