Kernel-3.10.0-957.el7_fsl-usb

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 :

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;
};