usb/ehci: Add SysBus EHCI device for Exynos4210

It uses a different capsbase and opregbase than the Xilinx device.

Signed-off-by: Liming Wang <walimisdev@gmail.com>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Cc: Igor Mitsyanko <i.mitsyanko@samsung.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Andreas Färber 2012-12-16 04:49:45 +01:00 committed by Gerd Hoffmann
parent 4a4343671e
commit aee7499a59
2 changed files with 17 additions and 0 deletions

View File

@ -81,10 +81,25 @@ static const TypeInfo ehci_xlnx_type_info = {
.class_init = ehci_xlnx_class_init, .class_init = ehci_xlnx_class_init,
}; };
static void ehci_exynos4210_class_init(ObjectClass *oc, void *data)
{
SysBusEHCIClass *sec = SYS_BUS_EHCI_CLASS(oc);
sec->capsbase = 0x0;
sec->opregbase = 0x10;
}
static const TypeInfo ehci_exynos4210_type_info = {
.name = TYPE_EXYNOS4210_EHCI,
.parent = TYPE_SYS_BUS_EHCI,
.class_init = ehci_exynos4210_class_init,
};
static void ehci_sysbus_register_types(void) static void ehci_sysbus_register_types(void)
{ {
type_register_static(&ehci_type_info); type_register_static(&ehci_type_info);
type_register_static(&ehci_xlnx_type_info); type_register_static(&ehci_xlnx_type_info);
type_register_static(&ehci_exynos4210_type_info);
} }
type_init(ehci_sysbus_register_types) type_init(ehci_sysbus_register_types)

View File

@ -337,6 +337,8 @@ typedef struct EHCIPCIState {
#define TYPE_SYS_BUS_EHCI "sysbus-ehci-usb" #define TYPE_SYS_BUS_EHCI "sysbus-ehci-usb"
#define TYPE_EXYNOS4210_EHCI "exynos4210-ehci-usb"
#define SYS_BUS_EHCI(obj) \ #define SYS_BUS_EHCI(obj) \
OBJECT_CHECK(EHCISysBusState, (obj), TYPE_SYS_BUS_EHCI) OBJECT_CHECK(EHCISysBusState, (obj), TYPE_SYS_BUS_EHCI)
#define SYS_BUS_EHCI_CLASS(class) \ #define SYS_BUS_EHCI_CLASS(class) \