diff options
author | David Daney <ddaney@caviumnetworks.com> | 2010-10-08 17:47:52 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2010-10-29 14:08:44 -0400 |
commit | 1643accdaad4625c2877f7ceefa39c1cb3e90117 (patch) | |
tree | e3dcc5b371c89591e1d90f80bd82727b8e0fd245 /drivers/usb/host/Kconfig | |
parent | 4169b86324fbefdf137a0bd69154d0e874f2bec2 (diff) |
USB: Add EHCI and OHCH glue for OCTEON II SOCs.
The OCTEON II SOC has USB EHCI and OHCI controllers connected directly
to the internal I/O bus. This patch adds the necessary 'glue' logic
to allow ehci-hcd and ohci-hcd drivers to work on OCTEON II.
The OCTEON normally runs big-endian, and the ehci/ohci internal
registers have host endianness, so we need to select
USB_EHCI_BIG_ENDIAN_MMIO.
The ehci and ohci blocks share a common clocking and PHY
infrastructure. Initialization of the host controller and PHY clocks
is common between the two and is factored out into the
octeon2-common.c file.
Setting of USB_ARCH_HAS_OHCI and USB_ARCH_HAS_EHCI is done in
arch/mips/Kconfig in a following patch.
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
To: linux-usb@vger.kernel.org
To: dbrownell@users.sourceforge.net
Patchwork: http://patchwork.linux-mips.org/patch/1675/
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'drivers/usb/host/Kconfig')
-rw-r--r-- | drivers/usb/host/Kconfig | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index bf2e7d234533..2391c396ca32 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig | |||
@@ -93,8 +93,9 @@ config USB_EHCI_TT_NEWSCHED | |||
93 | 93 | ||
94 | config USB_EHCI_BIG_ENDIAN_MMIO | 94 | config USB_EHCI_BIG_ENDIAN_MMIO |
95 | bool | 95 | bool |
96 | depends on USB_EHCI_HCD && (PPC_CELLEB || PPC_PS3 || 440EPX || ARCH_IXP4XX || \ | 96 | depends on USB_EHCI_HCD && (PPC_CELLEB || PPC_PS3 || 440EPX || \ |
97 | XPS_USB_HCD_XILINX || PPC_MPC512x) | 97 | ARCH_IXP4XX || XPS_USB_HCD_XILINX || \ |
98 | PPC_MPC512x || CPU_CAVIUM_OCTEON) | ||
98 | default y | 99 | default y |
99 | 100 | ||
100 | config USB_EHCI_BIG_ENDIAN_DESC | 101 | config USB_EHCI_BIG_ENDIAN_DESC |
@@ -434,3 +435,28 @@ config USB_IMX21_HCD | |||
434 | To compile this driver as a module, choose M here: the | 435 | To compile this driver as a module, choose M here: the |
435 | module will be called "imx21-hcd". | 436 | module will be called "imx21-hcd". |
436 | 437 | ||
438 | config USB_OCTEON_EHCI | ||
439 | bool "Octeon on-chip EHCI support" | ||
440 | depends on USB && USB_EHCI_HCD && CPU_CAVIUM_OCTEON | ||
441 | default n | ||
442 | select USB_EHCI_BIG_ENDIAN_MMIO | ||
443 | help | ||
444 | Enable support for the Octeon II SOC's on-chip EHCI | ||
445 | controller. It is needed for high-speed (480Mbit/sec) | ||
446 | USB 2.0 device support. All CN6XXX based chips with USB are | ||
447 | supported. | ||
448 | |||
449 | config USB_OCTEON_OHCI | ||
450 | bool "Octeon on-chip OHCI support" | ||
451 | depends on USB && USB_OHCI_HCD && CPU_CAVIUM_OCTEON | ||
452 | default USB_OCTEON_EHCI | ||
453 | select USB_OHCI_BIG_ENDIAN_MMIO | ||
454 | select USB_OHCI_LITTLE_ENDIAN | ||
455 | help | ||
456 | Enable support for the Octeon II SOC's on-chip OHCI | ||
457 | controller. It is needed for low-speed USB 1.0 device | ||
458 | support. All CN6XXX based chips with USB are supported. | ||
459 | |||
460 | config USB_OCTEON2_COMMON | ||
461 | bool | ||
462 | default y if USB_OCTEON_EHCI || USB_OCTEON_OHCI | ||