288 lines
7.2 KiB
YAML
288 lines
7.2 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/usb/chipidea,usb2-imx.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: NXP USB2 ChipIdea USB controller
|
|
|
|
maintainers:
|
|
- Xu Yang <xu.yang_2@nxp.com>
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- fsl,imx27-usb
|
|
- items:
|
|
- enum:
|
|
- fsl,imx23-usb
|
|
- fsl,imx25-usb
|
|
- fsl,imx28-usb
|
|
- fsl,imx35-usb
|
|
- fsl,imx50-usb
|
|
- fsl,imx51-usb
|
|
- fsl,imx53-usb
|
|
- fsl,imx6q-usb
|
|
- fsl,imx6sl-usb
|
|
- fsl,imx6sx-usb
|
|
- fsl,imx6ul-usb
|
|
- fsl,imx7d-usb
|
|
- fsl,vf610-usb
|
|
- const: fsl,imx27-usb
|
|
- items:
|
|
- enum:
|
|
- fsl,imx8dxl-usb
|
|
- fsl,imx8ulp-usb
|
|
- const: fsl,imx7ulp-usb
|
|
- const: fsl,imx6ul-usb
|
|
- items:
|
|
- enum:
|
|
- fsl,imx8mm-usb
|
|
- fsl,imx8mn-usb
|
|
- fsl,imx93-usb
|
|
- const: fsl,imx7d-usb
|
|
- const: fsl,imx27-usb
|
|
- items:
|
|
- enum:
|
|
- fsl,imx6sll-usb
|
|
- fsl,imx7ulp-usb
|
|
- const: fsl,imx6ul-usb
|
|
- const: fsl,imx27-usb
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
minItems: 1
|
|
maxItems: 3
|
|
|
|
clock-names:
|
|
minItems: 1
|
|
maxItems: 3
|
|
|
|
fsl,usbmisc:
|
|
description:
|
|
Phandler of non-core register device, with one argument that
|
|
indicate usb controller index
|
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
|
items:
|
|
- items:
|
|
- description: phandle to usbmisc node
|
|
- description: index of usb controller
|
|
|
|
disable-over-current:
|
|
type: boolean
|
|
description: disable over current detect
|
|
|
|
over-current-active-low:
|
|
type: boolean
|
|
description: over current signal polarity is active low
|
|
|
|
over-current-active-high:
|
|
type: boolean
|
|
description:
|
|
Over current signal polarity is active high. It's recommended to
|
|
specify the over current polarity.
|
|
|
|
power-active-high:
|
|
type: boolean
|
|
description: power signal polarity is active high
|
|
|
|
external-vbus-divider:
|
|
type: boolean
|
|
description: enables off-chip resistor divider for Vbus
|
|
|
|
samsung,picophy-pre-emp-curr-control:
|
|
description:
|
|
HS Transmitter Pre-Emphasis Current Control. This signal controls
|
|
the amount of current sourced to the USB_OTG*_DP and USB_OTG*_DN
|
|
pins after a J-to-K or K-to-J transition. The range is from 0x0 to
|
|
0x3, the default value is 0x1. Details can refer to TXPREEMPAMPTUNE0
|
|
bits of USBNC_n_PHY_CFG1.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0x0
|
|
maximum: 0x3
|
|
|
|
samsung,picophy-dc-vol-level-adjust:
|
|
description:
|
|
HS DC Voltage Level Adjustment. Adjust the high-speed transmitter DC
|
|
level voltage. The range is from 0x0 to 0xf, the default value is
|
|
0x3. Details can refer to TXVREFTUNE0 bits of USBNC_n_PHY_CFG1.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0x0
|
|
maximum: 0xf
|
|
|
|
fsl,picophy-rise-fall-time-adjust:
|
|
description:
|
|
HS Transmitter Rise/Fall Time Adjustment. Adjust the rise/fall times
|
|
of the high-speed transmitter waveform. It has no unit. The rise/fall
|
|
time will be increased or decreased by a certain percentage relative
|
|
to design default time. (0:-10%; 1:design default; 2:+15%; 3:+20%)
|
|
Details can refer to TXRISETUNE0 bit of USBNC_n_PHY_CFG1.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 3
|
|
default: 1
|
|
|
|
fsl,usbphy:
|
|
description: phandle of usb phy that connects to the port. Use "phys" instead.
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
deprecated: true
|
|
|
|
required:
|
|
- compatible
|
|
|
|
allOf:
|
|
- $ref: chipidea,usb2-common.yaml#
|
|
- if:
|
|
properties:
|
|
phy_type:
|
|
const: hsic
|
|
required:
|
|
- phy_type
|
|
then:
|
|
properties:
|
|
pinctrl-names:
|
|
items:
|
|
- const: idle
|
|
- const: active
|
|
|
|
# imx27 Soc needs three clocks
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
const: fsl,imx27-usb
|
|
then:
|
|
properties:
|
|
clocks:
|
|
minItems: 3
|
|
clock-names:
|
|
items:
|
|
- const: ipg
|
|
- const: ahb
|
|
- const: per
|
|
|
|
# imx25 and imx35 Soc need three clocks
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- fsl,imx25-usb
|
|
- fsl,imx35-usb
|
|
then:
|
|
properties:
|
|
clocks:
|
|
minItems: 3
|
|
clock-names:
|
|
items:
|
|
- const: ipg
|
|
- const: ahb
|
|
- const: per
|
|
|
|
# imx93 Soc needs two clocks
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- fsl,imx93-usb
|
|
then:
|
|
properties:
|
|
clocks:
|
|
minItems: 2
|
|
maxItems: 2
|
|
clock-names:
|
|
items:
|
|
- const: usb_ctrl_root
|
|
- const: usb_wakeup
|
|
|
|
# imx7d Soc need one clock
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
items:
|
|
- const: fsl,imx7d-usb
|
|
- const: fsl,imx27-usb
|
|
then:
|
|
properties:
|
|
clocks:
|
|
maxItems: 1
|
|
clock-names: false
|
|
|
|
# other Soc need one clock
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- fsl,imx23-usb
|
|
- fsl,imx28-usb
|
|
- fsl,imx50-usb
|
|
- fsl,imx51-usb
|
|
- fsl,imx53-usb
|
|
- fsl,imx6q-usb
|
|
- fsl,imx6sl-usb
|
|
- fsl,imx6sx-usb
|
|
- fsl,imx6ul-usb
|
|
- fsl,imx8mm-usb
|
|
- fsl,imx8mn-usb
|
|
- fsl,vf610-usb
|
|
then:
|
|
properties:
|
|
clocks:
|
|
maxItems: 1
|
|
clock-names: false
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/clock/imx7d-clock.h>
|
|
|
|
usb@30b10000 {
|
|
compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
|
|
reg = <0x30b10000 0x200>;
|
|
interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&clks IMX7D_USB_CTRL_CLK>;
|
|
fsl,usbphy = <&usbphynop1>;
|
|
fsl,usbmisc = <&usbmisc1 0>;
|
|
phy-clkgate-delay-us = <400>;
|
|
};
|
|
|
|
# Example for HSIC:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/clock/imx6qdl-clock.h>
|
|
|
|
usb@2184400 {
|
|
compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
|
|
reg = <0x02184400 0x200>;
|
|
interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&clks IMX6QDL_CLK_USBOH3>;
|
|
fsl,usbphy = <&usbphynop1>;
|
|
fsl,usbmisc = <&usbmisc 2>;
|
|
phy_type = "hsic";
|
|
dr_mode = "host";
|
|
ahb-burst-config = <0x0>;
|
|
tx-burst-size-dword = <0x10>;
|
|
rx-burst-size-dword = <0x10>;
|
|
pinctrl-names = "idle", "active";
|
|
pinctrl-0 = <&pinctrl_usbh2_idle>;
|
|
pinctrl-1 = <&pinctrl_usbh2_active>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
ethernet@1 {
|
|
compatible = "usb424,9730";
|
|
reg = <1>;
|
|
};
|
|
};
|
|
|
|
...
|