Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp290453img; Mon, 18 Mar 2019 03:15:34 -0700 (PDT) X-Google-Smtp-Source: APXvYqxOkdQzJPDutThcCI/V04pWgJvu/pEPF18clMaxbejxpNgV+UR2WOqZY36vA+xDCXDvcEA2 X-Received: by 2002:a65:6203:: with SMTP id d3mr17058448pgv.109.1552904134484; Mon, 18 Mar 2019 03:15:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552904134; cv=none; d=google.com; s=arc-20160816; b=bZ1MTb3DGVK38kCzMsjkvL4yztDLRn62gjjTLBqhxiYaqO0RWxZwoOnbH52JeW3SY9 rXpoc5JW6GlH8ydN4ItCSwvjL7Cxs5UJOijOOjXggWuQVSh20hLWWN2kVKMq1GihQYak LkIxccqpEvDUq/HrQ+YkF6ucu+R5jMogN5oft95iiYlQLJ/R6R5JUGbbIv8W7dQ2YmPV L5FFinCNAzeRz06FNNdu8MCsUoge+vz5syEyf/SihGsBcleSBp1ahRz3r3iGQkt8kBz3 Amx/IO10O5OlWQYe8pZEn3OerQsm0lqXgzDMEe8+ag07CESYaPc5wPwKOdbRvr9DPWT7 JsPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=Ld3J54sxdg0UMOT5kawtLOALpYru6XDyZnBywhjdwFY=; b=msPZt0MhOP53ySoTuQD6Nmp4R9tUyiQV0W3I69/YyfCj6n3uc8VSavXujE2puqywuG +gxtxHou7Uh+0sLGfJhbX8YFCHQUdrZ8xczHuSvEG0xVY9GaK4RdO9Ci5D8Kbtk5DdOj MmbJiTZqMgK+V5kWpiYV7utpzm+yRc9k+g5Ye8+suvbWlg5D/PWPS4E9Gu3Z2qqBOes0 jWucOA9ElSQaNw7SNjsVxE2iGEuOIQDQMn1p8yBRE2EEx+HP2U7zSwXXa835VG2b4wHJ YlcxB8/GNhDeM6necLqtEkbv8B6Rje85Q1IjDxkeJiKNwtlgEMOAAMu88IlD93RjdNrJ FUBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=eW+k4b5D; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g98si9148948plb.11.2019.03.18.03.15.19; Mon, 18 Mar 2019 03:15:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=eW+k4b5D; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727627AbfCRKL7 (ORCPT + 99 others); Mon, 18 Mar 2019 06:11:59 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:38595 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727137AbfCRKL6 (ORCPT ); Mon, 18 Mar 2019 06:11:58 -0400 Received: by mail-wr1-f66.google.com with SMTP id g12so16322540wrm.5 for ; Mon, 18 Mar 2019 03:11:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Ld3J54sxdg0UMOT5kawtLOALpYru6XDyZnBywhjdwFY=; b=eW+k4b5DdsCuGskaXhzPaxWlByaOtCJFvGhk1DYz8aOqEygOu4FbcZJExlTVMeevMS smM3oVK3dIxxalrP3VOvj/5+4BtrLyITf5w6CGlMNTlSAG7M19rowZIdKGNDjnY71Fh7 yRVo0x9UbozVoXRKBgdAimdqBbSVMPQnGKDC1ULMv6C1LewlQ5vCOQPLsrMytyogfB1z G6Ob3upkSeHwD4kS1rOl+Vl+QAIlCjjA9sw+ErqHnVkT38y3SJRMEQj8xeRjFbJuJVMT DP6QusY5JESCt0XOYEDZnLdANb2sIWv4oSTFGb7YGDga16SwiCERucHOfNO83r4naaBw ex+g== 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:mime-version :content-transfer-encoding; bh=Ld3J54sxdg0UMOT5kawtLOALpYru6XDyZnBywhjdwFY=; b=JetnLcoPm00TxYtL5d/Q7RuiYBPKA12/biX7xZcAVWHGcTN0yJSBTKn/lCeFpLgfUY aQhbrN5l0nSJXybL+FxlEppEb3utFDudSUywBfiA2KfazxLb1Xnj4gqfawelL5l59Ymp jBJs8kSTz5fqD3teT9ilFNpWRiQq966oCuCqOiY+eBoCHlejpjkmuoAVbychXTC+WUqG jMHNswmbCGnx2ZIjystqzRdQXQhpw2OUgGM7RYDj6B4AoNvWQ/0Yo8qb2U82teewT8NN yinwLdp9k4uDarIoPXBuOm8SnKrJZHwtX96/AFJLf9l1aGArwwIJjTd653dpd368tSnU n3pg== X-Gm-Message-State: APjAAAWvc5tgCm1Q3/BSnt5Luay1bWrConp990jhGYMKKQOxlkdifHPX HfgutogttwSzFzPWpahellIOLg== X-Received: by 2002:adf:eb8f:: with SMTP id t15mr4506723wrn.119.1552903916098; Mon, 18 Mar 2019 03:11:56 -0700 (PDT) Received: from bender.baylibre.local (lmontsouris-657-1-212-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id z8sm6697855wrl.59.2019.03.18.03.11.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 18 Mar 2019 03:11:55 -0700 (PDT) From: Neil Armstrong To: gregkh@linuxfoundation.org, hminas@synopsys.com, balbi@kernel.org, kishon@ti.com Cc: Neil Armstrong , linux-amlogic@lists.infradead.org, linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 0/8] arm64: meson: Add support for USB on Amlogic G12A Date: Mon, 18 Mar 2019 11:11:45 +0100 Message-Id: <20190318101153.7531-1-narmstrong@baylibre.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patchset adds support for USB on Amlogic G12A SoCs. This patchset is composed with : - bindings of the PHYs - bindings of the USB Control Glue - PHY Drivers - USB Control Glue driver Device Tree nodes will be added in a separate patchset. The Amlogic G12A USB Complex is composed of : - 2 USB Controllers : * DWC3 for USB2 and USB3 Host functionality * DWC2 for USB2 Peripheral functionality - 2 USB2 OTG PHYs, only a single one will be routed to either DWC2 to DWC3 - 1 USB3 PHY shared with PCIE funcionnality - A Glue to control PHY routing, setup and OTG detection The Glue configures the UTMI 8bit interfaces for the USB2 PHYs, including routing of the OTG PHY between the DWC3 and DWC2 controllers, and setups the on-chip OTG mode selection for this PHY. This drivers supports the on-probe setup of the OTG mode, and manually via the USB Role interface. The IRQ mode change detect is yet to be added in a future patchset, mainly due to lack of hardware to validate on. Changes since v2 at [1]: - Collected review tags - Removed syscon.h in usb2 phy driver - Added comment on the USB3/PCIe switch - Renamed dwc3_meson_g12a_usb_init_mode in glue driver - Changed indentation in dwc3_meson_g12a_role_set - Switched to of_get_compatible_child in glue code - Added devm_add_action_or_reset() to disable clock in case of probe failure - Checks priv->vbus before enabling regulator - Switched phy_init/phy_power_on - Removed priv->phys[i] NULL checks in suspend code - Removed clk_disable_unprepare/clk_put in remove code Changes since v1 at [0]: - USB2 PHY Bindings: collected tags and updated commit log - USB3/PCIE PHY Bindings: collected tag and updated reset list - DWC2 Compatible: collected tags - DWC3 Glue Bindings: - removed clock-names and reset-names for single entries - removed ports graph for PHYs and replaced by phys list with phy-names - added dr_mode and optional vbus-supply - fixed example - USB2 PHY Driver: removed USB_SUPPORT and otg.h include - USB3/PCIE PHY Driver: removed USB_SUPPORT, fixed comment and unused reg variable - USB Glue Driver: - Moved debugfs I/F to USB_ROLE_SWITCH framework - Integrated USB Glue Control Registers offset - Removed of graph parsing to use devm_phy_optional_get() - Fixed PHY mode handling and OTG switching - Simplified PHY calls by removing the NULL test - Added optional vbus regulator handling [1] https://lkml.kernel.org/r/20190212151413.24632-1-narmstrong@baylibre.com [2] https://lkml.kernel.org/r/20190304103846.2060-1-narmstrong@baylibre.com Neil Armstrong (8): dt-bindings: phy: Add Amlogic G12A USB2 PHY Bindings dt-bindings: phy: Add Amlogic G12A USB3+PCIE Combo PHY Bindings dt-bindings: usb: dwc2: Add Amlogic G12A DWC2 Compatible dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings phy: amlogic: add Amlogic G12A USB2 PHY Driver phy: amlogic: Add Amlogic G12A USB3 + PCIE Combo PHY Driver usb: dwc2: Add Amlogic G12A DWC2 Params usb: dwc3: Add Amlogic G12A DWC3 glue .../bindings/phy/meson-g12a-usb2-phy.txt | 22 + .../bindings/phy/meson-g12a-usb3-pcie-phy.txt | 22 + .../devicetree/bindings/usb/amlogic,dwc3.txt | 88 +++ .../devicetree/bindings/usb/dwc2.txt | 1 + drivers/phy/amlogic/Kconfig | 22 + drivers/phy/amlogic/Makefile | 2 + drivers/phy/amlogic/phy-meson-g12a-usb2.c | 189 ++++++ .../phy/amlogic/phy-meson-g12a-usb3-pcie.c | 413 ++++++++++++ drivers/usb/dwc2/params.c | 12 + drivers/usb/dwc3/Kconfig | 10 + drivers/usb/dwc3/Makefile | 1 + drivers/usb/dwc3/dwc3-meson-g12a.c | 602 ++++++++++++++++++ 12 files changed, 1384 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/meson-g12a-usb2-phy.txt create mode 100644 Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt create mode 100644 drivers/phy/amlogic/phy-meson-g12a-usb2.c create mode 100644 drivers/phy/amlogic/phy-meson-g12a-usb3-pcie.c create mode 100644 drivers/usb/dwc3/dwc3-meson-g12a.c -- 2.20.1