diff options
author | Richard Purdie <rpurdie@rpsys.net> | 2006-01-05 15:44:52 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-01-05 15:44:52 -0500 |
commit | 3125c68d70e3433c21234431a9df9e7336efa29f (patch) | |
tree | d4602c154d66b301982a9c2ae8c2808dc7cd9a72 /arch/arm/mach-pxa | |
parent | 4c70b926c91ba9c1ce3dc92d418f8e4670c8f16d (diff) |
[ARM] 3227/1: Spitz: Add pxa27x OHCI platform specific code
Patch from Richard Purdie
Add platform code to enable the ohci device on the pxa27x based
Sharp Zaurus Cxx00 devices.
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-pxa')
-rw-r--r-- | arch/arm/mach-pxa/spitz.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 2df1b56615b1..5d34abc64af7 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <asm/arch/irq.h> | 36 | #include <asm/arch/irq.h> |
37 | #include <asm/arch/irda.h> | 37 | #include <asm/arch/irda.h> |
38 | #include <asm/arch/mmc.h> | 38 | #include <asm/arch/mmc.h> |
39 | #include <asm/arch/ohci.h> | ||
39 | #include <asm/arch/udc.h> | 40 | #include <asm/arch/udc.h> |
40 | #include <asm/arch/pxafb.h> | 41 | #include <asm/arch/pxafb.h> |
41 | #include <asm/arch/akita.h> | 42 | #include <asm/arch/akita.h> |
@@ -335,6 +336,35 @@ static struct pxamci_platform_data spitz_mci_platform_data = { | |||
335 | 336 | ||
336 | 337 | ||
337 | /* | 338 | /* |
339 | * USB Host (OHCI) | ||
340 | */ | ||
341 | static int spitz_ohci_init(struct device *dev) | ||
342 | { | ||
343 | /* Only Port 2 is connected */ | ||
344 | pxa_gpio_mode(SPITZ_GPIO_USB_CONNECT | GPIO_IN); | ||
345 | pxa_gpio_mode(SPITZ_GPIO_USB_HOST | GPIO_OUT); | ||
346 | pxa_gpio_mode(SPITZ_GPIO_USB_DEVICE | GPIO_IN); | ||
347 | |||
348 | /* Setup USB Port 2 Output Control Register */ | ||
349 | UP2OCR = UP2OCR_HXS | UP2OCR_HXOE | UP2OCR_DPPDE | UP2OCR_DMPDE; | ||
350 | |||
351 | GPSR(SPITZ_GPIO_USB_HOST) = GPIO_bit(SPITZ_GPIO_USB_HOST); | ||
352 | |||
353 | UHCHR = (UHCHR) & | ||
354 | ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSEP3 | UHCHR_SSE); | ||
355 | |||
356 | UHCRHDA |= UHCRHDA_NOCP; | ||
357 | |||
358 | return 0; | ||
359 | } | ||
360 | |||
361 | static struct pxaohci_platform_data spitz_ohci_platform_data = { | ||
362 | .port_mode = PMM_NPS_MODE, | ||
363 | .init = spitz_ohci_init, | ||
364 | }; | ||
365 | |||
366 | |||
367 | /* | ||
338 | * Irda | 368 | * Irda |
339 | */ | 369 | */ |
340 | static void spitz_irda_transceiver_mode(struct device *dev, int mode) | 370 | static void spitz_irda_transceiver_mode(struct device *dev, int mode) |
@@ -411,6 +441,7 @@ static void __init common_init(void) | |||
411 | 441 | ||
412 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 442 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
413 | pxa_set_mci_info(&spitz_mci_platform_data); | 443 | pxa_set_mci_info(&spitz_mci_platform_data); |
444 | pxa_set_ohci_info(&spitz_ohci_platform_data); | ||
414 | pxa_set_ficp_info(&spitz_ficp_platform_data); | 445 | pxa_set_ficp_info(&spitz_ficp_platform_data); |
415 | set_pxa_fb_parent(&spitzssp_device.dev); | 446 | set_pxa_fb_parent(&spitzssp_device.dev); |
416 | set_pxa_fb_info(&spitz_pxafb_info); | 447 | set_pxa_fb_info(&spitz_pxafb_info); |