mirror of
https://github.com/torvalds/linux.git
synced 2026-04-24 09:35:52 -04:00
Extends FSL EHCI platform driver glue layer to support MPC5121 USB controllers. MPC5121 Rev 2.0 silicon EHCI registers are in big endian format. The appropriate flags are set using the information in the platform data structure. MPC83xx system interface registers are not available on MPC512x, so the access to these registers is isolated in MPC512x case. Furthermore the USB controller clocks must be enabled before 512x register accesses which is done by providing platform specific init callback. The MPC512x internal USB PHY doesn't provide supply voltage. For boards using different power switches allow specifying DRVVBUS and PWR_FAULT signal polarity of the MPC5121 internal PHY using "fsl,invert-drvvbus" and "fsl,invert-pwr-fault" properties in the device tree USB nodes. Adds documentation for this new device tree bindings. Signed-off-by: Anatolij Gustschin <agust@denx.de> Cc: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
82 lines
2.8 KiB
Plaintext
82 lines
2.8 KiB
Plaintext
Freescale SOC USB controllers
|
|
|
|
The device node for a USB controller that is part of a Freescale
|
|
SOC is as described in the document "Open Firmware Recommended
|
|
Practice : Universal Serial Bus" with the following modifications
|
|
and additions :
|
|
|
|
Required properties :
|
|
- compatible : Should be "fsl-usb2-mph" for multi port host USB
|
|
controllers, or "fsl-usb2-dr" for dual role USB controllers
|
|
or "fsl,mpc5121-usb2-dr" for dual role USB controllers of MPC5121
|
|
- phy_type : For multi port host USB controllers, should be one of
|
|
"ulpi", or "serial". For dual role USB controllers, should be
|
|
one of "ulpi", "utmi", "utmi_wide", or "serial".
|
|
- reg : Offset and length of the register set for the device
|
|
- port0 : boolean; if defined, indicates port0 is connected for
|
|
fsl-usb2-mph compatible controllers. Either this property or
|
|
"port1" (or both) must be defined for "fsl-usb2-mph" compatible
|
|
controllers.
|
|
- port1 : boolean; if defined, indicates port1 is connected for
|
|
fsl-usb2-mph compatible controllers. Either this property or
|
|
"port0" (or both) must be defined for "fsl-usb2-mph" compatible
|
|
controllers.
|
|
- dr_mode : indicates the working mode for "fsl-usb2-dr" compatible
|
|
controllers. Can be "host", "peripheral", or "otg". Default to
|
|
"host" if not defined for backward compatibility.
|
|
|
|
Recommended properties :
|
|
- interrupts : <a b> where a is the interrupt number and b is a
|
|
field that represents an encoding of the sense and level
|
|
information for the interrupt. This should be encoded based on
|
|
the information in section 2) depending on the type of interrupt
|
|
controller you have.
|
|
- interrupt-parent : the phandle for the interrupt controller that
|
|
services interrupts for this device.
|
|
|
|
Optional properties :
|
|
- fsl,invert-drvvbus : boolean; for MPC5121 USB0 only. Indicates the
|
|
port power polarity of internal PHY signal DRVVBUS is inverted.
|
|
- fsl,invert-pwr-fault : boolean; for MPC5121 USB0 only. Indicates
|
|
the PWR_FAULT signal polarity is inverted.
|
|
|
|
Example multi port host USB controller device node :
|
|
usb@22000 {
|
|
compatible = "fsl-usb2-mph";
|
|
reg = <22000 1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupt-parent = <700>;
|
|
interrupts = <27 1>;
|
|
phy_type = "ulpi";
|
|
port0;
|
|
port1;
|
|
};
|
|
|
|
Example dual role USB controller device node :
|
|
usb@23000 {
|
|
compatible = "fsl-usb2-dr";
|
|
reg = <23000 1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupt-parent = <700>;
|
|
interrupts = <26 1>;
|
|
dr_mode = "otg";
|
|
phy = "ulpi";
|
|
};
|
|
|
|
Example dual role USB controller device node for MPC5121ADS:
|
|
|
|
usb@4000 {
|
|
compatible = "fsl,mpc5121-usb2-dr";
|
|
reg = <0x4000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupt-parent = < &ipic >;
|
|
interrupts = <44 0x8>;
|
|
dr_mode = "otg";
|
|
phy_type = "utmi_wide";
|
|
fsl,invert-drvvbus;
|
|
fsl,invert-pwr-fault;
|
|
};
|