From patchwork Sat Dec 29 10:00:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongbo Zhang X-Patchwork-Id: 154613 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp8914967ljp; Sat, 29 Dec 2018 02:09:14 -0800 (PST) X-Google-Smtp-Source: ALg8bN4DGdf/y56oDaqJC0Z2AcjI3snbAy67KgyS32k9ihLa+4uzo7rydtK5ldNN7k0EhtKXGgrH X-Received: by 2002:a37:7a87:: with SMTP id v129mr29263743qkc.324.1546078154862; Sat, 29 Dec 2018 02:09:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546078154; cv=none; d=google.com; s=arc-20160816; b=BX3JdBoJ6/YiHJjOzOr7KxTnv4uhdn61BmaRuZuhI7F//yqaMNnkA6loSTcx8Sz/8s IdCFJEafgeJfk6Mjgmb8ILa+3XMj2UVNhM8OXnxSdv3mLGTqHLki/5QpDWs3tT/h3Cm6 aRVzfVrchxLf/iTZxtuYdpBm0i9xYbBWNoqg1hD09L2nyix9oF+qWUMi29K9V0/c7SZM mKXIJVImwbcDeBGSNeqKKLovthBAxikRjO6qf2EbD3TQYhlNbqgvyOtpHXLds4crjONH FK/fa1x02H2APJdb6mimrbLKt1SasEWB0BkE4GHQCy+/v0L3ETZxoNrsuJ/SwznNkPq2 mLhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:message-id:date:to:from :dkim-signature; bh=iiVwQIaLh3CIu5Hbr1syrjTr9GcoyHfp2y8oNz2ui24=; b=YhUcAatUgz5v7XLukeHWVV/lguRLNnfoATi57QGAfjBUE0vF4xsFjvD7cpnezHSDyT UPTeKlMW1pjMipYShqYNXHldWIk0WEbVpvMWC2ewgu0Sl+jKSHXUA95NsOf5f3U6q0n7 xcK2zJbZhMsOF42HerDdY96hIBXCbNrRvlv0CXGYA0i7ZC4akAfoYGXDwKSdHBhmE4ie 1iUI9vhldYMnlghb2lGDuQTAgTQSSGEwN6ME7bYoX/glEVThpUnEIlrVYmLjCqRMb6ru RirV90UePsNwqa9lyD3x2G+f6S5bgI7smiCd20CzG4BYeporQyd3z60VSI+Y9rrKWAF+ JUrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=VfFCxeMM; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [208.118.235.17]) by mx.google.com with ESMTPS id p11si5543336qtn.50.2018.12.29.02.09.14 for (version=TLS1 cipher=AES128-SHA bits=128/128); Sat, 29 Dec 2018 02:09:14 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=VfFCxeMM; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([127.0.0.1]:35591 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gdBYQ-0001Tm-6n for patch@linaro.org; Sat, 29 Dec 2018 05:09:14 -0500 Received: from eggs.gnu.org ([208.118.235.92]:35863) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gdBY1-0001Le-7W for qemu-devel@nongnu.org; Sat, 29 Dec 2018 05:08:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gdBQd-0006PV-JL for qemu-devel@nongnu.org; Sat, 29 Dec 2018 05:01:17 -0500 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]:40196) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gdBQc-0006Mx-VI for qemu-devel@nongnu.org; Sat, 29 Dec 2018 05:01:11 -0500 Received: by mail-pg1-x543.google.com with SMTP id z10so10994067pgp.7 for ; Sat, 29 Dec 2018 02:01:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=iiVwQIaLh3CIu5Hbr1syrjTr9GcoyHfp2y8oNz2ui24=; b=VfFCxeMMteZpAGbm0Ko/4wXciL7w73EYNuu1jEGcgBhN0VetWYKAYkxwrwiMcKuPLW 2h+U82y1Wp5Dl4NdWAv4GZNOC7AoHUF9H/gq8lWIdjn55Jf4X7ntExEkd9YMgywhOXv7 KPIF0OtbIuNKuQpBzP8Z0IUBttOpfqmMUUtIg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=iiVwQIaLh3CIu5Hbr1syrjTr9GcoyHfp2y8oNz2ui24=; b=XudYp3qOVbvUlubHUzBF6akbENHHzBuu8MMYEfP/x6ygkSX1TqCtvfrt9L8GOBhSHw GUdyhqlHZ8O3IF//8sDuIUh2blcZOcY2TPUW2xyyOqYTTpMH4gjfKdCVTk0BVhSbbZE0 WwOO53p+NNuIOVgRxkEQ55u67TKQz6lte7n5rIt0DKnQrWkDWRTtjO+s56IupmpOBlDc 3ORMgjXAjoxyoUq2PQgbtWEmUfpK1yphjtmQMshPW5O3L7UVVun+oRY3M03+wyDhBxz/ W2VX8uB96FmXpHJW6NqvTQ5MIM095eJzqs7kCqwPWZtcvJsybI40OT9v5VS2PwFPg+7X NmHw== X-Gm-Message-State: AA+aEWaI0Sw1WXNsdlnzMui+P1xK2GyZdUnM5lalg8wC2Kip8nzXRSQ0 TVFVPUY2M1zqzY/jPhW7GBJlRw== X-Received: by 2002:a62:1e45:: with SMTP id e66mr30917104pfe.152.1546077669782; Sat, 29 Dec 2018 02:01:09 -0800 (PST) Received: from localhost.localdomain ([104.237.86.92]) by smtp.gmail.com with ESMTPSA id b10sm65123401pfj.183.2018.12.29.02.01.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 29 Dec 2018 02:01:08 -0800 (PST) From: Hongbo Zhang To: kraxel@redhat.com, qemu-devel@nongnu.org Date: Sat, 29 Dec 2018 18:00:57 +0800 Message-Id: <1546077657-22637-1-git-send-email-hongbo.zhang@linaro.org> X-Mailer: git-send-email 2.7.4 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::543 Subject: [Qemu-devel] [PATCH] hw/usb: Add generic sys-bus EHCI controller X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hongbo Zhang , peter.maydell@linaro.org, radoslaw.biernacki@linaro.org, leif.lindholm@linaro.org, ard.biesheuvel@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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: Hongbo Zhang --- hw/usb/hcd-ehci-sysbus.c | 17 +++++++++++++++++ hw/usb/hcd-ehci.h | 1 + 2 files changed, 18 insertions(+) -- 2.7.4 diff --git a/hw/usb/hcd-ehci-sysbus.c b/hw/usb/hcd-ehci-sysbus.c index 3b83beb..331faf8 100644 --- a/hw/usb/hcd-ehci-sysbus.c +++ b/hw/usb/hcd-ehci-sysbus.c @@ -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); diff --git a/hw/usb/hcd-ehci.h b/hw/usb/hcd-ehci.h index 0bc364b..cd30b5d 100644 --- a/hw/usb/hcd-ehci.h +++ b/hw/usb/hcd-ehci.h @@ -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"