[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250526-b4-k1-dwc3-v3-v4-0-63e4e525e5cb@whut.edu.cn>
Date: Mon, 26 May 2025 22:40:16 +0800
From: Ze Huang <huangze@...t.edu.cn>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Yixun Lan <dlan@...too.org>,
Thinh Nguyen <Thinh.Nguyen@...opsys.com>,
Philipp Zabel <p.zabel@...gutronix.de>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>, Albert Ou <aou@...s.berkeley.edu>,
Alexandre Ghiti <alex@...ti.fr>
Cc: linux-usb@...r.kernel.org, devicetree@...r.kernel.org,
linux-riscv@...ts.infradead.org, spacemit@...ts.linux.dev,
linux-kernel@...r.kernel.org, Ze Huang <huangze@...t.edu.cn>
Subject: [PATCH v4 0/4] Add SpacemiT K1 USB3.0 host controller support
The USB 3.0 controller found in the SpacemiT K1 SoC[1] supports both USB3.0
Host and USB2.0 Dual-Role Device (DRD). The PHY interfaces required for the
K1 USB subsystem — PIPE3 (for USB 3.0) and UTMI+ (for USB 2.0) — have
already been supported in a separate patchset [2].
This controller is compatible with DesignWare Core USB 3 (DWC3) driver.
However, constraints in the snps,dwc3 binding limit the ability to extend
properties to describe hardware variations. The existing generic DWC3 driver,
dwc3-of-simple, still functions as a glue layer.
To address this and promote trasition to flattened dwc node, this patch
introduces dwc3-common, building upon prior work that exposed the DWC3 core
driver [3].
This patchset is based on usb-next (6.15-rc6) and has been tested on BananaPi and Jupiter development boards.
Link: https://developer.spacemit.com/documentation?token=AjHDwrW78igAAEkiHracBI9HnTb [1]
Link: https://lore.kernel.org/linux-riscv/20250418-b4-k1-usb3-phy-v2-v2-0-b69e02da84eb@whut.edu.cn [2]
Link: https://lore.kernel.org/all/20250414-dwc3-refactor-v7-3-f015b358722d@oss.qualcomm.com [3]
Signed-off-by: Ze Huang <huangze@...t.edu.cn>
---
Changes in v4:
- dt-bindings spacemit,k1-dwc:
- reorder properties
- add properties of phys & phy-names
- add usb hub nodes in example dt
- add support for spacemit,k1-mbus
- dwc3 generic plat driver:
- rename dwc3-common.c to dwc3-generic-plat.c
- use SYSTEM_SLEEP_PM_OPS macros and drop PM guards
- dts:
- reorder dts properties of usb dwc3 node
- move "dr_mode" of dwc3 from dtsi to dts
- Link to v3: https://lore.kernel.org/r/20250518-b4-k1-dwc3-v3-v3-0-7609c8baa2a6@whut.edu.cn
Changes in v3:
- introduce dwc3-common for generic dwc3 hardware
- fix warnings in usb host dt-bindings
- fix errors in dts
- Link to v2: https://lore.kernel.org/r/20250428-b4-k1-dwc3-v2-v1-0-7cb061abd619@whut.edu.cn
Changes in v2:
- dt-bindings:
- add missing 'maxItems'
- remove 'status' property in exmaple
- fold dwc3 node into parent
- drop dwc3 glue driver and use snps,dwc3 driver directly
- rename dts nodes and reorder properties to fit coding style
- Link to v1: https://lore.kernel.org/all/20250407-b4-k1-usb3-v3-2-v1-0-bf0bcc41c9ba@whut.edu.cn
---
Ze Huang (4):
dt-bindings: usb: dwc3: add support for SpacemiT K1
dt-bindings: soc: spacemit: Add K1 MBUS controller
usb: dwc3: add generic driver to support flattened DT
riscv: dts: spacemit: add usb3.0 support for K1
.../bindings/soc/spacemit/spacemit,k1-mbus.yaml | 55 ++++++
.../devicetree/bindings/usb/spacemit,k1-dwc3.yaml | 116 +++++++++++++
arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 51 ++++++
arch/riscv/boot/dts/spacemit/k1.dtsi | 67 ++++++++
drivers/usb/dwc3/Kconfig | 9 +
drivers/usb/dwc3/Makefile | 1 +
drivers/usb/dwc3/dwc3-generic-plat.c | 189 +++++++++++++++++++++
7 files changed, 488 insertions(+)
---
base-commit: ab6dc9a6c721c2eed867c157447764ae68ff9b7e
change-id: 20250517-b4-k1-dwc3-v3-5208a002728a
Best regards,
--
Ze Huang <huangze@...t.edu.cn>
Powered by blists - more mailing lists