Commit 114529f7 authored by Hongbo Zhang's avatar Hongbo Zhang Committed by Gerd Hoffmann
Browse files

hw/usb: Add generic sys-bus EHCI controller



This patch introduces a new system bus generic EHCI controller.
For the system bus EHCI controller, we've already had "xlnx",
"exynos4210", "tegra2", "ppc4xx" and "fusbh200", they are specific and
only suitable for their own platforms, platforms such as an Arm server,
may need a generic system bus EHCI controller, this patch creates it,
and the kernel driver ehci_platform.c works well on it.

Signed-off-by: default avatarHongbo Zhang <hongbo.zhang@linaro.org>
Message-id: 1546077657-22637-1-git-send-email-hongbo.zhang@linaro.org
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 8e3759ef
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -94,6 +94,22 @@ static const TypeInfo ehci_type_info = {
    .class_size    = sizeof(SysBusEHCIClass),
};

static void ehci_platform_class_init(ObjectClass *oc, void *data)
{
    SysBusEHCIClass *sec = SYS_BUS_EHCI_CLASS(oc);
    DeviceClass *dc = DEVICE_CLASS(oc);

    sec->capsbase = 0x0;
    sec->opregbase = 0x20;
    set_bit(DEVICE_CATEGORY_USB, dc->categories);
}

static const TypeInfo ehci_platform_type_info = {
    .name          = TYPE_PLATFORM_EHCI,
    .parent        = TYPE_SYS_BUS_EHCI,
    .class_init    = ehci_platform_class_init,
};

static void ehci_xlnx_class_init(ObjectClass *oc, void *data)
{
    SysBusEHCIClass *sec = SYS_BUS_EHCI_CLASS(oc);
@@ -245,6 +261,7 @@ static const TypeInfo ehci_fusbh200_type_info = {
static void ehci_sysbus_register_types(void)
{
    type_register_static(&ehci_type_info);
    type_register_static(&ehci_platform_type_info);
    type_register_static(&ehci_xlnx_type_info);
    type_register_static(&ehci_exynos4210_type_info);
    type_register_static(&ehci_tegra2_type_info);
+1 −0
Original line number Diff line number Diff line
@@ -342,6 +342,7 @@ typedef struct EHCIPCIState {


#define TYPE_SYS_BUS_EHCI "sysbus-ehci-usb"
#define TYPE_PLATFORM_EHCI "platform-ehci-usb"
#define TYPE_EXYNOS4210_EHCI "exynos4210-ehci-usb"
#define TYPE_TEGRA2_EHCI "tegra2-ehci-usb"
#define TYPE_PPC4xx_EHCI "ppc4xx-ehci-usb"