Here goes V2 of the Alchemy USB rework.
Changes since V1:
- fixed a few mistakes in patch #1 and made it a bit smaller.
Patch overview:
#1 moves the fiddling with the various USB control bits out of the
host drivers into a separate file. The host drivers simply call
a function to enable/disable a USB block (OHCI/EHCI/UDC/OTG,..),
and the core file takes care of the details.
This file mainly exists for the Au1200 and Au1300 which have a
bunch of separate registers which control various aspects of the
USB subsystem. I don't want the USB host glues to know about
the implementation details of each chip variant.
#2 rewrites USB setup to detect chip variant at runtime and register
the appropriate platform devices.
#3 does some more header cleanups.
Run and PM tested on DB1200.
Manuel Lauss (3):
MIPS: Alchemy: abstract USB block control register access
MIPS: Alchemy: rewrite USB platform setup.
MIPS: Alchemy: more base address cleanup
arch/mips/alchemy/common/Makefile | 2 +-
arch/mips/alchemy/common/dma.c | 12 +-
arch/mips/alchemy/common/platform.c | 195 ++++++--------
arch/mips/alchemy/common/power.c | 42 ---
arch/mips/alchemy/common/usb.c | 331 ++++++++++++++++++++++++
arch/mips/alchemy/devboards/db1200/platform.c | 52 ++--
arch/mips/alchemy/devboards/db1x00/platform.c | 40 ++--
arch/mips/alchemy/devboards/pb1100/platform.c | 20 +-
arch/mips/alchemy/devboards/pb1200/platform.c | 42 ++--
arch/mips/alchemy/devboards/pb1500/platform.c | 22 +-
arch/mips/alchemy/devboards/pb1550/platform.c | 40 ++--
arch/mips/alchemy/xxs1500/platform.c | 12 +-
arch/mips/include/asm/mach-au1x00/au1000.h | 242 +++--------------
arch/mips/include/asm/mach-au1x00/au1xxx_psc.h | 26 --
arch/mips/include/asm/mach-db1x00/db1x00.h | 8 +-
arch/mips/include/asm/mach-pb1x00/pb1200.h | 8 +-
arch/mips/include/asm/mach-pb1x00/pb1550.h | 8 +-
drivers/usb/host/ehci-au1xxx.c | 77 +-----
drivers/usb/host/ohci-au1xxx.c | 110 +-------
19 files changed, 597 insertions(+), 692 deletions(-)
create mode 100644 arch/mips/alchemy/common/usb.c
--
1.7.5.3
|