|
|
Subscribe / Log in / New account

Add USB2.0 PHY support for SpacemiT K1

From:  Ze Huang <huang.ze-AT-linux.dev>
To:  Vinod Koul <vkoul-AT-kernel.org>, Kishon Vijay Abraham I <kishon-AT-kernel.org>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Conor Dooley <conor+dt-AT-kernel.org>, Yixun Lan <dlan-AT-gentoo.org>, Ze Huang <huang.ze-AT-linux.dev>
Subject:  [PATCH v6 0/2] Add USB2.0 PHY support for SpacemiT K1
Date:  Fri, 17 Oct 2025 22:49:51 +0800
Message-ID:  <20251017-k1-usb2phy-v6-0-7cf9ea2477a1@linux.dev>
Cc:  linux-phy-AT-lists.infradead.org, devicetree-AT-vger.kernel.org, linux-riscv-AT-lists.infradead.org, spacemit-AT-lists.linux.dev, linux-kernel-AT-vger.kernel.org, Ze Huang <huangze-AT-whut.edu.cn>
Archive-link:  Article

This patch series introduces support for the USB2.0 PHY on the SpacemiT
K1 SoC. The implementation has been tested on the Milk-V Jupiter and
BananaPi-f3.

K1 includes three USB ports as follows[1]:
- A USB2.0 OTG Port
- A USB2.0 Host Only Port
- A USB3.0 Port with a USB2.0 DRD interface

Each of these ports is connected to a USB2.0 PHY responsible for USB2
transmission.

This series is based on 6.18-rc1.

Link: https://developer.spacemit.com/documentation?token=AjHDwr... [1]

Signed-off-by: Ze Huang <huangze@whut.edu.cn>
---
Changes in v6:
- phy: spacemit: k1-usb2-phy:
  - Fix clock API usage and ensure proper clock disabling in error paths.
  - Refactor Register Definitions: Replace address/number-based macros with
    feature-based names
- Link to v5: https://lore.kernel.org/all/20250527-b4-k1-usb3-phy-v2-v5...

Changes in v5:
- phy driver for usb2:
  - convert readl/writel to regmap
  - fix typo: sentinal -> sentinel
- Link to v4: https://lore.kernel.org/r/20250526-b4-k1-usb3-phy-v2-v4-0...

Changes in v4:
- combphy driver:
  - add in-code comments to indicate that PCIe mode is not yet supported.
  - replace custom spacemit_reg_update() with standard regmap API.
  - drop spacemit_combphy_wait_ready helper function as only used once.
  - Fix PHY init timeout handling: ensure proper error reporting when PLL
    lock fails during USB3 PHY initialization
- Link to v3: https://lore.kernel.org/r/20250517-b4-k1-usb3-phy-v2-v3-0...

Changes in v3:
- improve commit message, provide more info about phy hardware
- drop superfluous local variable in `spacemit_combphy_wait_ready`
- replace devm_reset_control_get with devm_reset_control_get_exclusive
- Link to v2: https://lore.kernel.org/r/20250418-b4-k1-usb3-phy-v2-v2-0...

Changes in v2:
- combphy dt-bindings:
  - fix reg-names
  - describe reg
  - describe #phy-cells argument
- drop stale ".owner" in driver struct
- add support for usb lfps_thres in combphy
- fix Kconfig depends on
- Link to v1: https://lore.kernel.org/all/20250407-b4-k1-usb3-v3-2-v1-0...

Signed-off-by: Ze Huang <huang.ze@linux.dev>

---
Ze Huang (2):
      dt-bindings: phy: spacemit: add K1 USB2 PHY
      phy: spacemit: support K1 USB2.0 PHY controller

 .../devicetree/bindings/phy/spacemit,usb2-phy.yaml |  40 +++++
 drivers/phy/Kconfig                                |   1 +
 drivers/phy/Makefile                               |   1 +
 drivers/phy/spacemit/Kconfig                       |  13 ++
 drivers/phy/spacemit/Makefile                      |   2 +
 drivers/phy/spacemit/phy-k1-usb2.c                 | 200 +++++++++++++++++++++
 6 files changed, 257 insertions(+)
---
base-commit: cb6649f6217c0331b885cf787f1d175963e2a1d2
change-id: 20251017-k1-usb2phy-a53ed4ea51b0

Best regards,
-- 
Ze Huang <huang.ze@linux.dev>




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds