Skip to content

Commit

Permalink
USB: MXC: Add i.MX21 specific USB host controller driver.
Browse files Browse the repository at this point in the history
This driver is a Full / Low speed only USB host for the i.MX21.

Signed-off-by: Martin Fuzzey <mfuzzey@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Martin Fuzzey authored and Greg Kroah-Hartman committed Mar 2, 2010
1 parent 13dda80 commit 23d3e7a
Show file tree
Hide file tree
Showing 7 changed files with 2,804 additions and 0 deletions.
38 changes: 38 additions & 0 deletions arch/arm/plat-mxc/include/mach/mx21-usbhost.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*
* Copyright (C) 2009 Martin Fuzzey <mfuzzey@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/

#ifndef __ASM_ARCH_MX21_USBH
#define __ASM_ARCH_MX21_USBH

enum mx21_usbh_xcvr {
/* Values below as used by hardware (HWMODE register) */
MX21_USBXCVR_TXDIF_RXDIF = 0,
MX21_USBXCVR_TXDIF_RXSE = 1,
MX21_USBXCVR_TXSE_RXDIF = 2,
MX21_USBXCVR_TXSE_RXSE = 3,
};

struct mx21_usbh_platform_data {
enum mx21_usbh_xcvr host_xcvr; /* tranceiver mode host 1,2 ports */
enum mx21_usbh_xcvr otg_xcvr; /* tranceiver mode otg (as host) port */
u16 enable_host1:1,
enable_host2:1,
enable_otg_host:1, /* enable "OTG" port (as host) */
host1_xcverless:1, /* traceiverless host1 port */
host1_txenoe:1, /* output enable host1 transmit enable */
otg_ext_xcvr:1, /* external tranceiver for OTG port */
unused:10;
};

#endif /* __ASM_ARCH_MX21_USBH */
1 change: 1 addition & 0 deletions drivers/usb/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ obj-$(CONFIG_USB_U132_HCD) += host/
obj-$(CONFIG_USB_R8A66597_HCD) += host/
obj-$(CONFIG_USB_HWA_HCD) += host/
obj-$(CONFIG_USB_ISP1760_HCD) += host/
obj-$(CONFIG_USB_IMX21_HCD) += host/

obj-$(CONFIG_USB_C67X00_HCD) += c67x00/

Expand Down
11 changes: 11 additions & 0 deletions drivers/usb/host/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -399,3 +399,14 @@ config USB_HWA_HCD

To compile this driver a module, choose M here: the module
will be called "hwa-hc".

config USB_IMX21_HCD
tristate "iMX21 HCD support"
depends on USB && ARM && MACH_MX21
help
This driver enables support for the on-chip USB host in the
iMX21 processor.

To compile this driver as a module, choose M here: the
module will be called "imx21-hcd".

2 changes: 2 additions & 0 deletions drivers/usb/host/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,5 @@ obj-$(CONFIG_USB_U132_HCD) += u132-hcd.o
obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o
obj-$(CONFIG_USB_ISP1760_HCD) += isp1760.o
obj-$(CONFIG_USB_HWA_HCD) += hwa-hc.o
obj-$(CONFIG_USB_IMX21_HCD) += imx21-hcd.o

Loading

0 comments on commit 23d3e7a

Please sign in to comment.