From patchwork Thu May 7 17:34:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Cooper X-Patchwork-Id: 11534585 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B7E5A1392 for ; Thu, 7 May 2020 17:34:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9F7DC21473 for ; Thu, 7 May 2020 17:34:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hMObaJ9H" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726926AbgEGRee (ORCPT ); Thu, 7 May 2020 13:34:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49934 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726308AbgEGRed (ORCPT ); Thu, 7 May 2020 13:34:33 -0400 Received: from mail-pg1-x541.google.com (mail-pg1-x541.google.com [IPv6:2607:f8b0:4864:20::541]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 63BA2C05BD43; Thu, 7 May 2020 10:34:32 -0700 (PDT) Received: by mail-pg1-x541.google.com with SMTP id l25so3116560pgc.5; Thu, 07 May 2020 10:34:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=dq0TqQky1nAFrd/UmJjerH5DUbLlLnhiDz64ca0nS+c=; b=hMObaJ9HVlxG4n50o2vuRSuTVFtvgZLe+ePsZg7M8zjQkrYrF+8G8f/nYRGdUE9FTF dxwSJBgOTxtx6eUlgXDFnsYLjyDMxu7miTpRn+Bv1wUIenabI2pBkbuRPWXXrSs4+rgy wxVQVr5yWk6hdXQvB8AnN+KSskiLZv6jYBC3/S/TwWeFxEeeqo+KB/ao2w9GtrXy4wgM YGaPADwdAy7TEYuAJ/L8nVY1yuOysSUPKdYItmwWFCs1b+mlgAGdCM36BA8xoBRhN9QM OOBlXg346uqzRvvs+sRFhfk8FhDsz33ZLuU+8N7R9YwViHN+EADi8Uwo4WRv5mwmzW7l 5bjA== 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:in-reply-to :references; bh=dq0TqQky1nAFrd/UmJjerH5DUbLlLnhiDz64ca0nS+c=; b=LfQWD6WiNz/wTUD28fWjoCClUKd5xnIcq8V78pYAavweuN6rq7I4wWW3cFzZVCnKxk BuWqXGv5cxrY7SMCIWq/SZE5BhvwZboFN20V9oOlgqRDw2D1PUTyJnVhuARkLX7AVYdR fqHXyABzH7xUHlwqicsFb+1Qcn/8+y5uXORFroV6SzdT3gc6J32/H0RQjALRCH2xoZd2 dqAXMHJALiaSw5pQtf+QC4EPRHxxL0E2n/xvdZCakuTo6abgfkV60A0/b4uaa1/73Jg1 xB9JcQeVqQrRbOODrtfvJ4fQHT8zWik1Yobc9sQcIdSpEGPgQfbkmNCWRDd+eF+t2jEY Klxw== X-Gm-Message-State: AGi0Pua3IKl6WMPjWrdUHFM98AngX6geTMXHyCPc3LTXr0pxYt1irobO EdXcuTaHXXRjgkWL8sczHY/T+cKuUpk= X-Google-Smtp-Source: APiQypIV3Zm1S08mHH3bE+Xr9aHuLn6KCNX2TslhsTuRJ25Q+UiXwN6CeT1GXiSTkb1EwjNl93DdTw== X-Received: by 2002:a63:b51b:: with SMTP id y27mr11346880pge.400.1588872871533; Thu, 07 May 2020 10:34:31 -0700 (PDT) Received: from stbsrv-and-01.and.broadcom.net ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id y14sm5368802pff.205.2020.05.07.10.34.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 10:34:31 -0700 (PDT) From: Al Cooper To: linux-kernel@vger.kernel.org Cc: Al Cooper , Alan Stern , Andy Shevchenko , bcm-kernel-feedback-list@broadcom.com, devicetree@vger.kernel.org, Greg Kroah-Hartman , Krzysztof Kozlowski , linux-usb@vger.kernel.org, Mathias Nyman , Rob Herring , Yoshihiro Shimoda , Andy Shevchenko Subject: [PATCH v7 1/5] usb: xhci: Change the XHCI link order in the Makefile Date: Thu, 7 May 2020 13:34:04 -0400 Message-Id: <20200507173408.20754-2-alcooperx@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507173408.20754-1-alcooperx@gmail.com> References: <20200507173408.20754-1-alcooperx@gmail.com> Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Some BRCMSTB USB chips have an XHCI, EHCI and OHCI controller on the same port where XHCI handles 3.0 devices, EHCI handles 2.0 devices and OHCI handles <2.0 devices. Currently the Makefile has XHCI linking at the bottom which will result in the XHIC driver initalizing after the EHCI and OHCI drivers and any installed 3.0 device will be seen as a 2.0 device. Moving the XHCI linking above the EHCI and OHCI linking fixes the issue. Signed-off-by: Al Cooper --- drivers/usb/host/Makefile | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile index b191361257cc..a7f0b8ff7179 100644 --- a/drivers/usb/host/Makefile +++ b/drivers/usb/host/Makefile @@ -37,6 +37,16 @@ endif obj-$(CONFIG_USB_PCI) += pci-quirks.o +# NOTE: BRCMSTB systems require that xhci driver be linked before the +# ehci/ohci drivers because they share a port and need the XHCI driver +# to come up first to properly enumerate 3.0 devices. +obj-$(CONFIG_USB_XHCI_HCD) += xhci-hcd.o +obj-$(CONFIG_USB_XHCI_PCI) += xhci-pci.o +obj-$(CONFIG_USB_XHCI_PLATFORM) += xhci-plat-hcd.o +obj-$(CONFIG_USB_XHCI_HISTB) += xhci-histb.o +obj-$(CONFIG_USB_XHCI_MTK) += xhci-mtk.o +obj-$(CONFIG_USB_XHCI_TEGRA) += xhci-tegra.o + obj-$(CONFIG_USB_EHCI_HCD) += ehci-hcd.o obj-$(CONFIG_USB_EHCI_PCI) += ehci-pci.o obj-$(CONFIG_USB_EHCI_HCD_PLATFORM) += ehci-platform.o @@ -69,12 +79,6 @@ obj-$(CONFIG_USB_OHCI_HCD_DAVINCI) += ohci-da8xx.o obj-$(CONFIG_USB_UHCI_HCD) += uhci-hcd.o obj-$(CONFIG_USB_FHCI_HCD) += fhci.o -obj-$(CONFIG_USB_XHCI_HCD) += xhci-hcd.o -obj-$(CONFIG_USB_XHCI_PCI) += xhci-pci.o -obj-$(CONFIG_USB_XHCI_PLATFORM) += xhci-plat-hcd.o -obj-$(CONFIG_USB_XHCI_HISTB) += xhci-histb.o -obj-$(CONFIG_USB_XHCI_MTK) += xhci-mtk.o -obj-$(CONFIG_USB_XHCI_TEGRA) += xhci-tegra.o obj-$(CONFIG_USB_SL811_HCD) += sl811-hcd.o obj-$(CONFIG_USB_SL811_CS) += sl811_cs.o obj-$(CONFIG_USB_U132_HCD) += u132-hcd.o From patchwork Thu May 7 17:34:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Cooper X-Patchwork-Id: 11534583 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A24431392 for ; Thu, 7 May 2020 17:34:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8BCFB221F7 for ; Thu, 7 May 2020 17:34:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="odddMpjL" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726308AbgEGRef (ORCPT ); Thu, 7 May 2020 13:34:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49940 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727092AbgEGRee (ORCPT ); Thu, 7 May 2020 13:34:34 -0400 Received: from mail-pg1-x542.google.com (mail-pg1-x542.google.com [IPv6:2607:f8b0:4864:20::542]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C88FC05BD43; Thu, 7 May 2020 10:34:34 -0700 (PDT) Received: by mail-pg1-x542.google.com with SMTP id s18so2793330pgl.12; Thu, 07 May 2020 10:34:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=RS2ptxmKb3ffwIAhZDMnM3dCIs8tmDEdZCAAPTqFzQ8=; b=odddMpjLL2dH2fC4tBa8E8pr7CPYFaiYVGu4lDrgU9SCEb6MlYEXlylyXly0z+fBQ5 k9yf1yXYjrXy7qHthqJUc54FgbdpOyb1rVynXSGY7oIFUzrQ0Yftde14FdoAqAw2LPX2 34xHE+g+JWobf5GhEk5a5WBeJHqygwWR0Fq3Dc53qO4oGltGJ2DuJ2vUKNGTsyXaF4+e yPgjcoWQp1pFQflaI/2O7RWpeEprT91myXBy48I279ew8UPJY57LW0heJjgmRS5ryuLp DSSTSeB1iRn2XA8lRjlbzFbwMI9DX4Zy6D/tv0EFI62sQCJp3RtqUDe1x7O9RTt8K/cW NEJw== 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:in-reply-to :references; bh=RS2ptxmKb3ffwIAhZDMnM3dCIs8tmDEdZCAAPTqFzQ8=; b=LG6Dd9zsXl6U8LaDJJQxiySvZ11d7c7C6RLhnhV1+1kDL0t282XestA937BnSsPy8T oj8+XFm+xTrg1eHh8XxcpHi9eGfNJ9faAXe3v4qZBIb3C+vBOe9+hJAogdAQqNqXioRQ 4iQbLrfJGskROOUBfEEfekv1l2dcY+fI1jj4XpcUNS3AXCY46NWTBHbIQvzLnel1I4Vp UBo6uMHYLBPfgPSg9GkMhEEcF9xx8nQGxBg41sZwPokoWAzaELj4Lc/KVKzL8N+aPOJ5 qa+vnBU/4WpwqfA580qY+tQl0jyYCyWgOCqq3i4rjlbxdBudlpixVLk0jI3QdMSV3+ch kdwQ== X-Gm-Message-State: AGi0PuZ6CzZmmAxMJL+edfNCrv0+tMgWBYx+pvauetoBYTAp3u8SIYCi rQJydTEhYarxAIR4X8aszZYno9jBSp0= X-Google-Smtp-Source: APiQypJ7VtkJExDL00fC4A0q7KThBRLb1QmGWQESRsAyRO8MPssMxkDyzZ5abrifclqiTjvvdD2M5A== X-Received: by 2002:a63:d013:: with SMTP id z19mr11807229pgf.202.1588872873572; Thu, 07 May 2020 10:34:33 -0700 (PDT) Received: from stbsrv-and-01.and.broadcom.net ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id y14sm5368802pff.205.2020.05.07.10.34.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 10:34:33 -0700 (PDT) From: Al Cooper To: linux-kernel@vger.kernel.org Cc: Al Cooper , Alan Stern , Andy Shevchenko , bcm-kernel-feedback-list@broadcom.com, devicetree@vger.kernel.org, Greg Kroah-Hartman , Krzysztof Kozlowski , linux-usb@vger.kernel.org, Mathias Nyman , Rob Herring , Yoshihiro Shimoda , Andy Shevchenko Subject: [PATCH v7 2/5] dt-bindings: Add Broadcom STB USB support Date: Thu, 7 May 2020 13:34:05 -0400 Message-Id: <20200507173408.20754-3-alcooperx@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507173408.20754-1-alcooperx@gmail.com> References: <20200507173408.20754-1-alcooperx@gmail.com> Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Add DT bindings for Broadcom STB USB EHCI and XHCI drivers. NOTE: The OHCI driver is not included because it uses the generic platform driver. Signed-off-by: Al Cooper Reviewed-by: Rob Herring --- .../bindings/usb/brcm,bcm7445-ehci.yaml | 59 +++++++++++++++++++ .../devicetree/bindings/usb/usb-xhci.txt | 1 + 2 files changed, 60 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/brcm,bcm7445-ehci.yaml diff --git a/Documentation/devicetree/bindings/usb/brcm,bcm7445-ehci.yaml b/Documentation/devicetree/bindings/usb/brcm,bcm7445-ehci.yaml new file mode 100644 index 000000000000..2a9acf2b5a64 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/brcm,bcm7445-ehci.yaml @@ -0,0 +1,59 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/brcm,bcm7445-ehci.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Broadcom STB USB EHCI Controller Device Tree Bindings + +allOf: + - $ref: "usb-hcd.yaml" + +maintainers: + - Al Cooper + +properties: + compatible: + const: brcm,bcm7445-ehci + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + maxItems: 1 + description: Clock specifier for the EHCI clock + + clock-names: + const: sw_usb + + phys: + maxItems: 1 + + phy-names: + const: usbphy + +required: + - compatible + - reg + - interrupts + - phys + - clocks + +additionalProperties: false + +examples: + - | + usb@f0b00300 { + compatible = "brcm,bcm7445-ehci"; + reg = <0xf0b00300 0xa8>; + interrupts = <0x0 0x5a 0x0>; + phys = <&usbphy_0 0x0>; + phy-names = "usbphy"; + clocks = <&usb20>; + clock-names = "sw_usb"; + }; + +... diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt index dc025f126d71..23e89d798b1b 100644 --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt @@ -24,6 +24,7 @@ Required properties: device - "renesas,rcar-gen3-xhci" for a generic R-Car Gen3 or RZ/G2 compatible device + - "brcm,bcm7445-xhci" for Broadcom STB SoCs with XHCI - "xhci-platform" (deprecated) When compatible with the generic version, nodes must list the From patchwork Thu May 7 17:34:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Cooper X-Patchwork-Id: 11534581 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8BD5992A for ; Thu, 7 May 2020 17:34:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 735AB218AC for ; Thu, 7 May 2020 17:34:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TnDBo78s" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727904AbgEGReh (ORCPT ); Thu, 7 May 2020 13:34:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49948 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727092AbgEGReg (ORCPT ); Thu, 7 May 2020 13:34:36 -0400 Received: from mail-pf1-x444.google.com (mail-pf1-x444.google.com [IPv6:2607:f8b0:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 69469C05BD43; Thu, 7 May 2020 10:34:36 -0700 (PDT) Received: by mail-pf1-x444.google.com with SMTP id x15so3340641pfa.1; Thu, 07 May 2020 10:34:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=vkQbZ0OEnEU7UUbpzBp0+WjmUbWo04Z45g1QFzRKmTk=; b=TnDBo78s7cBpRgn0S6WIDv0o3/4IfEK/atnJ7lhpFO6YqwQX3Qj3ycYemb1ffpB+1M 1oewE6tp6k05WyVPVYLwIe+CcujRDixIiOBIEvgb/rwqkWdqrianZNnZaaAa0Fpoxjii PoQskKsTaaa+b1ylwhZM2axEcSW2RE8MUDLLxS6ROJ0lwGzBym1zqdboxzoTxjz+IoG3 1mL/l0aQxEmLaBZNXHm+YugZUhpwLaAbi4qZNVu6WHy1io/HIW3gbbi4/2/CRlMVsqqH WMVzSGaNhq2HhjuqI2f0wpqPxwerR2Pk5mvOF1b6CHG+zML3+Yl88VdSqv+RKZymxqzt OMrA== 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:in-reply-to :references; bh=vkQbZ0OEnEU7UUbpzBp0+WjmUbWo04Z45g1QFzRKmTk=; b=tut0o/YBUp/3WPr2QSNKUTA/0L8/eSRGwAvV659y7SInnDp7A2/fLEK5MEJV80TKx8 7bSt5A5GX7SJnfT5sedjzs1OC2hBobsotNDtlAihggtUYjLFd/yG20EhxxtBJ5q0XKOM G/sdy+0I4x+7UzUM+Mxg3djNlOrRcQm5OMEApueQIAZUBblphvvfky6wVSJPBuc/5S2u GDJp4S8YG3QDIYQETWxKBGU3M+4YS+YxzwAe+5LRTjnv1RdqWu0JEhdi9IUtaogdW3v5 Z3QNni5y2PfEYYwcijR363ukWCXiaxEu+8cnqn9b/UuExh3fj6eVJgBMYBgZywlwwPrY 01lA== X-Gm-Message-State: AGi0Pubqk6cqCbMj8Be0YM85CCYGFnujIwAzJlCuJMUQKKd44bsCbtR+ A6IcMnOr7MkOEYvddXT/otRAR+JpuBw= X-Google-Smtp-Source: APiQypK5gB+eyAQJWa7xfW3qOGMW4iu2Omc7fvzx//c3l34FZVfPMzDpiEiJAAq4seYbq9CJTwhTKA== X-Received: by 2002:a63:5b41:: with SMTP id l1mr12523262pgm.88.1588872875636; Thu, 07 May 2020 10:34:35 -0700 (PDT) Received: from stbsrv-and-01.and.broadcom.net ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id y14sm5368802pff.205.2020.05.07.10.34.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 10:34:35 -0700 (PDT) From: Al Cooper To: linux-kernel@vger.kernel.org Cc: Al Cooper , Alan Stern , Andy Shevchenko , bcm-kernel-feedback-list@broadcom.com, devicetree@vger.kernel.org, Greg Kroah-Hartman , Krzysztof Kozlowski , linux-usb@vger.kernel.org, Mathias Nyman , Rob Herring , Yoshihiro Shimoda , Andy Shevchenko Subject: [PATCH v7 3/5] usb: xhci: xhci-plat: Add support for Broadcom STB SoC's Date: Thu, 7 May 2020 13:34:06 -0400 Message-Id: <20200507173408.20754-4-alcooperx@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507173408.20754-1-alcooperx@gmail.com> References: <20200507173408.20754-1-alcooperx@gmail.com> Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Add support for Broadcom STB SoC's to the xhci platform driver Signed-off-by: Al Cooper Acked-by: Mathias Nyman --- drivers/usb/host/xhci-plat.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index 1d4f6f85f0fe..44406d0eb317 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -112,6 +112,10 @@ static const struct xhci_plat_priv xhci_plat_renesas_rcar_gen3 = { SET_XHCI_PLAT_PRIV_FOR_RCAR(XHCI_RCAR_FIRMWARE_NAME_V3) }; +static const struct xhci_plat_priv xhci_plat_brcm = { + .quirks = XHCI_RESET_ON_RESUME, +}; + static const struct of_device_id usb_xhci_of_match[] = { { .compatible = "generic-xhci", @@ -147,6 +151,12 @@ static const struct of_device_id usb_xhci_of_match[] = { }, { .compatible = "renesas,rcar-gen3-xhci", .data = &xhci_plat_renesas_rcar_gen3, + }, { + .compatible = "brcm,xhci-brcm-v2", + .data = &xhci_plat_brcm, + }, { + .compatible = "brcm,bcm7445-xhci", + .data = &xhci_plat_brcm, }, {}, }; From patchwork Thu May 7 17:34:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Cooper X-Patchwork-Id: 11534577 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 293ED92A for ; Thu, 7 May 2020 17:34:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 07D3B20735 for ; Thu, 7 May 2020 17:34:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XA4xTBXN" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727983AbgEGRej (ORCPT ); Thu, 7 May 2020 13:34:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49954 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727964AbgEGRei (ORCPT ); Thu, 7 May 2020 13:34:38 -0400 Received: from mail-pg1-x542.google.com (mail-pg1-x542.google.com [IPv6:2607:f8b0:4864:20::542]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1DCAC05BD43; Thu, 7 May 2020 10:34:38 -0700 (PDT) Received: by mail-pg1-x542.google.com with SMTP id l12so2791014pgr.10; Thu, 07 May 2020 10:34:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lj+obVZczf+z/H8ji2zuyatb0WZsuYNBmrSmKOdMlXc=; b=XA4xTBXNvDxWY3dJ3Gndalb+UOiL3Y9WKbR3JKIca0B14ZbB53lbs69b0tbpszuDT0 m7tbgdsJK4Lc+bcgP/hYrM786Wt+nmuHfWixxU7AfwHtrau0a5pDkHbAWQXnoNxw64Na Hk6DkxnJwjsVSf6b2UCxPAxucNritgt0Tq+9IBQ2A9CO0HMI8UziNnDeJqVFJfpxIz9f 408Hx3y3r4Ulm7eQZTP0160EDvH3k76uxn3c853IxWXP3iaCqyTuupqwHC00BhHH0R4j o2jeaSyJEQNbXEl7KUTdeEmwsRH6fN6W0l5b5fD5JHq9AKFpzXMOJhqGDEdqdCkfZbnr zm7A== 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:in-reply-to :references; bh=lj+obVZczf+z/H8ji2zuyatb0WZsuYNBmrSmKOdMlXc=; b=PtBIU74tzn/sXpTG0QJ4VMRx1bwi+ARtklpGaRg26ybo/aI+lPYdLwiRqjkx48GXUu /1yPk14BAeSSaPdcGxth0Qf3ElKOULBMb4+sjJ8XeaymDF68tVVbYcbKYptODf68NpQv MHtKlc0L3mRjq0iW9KADKlfk4vUOEq4yKzNAgCEG1fFnRkgQNj2wkFXp5TVmqNg1VN0y IGRU6M3GjSfVl42Vn489solRO2rEp9G+Rawxk7ST4ToEEh5ZTu+LH9c0laG0388eDdWk JT0oDxlDEn9YRVOFMSu+qpieUktLP8Ez2arEfL2PoRHzcvCoxwlsqHmmN6qNcVZPP14j IUsw== X-Gm-Message-State: AGi0PubI1DWehHqSe5BzIg5nsLoxAJkPq6Xf2eU/BmJ0ycbbXU7eKUNg u89IQAlqvKQpPz/CKaKPbzA1WD8xtp0= X-Google-Smtp-Source: APiQypK61p9vOQrwH/x6OX2G42/U1JPlCRbCBR+KFAgKPdPgNmUJGhoyiQbg1j0KyXCCidIcZYYnKw== X-Received: by 2002:a63:d709:: with SMTP id d9mr11766638pgg.82.1588872877808; Thu, 07 May 2020 10:34:37 -0700 (PDT) Received: from stbsrv-and-01.and.broadcom.net ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id y14sm5368802pff.205.2020.05.07.10.34.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 10:34:37 -0700 (PDT) From: Al Cooper To: linux-kernel@vger.kernel.org Cc: Al Cooper , Alan Stern , Andy Shevchenko , bcm-kernel-feedback-list@broadcom.com, devicetree@vger.kernel.org, Greg Kroah-Hartman , Krzysztof Kozlowski , linux-usb@vger.kernel.org, Mathias Nyman , Rob Herring , Yoshihiro Shimoda , Andy Shevchenko Subject: [PATCH v7 4/5] usb: ehci: Add new EHCI driver for Broadcom STB SoC's Date: Thu, 7 May 2020 13:34:07 -0400 Message-Id: <20200507173408.20754-5-alcooperx@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507173408.20754-1-alcooperx@gmail.com> References: <20200507173408.20754-1-alcooperx@gmail.com> Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Add a new EHCI driver for Broadcom STB SoC's. A new EHCI driver was created instead of adding support to the existing ehci platform driver because of the code required to workaround bugs in the EHCI controller. The primary workround is for a bug where the Core violates the SOF interval between the first two SOFs transmitted after resume. This only happens if the resume occurs near the end of a microframe. The fix is to intercept the echi-hcd request to complete RESUME and align it to the start of the next microframe. Signed-off-by: Al Cooper Reviewed-by: Andy Shevchenko --- drivers/usb/host/ehci-brcm.c | 292 +++++++++++++++++++++++++++++++++++ 1 file changed, 292 insertions(+) create mode 100644 drivers/usb/host/ehci-brcm.c diff --git a/drivers/usb/host/ehci-brcm.c b/drivers/usb/host/ehci-brcm.c new file mode 100644 index 000000000000..b62c3b2e6735 --- /dev/null +++ b/drivers/usb/host/ehci-brcm.c @@ -0,0 +1,292 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2020, Broadcom */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ehci.h" + +#define hcd_to_ehci_priv(h) ((struct brcm_priv *)hcd_to_ehci(h)->priv) + +struct brcm_priv { + struct clk *clk; +}; + +static const char brcm_hcd_name[] = "ehci-brcm"; + +static int (*org_hub_control)(struct usb_hcd *hcd, + u16 typeReq, u16 wValue, u16 wIndex, + char *buf, u16 wLength); + +/* + * ehci_brcm_wait_for_sof + * Wait for start of next microframe, then wait extra delay microseconds + */ +static inline void ehci_brcm_wait_for_sof(struct ehci_hcd *ehci, u32 delay) +{ + u32 frame_idx = ehci_readl(ehci, &ehci->regs->frame_index); + u32 val; + int res; + + /* Wait for next microframe (every 125 usecs) */ + res = readl_relaxed_poll_timeout(&ehci->regs->frame_index, val, + val != frame_idx, 1, 130); + if (res) + dev_err(ehci_to_hcd(ehci)->self.controller, + "Error waiting for SOF\n"); + udelay(delay); +} + +/* + * ehci_brcm_hub_control + * The EHCI controller has a bug where it can violate the SOF + * interval between the first two SOF's transmitted after resume + * if the resume occurs near the end of the microframe. This causees + * the controller to detect babble on the suspended port and + * will eventually cause the controller to reset the port. + * The fix is to Intercept the echi-hcd request to complete RESUME and + * align it to the start of the next microframe. + * See SWLINUX-1909 for more details + */ +static int ehci_brcm_hub_control( + struct usb_hcd *hcd, + u16 typeReq, + u16 wValue, + u16 wIndex, + char *buf, + u16 wLength) +{ + struct ehci_hcd *ehci = hcd_to_ehci(hcd); + int ports = HCS_N_PORTS(ehci->hcs_params); + u32 __iomem *status_reg = &ehci->regs->port_status[ + (wIndex & 0xff) - 1]; + unsigned long flags; + int retval, irq_disabled = 0; + + /* + * RESUME is cleared when GetPortStatus() is called 20ms after start + * of RESUME + */ + if ((typeReq == GetPortStatus) && + (wIndex && wIndex <= ports) && + ehci->reset_done[wIndex-1] && + time_after_eq(jiffies, ehci->reset_done[wIndex-1]) && + (ehci_readl(ehci, status_reg) & PORT_RESUME)) { + + /* + * to make sure we are not interrupted until RESUME bit + * is cleared, disable interrupts on current CPU + */ + ehci_dbg(ehci, "SOF alignment workaround\n"); + irq_disabled = 1; + local_irq_save(flags); + ehci_brcm_wait_for_sof(ehci, 5); + } + retval = (*org_hub_control)(hcd, typeReq, wValue, wIndex, buf, wLength); + if (irq_disabled) + local_irq_restore(flags); + return retval; +} + +static int ehci_brcm_reset(struct usb_hcd *hcd) +{ + struct ehci_hcd *ehci = hcd_to_ehci(hcd); + + ehci->big_endian_mmio = 1; + + ehci->caps = (struct ehci_caps *) hcd->regs; + ehci->regs = (struct ehci_regs *) (hcd->regs + + HC_LENGTH(ehci, ehci_readl(ehci, &ehci->caps->hc_capbase))); + + /* This fixes the lockup during reboot due to prior interrupts */ + ehci_writel(ehci, CMD_RESET, &ehci->regs->command); + mdelay(10); + + /* + * SWLINUX-1705: Avoid OUT packet underflows during high memory + * bus usage + * port_status[0x0f] = Broadcom-proprietary USB_EHCI_INSNREG00 @ 0x90 + */ + ehci_writel(ehci, 0x00800040, &ehci->regs->port_status[0x10]); + ehci_writel(ehci, 0x00000001, &ehci->regs->port_status[0x12]); + + return ehci_setup(hcd); +} + +static struct hc_driver __read_mostly ehci_brcm_hc_driver; + +static const struct ehci_driver_overrides brcm_overrides __initconst = { + + .reset = ehci_brcm_reset, + .extra_priv_size = sizeof(struct brcm_priv), +}; + +static int ehci_brcm_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct resource *res_mem; + struct brcm_priv *priv; + struct usb_hcd *hcd; + int irq; + int err; + + if (usb_disabled()) + return -ENODEV; + + err = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32)); + if (err) + return err; + + irq = platform_get_irq(pdev, 0); + if (irq <= 0) + return irq; + + /* Hook the hub control routine to work around a bug */ + if (!org_hub_control) + org_hub_control = ehci_brcm_hc_driver.hub_control; + ehci_brcm_hc_driver.hub_control = ehci_brcm_hub_control; + + /* initialize hcd */ + hcd = usb_create_hcd(&ehci_brcm_hc_driver, dev, dev_name(dev)); + if (!hcd) + return -ENOMEM; + + platform_set_drvdata(pdev, hcd); + priv = hcd_to_ehci_priv(hcd); + + priv->clk = devm_clk_get_optional(dev, NULL); + if (IS_ERR(priv->clk)) { + err = PTR_ERR(priv->clk); + goto err_hcd; + } + + err = clk_prepare_enable(priv->clk); + if (err) + goto err_hcd; + + hcd->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res_mem); + if (IS_ERR(hcd->regs)) { + err = PTR_ERR(hcd->regs); + goto err_clk; + } + hcd->rsrc_start = res_mem->start; + hcd->rsrc_len = resource_size(res_mem); + err = usb_add_hcd(hcd, irq, IRQF_SHARED); + if (err) + goto err_clk; + + device_wakeup_enable(hcd->self.controller); + device_enable_async_suspend(hcd->self.controller); + platform_set_drvdata(pdev, hcd); + + return 0; + +err_clk: + clk_disable_unprepare(priv->clk); +err_hcd: + usb_put_hcd(hcd); + + return err; +} + +static int ehci_brcm_remove(struct platform_device *dev) +{ + struct usb_hcd *hcd = platform_get_drvdata(dev); + struct brcm_priv *priv = hcd_to_ehci_priv(hcd); + + usb_remove_hcd(hcd); + clk_disable_unprepare(priv->clk); + usb_put_hcd(hcd); + return 0; +} + +static int __maybe_unused ehci_brcm_suspend(struct device *dev) +{ + int ret; + struct usb_hcd *hcd = dev_get_drvdata(dev); + struct brcm_priv *priv = hcd_to_ehci_priv(hcd); + bool do_wakeup = device_may_wakeup(dev); + + ret = ehci_suspend(hcd, do_wakeup); + if (ret) + return ret; + clk_disable_unprepare(priv->clk); + return 0; +} + +static int __maybe_unused ehci_brcm_resume(struct device *dev) +{ + struct usb_hcd *hcd = dev_get_drvdata(dev); + struct ehci_hcd *ehci = hcd_to_ehci(hcd); + struct brcm_priv *priv = hcd_to_ehci_priv(hcd); + int err; + + err = clk_prepare_enable(priv->clk); + if (err) + return err; + /* + * SWLINUX-1705: Avoid OUT packet underflows during high memory + * bus usage + * port_status[0x0f] = Broadcom-proprietary USB_EHCI_INSNREG00 + * @ 0x90 + */ + ehci_writel(ehci, 0x00800040, &ehci->regs->port_status[0x10]); + ehci_writel(ehci, 0x00000001, &ehci->regs->port_status[0x12]); + + ehci_resume(hcd, false); + + pm_runtime_disable(dev); + pm_runtime_set_active(dev); + pm_runtime_enable(dev); + + return 0; +} + +static SIMPLE_DEV_PM_OPS(ehci_brcm_pm_ops, ehci_brcm_suspend, + ehci_brcm_resume); + +static const struct of_device_id brcm_ehci_of_match[] = { + { .compatible = "brcm,ehci-brcm-v2", }, + { .compatible = "brcm,bcm7445-ehci", }, + {} +}; + +static struct platform_driver ehci_brcm_driver = { + .probe = ehci_brcm_probe, + .remove = ehci_brcm_remove, + .shutdown = usb_hcd_platform_shutdown, + .driver = { + .name = "ehci-brcm", + .pm = &ehci_brcm_pm_ops, + .of_match_table = brcm_ehci_of_match, + } +}; + +static int __init ehci_brcm_init(void) +{ + if (usb_disabled()) + return -ENODEV; + + ehci_init_driver(&ehci_brcm_hc_driver, &brcm_overrides); + return platform_driver_register(&ehci_brcm_driver); +} +module_init(ehci_brcm_init); + +static void __exit ehci_brcm_exit(void) +{ + platform_driver_unregister(&ehci_brcm_driver); +} +module_exit(ehci_brcm_exit); + +MODULE_ALIAS("platform:ehci-brcm"); +MODULE_DESCRIPTION("EHCI Broadcom STB driver"); +MODULE_AUTHOR("Al Cooper"); +MODULE_LICENSE("GPL"); From patchwork Thu May 7 17:34:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Cooper X-Patchwork-Id: 11534579 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C40721392 for ; Thu, 7 May 2020 17:34:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id ACD9321473 for ; Thu, 7 May 2020 17:34:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="l+q+VPJf" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728039AbgEGRel (ORCPT ); Thu, 7 May 2020 13:34:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49962 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728003AbgEGRek (ORCPT ); Thu, 7 May 2020 13:34:40 -0400 Received: from mail-pj1-x1041.google.com (mail-pj1-x1041.google.com [IPv6:2607:f8b0:4864:20::1041]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C5B44C05BD43; Thu, 7 May 2020 10:34:40 -0700 (PDT) Received: by mail-pj1-x1041.google.com with SMTP id 7so4062755pjo.0; Thu, 07 May 2020 10:34:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=EPpfdrDWyIyJoF1ulwtJ3Qw81WLSoebaZdFuuGZoDek=; b=l+q+VPJf0AqTmc1n+v80+kTMlTK2z8npyK82OZfZ/9x/TOF1BzCAl2PQ70xUHvMDpQ 8uZIuUt3gx5UjJ7qVIm8vO368Zqk+LKpZqoQB9Lvz4Kjb+tgM9ViIsc48W+C39T6g4ye yfR+UH6TQzzTJTiafMhWOCfdcFHWXtjX8IVw39LgjLqJ2w6vHGwkrFUvyKbcO54wR1i9 skBln5pPuZAApexgE7HfQX6k55kd/Lkt6fpeVcvNn7QrMnMY6ywQGRapZUiUuq49NqLj nfNAAEz+/tRjZPThHV+InM9L1e83fQ1c+adoLjoYfZuOtq80duRilt9LRoe8FvWihLDn tpLg== 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:in-reply-to :references; bh=EPpfdrDWyIyJoF1ulwtJ3Qw81WLSoebaZdFuuGZoDek=; b=UmWcC9Ol+wVuIgXFHAB3nAJQ2NESARJo0mDsmXrBEz4acZUdSDofEhjAV+T5aQzOsM MsLmCH/rLHRlhGpxsYj0BRW1KvjPrByslukbAgx8PO5+ZQVhqv25rrOGZZpnMrmxlHPc Kj3WxXAgmxAARCIBowMTvDLbsVn+wSWioQhbm4a1vN/qzjhBC+SFWxXS/HIpqWzlfiD0 30F1ohHgFsiNQm6GDJrXS2c1+fSJJvDj9j71tT4AunlMEX0aAzxOggEzpESBeDJ7w0Xm J2kjQZ21zSnQfbHl11QGQq3pNUeXpp5P/yO62lw8j81ANeG4ZGG+9Wed0kIXRgDw3SlK oQpA== X-Gm-Message-State: AGi0PuaUAbO99oEalIKUJBhDld29IS8QGgKnPRjyblwpxFh6d9I9eI57 dwOy8vFzr0hFnqS1HzEGz6j8h5vlt88= X-Google-Smtp-Source: APiQypL3czYk300rpBGKg2G+mjGxZ5lSkGhjC6H19yktBCHPl5NOAmYDW2y9mD2Ze8Q84xRxXPwWFQ== X-Received: by 2002:a17:90a:1501:: with SMTP id l1mr1307791pja.82.1588872879825; Thu, 07 May 2020 10:34:39 -0700 (PDT) Received: from stbsrv-and-01.and.broadcom.net ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id y14sm5368802pff.205.2020.05.07.10.34.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 10:34:39 -0700 (PDT) From: Al Cooper To: linux-kernel@vger.kernel.org Cc: Al Cooper , Alan Stern , Andy Shevchenko , bcm-kernel-feedback-list@broadcom.com, devicetree@vger.kernel.org, Greg Kroah-Hartman , Krzysztof Kozlowski , linux-usb@vger.kernel.org, Mathias Nyman , Rob Herring , Yoshihiro Shimoda , Andy Shevchenko Subject: [PATCH v7 5/5] usb: host: Add ability to build new Broadcom STB USB drivers Date: Thu, 7 May 2020 13:34:08 -0400 Message-Id: <20200507173408.20754-6-alcooperx@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507173408.20754-1-alcooperx@gmail.com> References: <20200507173408.20754-1-alcooperx@gmail.com> Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Add the build system changes needed to get the Broadcom STB XHCI, EHCI and OHCI functionality working. The OHCI support does not require anything unique to Broadcom so the standard ohci-platform driver is being used. Also update MAINTAINERS. Signed-off-by: Al Cooper --- MAINTAINERS | 8 ++++++++ drivers/usb/host/Kconfig | 20 ++++++++++++++++++++ drivers/usb/host/Makefile | 1 + 3 files changed, 29 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 2926327e4976..fb55300c2a84 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3481,6 +3481,14 @@ S: Supported F: Documentation/devicetree/bindings/i2c/brcm,brcmstb-i2c.yaml F: drivers/i2c/busses/i2c-brcmstb.c +BROADCOM BRCMSTB USB EHCI DRIVER +M: Al Cooper +L: linux-usb@vger.kernel.org +L: bcm-kernel-feedback-list@broadcom.com +S: Maintained +F: Documentation/devicetree/bindings/usb/brcm,bcm7445-ehci.yaml +F: drivers/usb/host/ehci-brcm.* + BROADCOM BRCMSTB USB2 and USB3 PHY DRIVER M: Al Cooper L: linux-kernel@vger.kernel.org diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index 55bdfdf11e4c..973386bbb522 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig @@ -97,6 +97,26 @@ config USB_XHCI_TEGRA endif # USB_XHCI_HCD +config USB_EHCI_BRCMSTB + tristate + +config USB_BRCMSTB + tristate "Broadcom STB USB support" + depends on (ARCH_BRCMSTB && PHY_BRCM_USB) || COMPILE_TEST + select USB_OHCI_HCD_PLATFORM if USB_OHCI_HCD + select USB_EHCI_BRCMSTB if USB_EHCI_HCD + select USB_XHCI_PLATFORM if USB_XHCI_HCD + help + Enables support for XHCI, EHCI and OHCI host controllers + found in Broadcom STB SoC's. + + To compile these drivers as modules, choose M here: the + modules will be called ohci-platform.ko, ehci-brcm.ko and + xhci-plat-hcd.ko + + Disabling this will keep the controllers and corresponding + PHYs powered down. + config USB_EHCI_HCD tristate "EHCI HCD (USB 2.0) support" depends on HAS_DMA && HAS_IOMEM diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile index a7f0b8ff7179..265e26cf9209 100644 --- a/drivers/usb/host/Makefile +++ b/drivers/usb/host/Makefile @@ -59,6 +59,7 @@ obj-$(CONFIG_USB_EHCI_HCD_STI) += ehci-st.o obj-$(CONFIG_USB_EHCI_EXYNOS) += ehci-exynos.o obj-$(CONFIG_USB_EHCI_HCD_AT91) += ehci-atmel.o obj-$(CONFIG_USB_EHCI_TEGRA) += ehci-tegra.o +obj-$(CONFIG_USB_EHCI_BRCMSTB) += ehci-brcm.o obj-$(CONFIG_USB_OXU210HP_HCD) += oxu210hp-hcd.o obj-$(CONFIG_USB_ISP116X_HCD) += isp116x-hcd.o