diff options
author | Anand Gadiyar <gadiyar@ti.com> | 2010-05-10 12:26:12 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-20 16:21:44 -0400 |
commit | 968b448b22f5a42689cc55648510834010d42379 (patch) | |
tree | a3ca87f9967959591a9410b9cbebbf395dd80291 /drivers/usb | |
parent | 88ed0c97c9e9d48dddeca98856645f6ee5c56489 (diff) |
USB: ohci: Add Kconfig entries for ohci-omap3
On OMAP systems, we have two different OHCI controllers. The legacy
one is present in OMAP1/2 chips, and the newer one comes bundled as
a companion to the EHCI controller on OMAP3 and newer chips.
We may have multi-omap configurations where OMAP2 and OMAP3
support may be enabled in the same kernel, and need a mechanism
to keep both drivers around.
This patch adds a Kconfig entry for each of these drivers.
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/host/Kconfig | 15 | ||||
-rw-r--r-- | drivers/usb/host/ohci-hcd.c | 31 |
2 files changed, 44 insertions, 2 deletions
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index 8d3df0397de3..f865be2276d4 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig | |||
@@ -207,6 +207,21 @@ config USB_OHCI_HCD | |||
207 | To compile this driver as a module, choose M here: the | 207 | To compile this driver as a module, choose M here: the |
208 | module will be called ohci-hcd. | 208 | module will be called ohci-hcd. |
209 | 209 | ||
210 | config USB_OHCI_HCD_OMAP1 | ||
211 | bool "OHCI support for OMAP1/2 chips" | ||
212 | depends on USB_OHCI_HCD && (ARCH_OMAP1 || ARCH_OMAP2) | ||
213 | default y | ||
214 | ---help--- | ||
215 | Enables support for the OHCI controller on OMAP1/2 chips. | ||
216 | |||
217 | config USB_OHCI_HCD_OMAP3 | ||
218 | bool "OHCI support for OMAP3 and later chips" | ||
219 | depends on USB_OHCI_HCD && (ARCH_OMAP3 || ARCH_OMAP4) | ||
220 | default y | ||
221 | ---help--- | ||
222 | Enables support for the on-chip OHCI controller on | ||
223 | OMAP3 and later chips. | ||
224 | |||
210 | config USB_OHCI_HCD_PPC_SOC | 225 | config USB_OHCI_HCD_PPC_SOC |
211 | bool "OHCI support for on-chip PPC USB controller" | 226 | bool "OHCI support for on-chip PPC USB controller" |
212 | depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx) | 227 | depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx) |
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index d15d2478493e..fc576557d8a5 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c | |||
@@ -1006,9 +1006,14 @@ MODULE_LICENSE ("GPL"); | |||
1006 | #define PLATFORM_DRIVER ohci_hcd_s3c2410_driver | 1006 | #define PLATFORM_DRIVER ohci_hcd_s3c2410_driver |
1007 | #endif | 1007 | #endif |
1008 | 1008 | ||
1009 | #ifdef CONFIG_ARCH_OMAP | 1009 | #ifdef CONFIG_USB_OHCI_HCD_OMAP1 |
1010 | #include "ohci-omap.c" | 1010 | #include "ohci-omap.c" |
1011 | #define PLATFORM_DRIVER ohci_hcd_omap_driver | 1011 | #define OMAP1_PLATFORM_DRIVER ohci_hcd_omap_driver |
1012 | #endif | ||
1013 | |||
1014 | #ifdef CONFIG_USB_OHCI_HCD_OMAP3 | ||
1015 | #include "ohci-omap3.c" | ||
1016 | #define OMAP3_PLATFORM_DRIVER ohci_hcd_omap3_driver | ||
1012 | #endif | 1017 | #endif |
1013 | 1018 | ||
1014 | #ifdef CONFIG_ARCH_LH7A404 | 1019 | #ifdef CONFIG_ARCH_LH7A404 |
@@ -1092,6 +1097,8 @@ MODULE_LICENSE ("GPL"); | |||
1092 | 1097 | ||
1093 | #if !defined(PCI_DRIVER) && \ | 1098 | #if !defined(PCI_DRIVER) && \ |
1094 | !defined(PLATFORM_DRIVER) && \ | 1099 | !defined(PLATFORM_DRIVER) && \ |
1100 | !defined(OMAP1_PLATFORM_DRIVER) && \ | ||
1101 | !defined(OMAP3_PLATFORM_DRIVER) && \ | ||
1095 | !defined(OF_PLATFORM_DRIVER) && \ | 1102 | !defined(OF_PLATFORM_DRIVER) && \ |
1096 | !defined(SA1111_DRIVER) && \ | 1103 | !defined(SA1111_DRIVER) && \ |
1097 | !defined(PS3_SYSTEM_BUS_DRIVER) && \ | 1104 | !defined(PS3_SYSTEM_BUS_DRIVER) && \ |
@@ -1133,6 +1140,18 @@ static int __init ohci_hcd_mod_init(void) | |||
1133 | goto error_platform; | 1140 | goto error_platform; |
1134 | #endif | 1141 | #endif |
1135 | 1142 | ||
1143 | #ifdef OMAP1_PLATFORM_DRIVER | ||
1144 | retval = platform_driver_register(&OMAP1_PLATFORM_DRIVER); | ||
1145 | if (retval < 0) | ||
1146 | goto error_omap1_platform; | ||
1147 | #endif | ||
1148 | |||
1149 | #ifdef OMAP3_PLATFORM_DRIVER | ||
1150 | retval = platform_driver_register(&OMAP3_PLATFORM_DRIVER); | ||
1151 | if (retval < 0) | ||
1152 | goto error_omap3_platform; | ||
1153 | #endif | ||
1154 | |||
1136 | #ifdef OF_PLATFORM_DRIVER | 1155 | #ifdef OF_PLATFORM_DRIVER |
1137 | retval = of_register_platform_driver(&OF_PLATFORM_DRIVER); | 1156 | retval = of_register_platform_driver(&OF_PLATFORM_DRIVER); |
1138 | if (retval < 0) | 1157 | if (retval < 0) |
@@ -1200,6 +1219,14 @@ static int __init ohci_hcd_mod_init(void) | |||
1200 | platform_driver_unregister(&PLATFORM_DRIVER); | 1219 | platform_driver_unregister(&PLATFORM_DRIVER); |
1201 | error_platform: | 1220 | error_platform: |
1202 | #endif | 1221 | #endif |
1222 | #ifdef OMAP1_PLATFORM_DRIVER | ||
1223 | platform_driver_unregister(&OMAP1_PLATFORM_DRIVER); | ||
1224 | error_omap1_platform: | ||
1225 | #endif | ||
1226 | #ifdef OMAP3_PLATFORM_DRIVER | ||
1227 | platform_driver_unregister(&OMAP3_PLATFORM_DRIVER); | ||
1228 | error_omap3_platform: | ||
1229 | #endif | ||
1203 | #ifdef PS3_SYSTEM_BUS_DRIVER | 1230 | #ifdef PS3_SYSTEM_BUS_DRIVER |
1204 | ps3_ohci_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); | 1231 | ps3_ohci_driver_unregister(&PS3_SYSTEM_BUS_DRIVER); |
1205 | error_ps3: | 1232 | error_ps3: |