[ARM] ohci-pxa27x: introduce pxa27x_clear_otgph()

Direct access to pxa27x specific register PSSR in a generic ohci driver
is no good, introduce pxa27x_clear_otgph() and move the implementation
into processor specific code.

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Eric Miao 2008-10-04 12:45:39 +08:00 committed by Russell King
parent 84bab7393b
commit 0cb0b0d3c6
2 changed files with 14 additions and 4 deletions

View File

@ -34,6 +34,13 @@
#include "devices.h"
#include "clock.h"
void pxa27x_clear_otgph(void)
{
if (cpu_is_pxa27x() && (PSSR & PSSR_OTGPH))
PSSR |= PSSR_OTGPH;
}
EXPORT_SYMBOL(pxa27x_clear_otgph);
/* Crystal clock: 13MHz */
#define BASE_CLK 13000000

View File

@ -25,7 +25,6 @@
#include <linux/clk.h>
#include <mach/hardware.h>
#include <mach/pxa2xx-regs.h> /* FIXME: for PSSR */
#include <mach/ohci.h>
/*
@ -182,6 +181,12 @@ static inline void pxa27x_setup_hc(struct pxaohci_platform_data *inf)
UHCRHDA = uhcrhda;
}
#ifdef CONFIG_CPU_PXA27x
extern void pxa27x_clear_otgph(void);
#else
#define pxa27x_clear_otgph() do {} while (0)
#endif
static int pxa27x_start_hc(struct device *dev)
{
int retval = 0;
@ -212,9 +217,7 @@ static int pxa27x_start_hc(struct device *dev)
UHCHIE = (UHCHIE_UPRIE | UHCHIE_RWIE);
/* Clear any OTG Pin Hold */
if (cpu_is_pxa27x() && (PSSR & PSSR_OTGPH))
PSSR |= PSSR_OTGPH;
pxa27x_clear_otgph();
return 0;
}