From: Dave Klotz <DaveWK225@protonmail.com>
To: u-boot@lists.u-boot-project.org
Cc: Neil Armstrong <neil.armstrong@linaro.org>,
Yixun Lan <dlan@kernel.org>, Tom Rini <trini@konsulko.com>,
Eric Chung <eric.chung@riscstar.com>
Subject: [PATCH 0/7] phy: spacemit: k1: fix the PCIe and combo PHY driver
Date: Fri, 02 Oct 2026 21:29:45 +0000 [thread overview]
Message-ID: <cover.1790975597.git.DaveWK225@protonmail.com> (raw)
Fixes for the K1 PCIe/combo PHY driver from "phy: spacemit: add K1
PCIe/USB3 combo PHY driver", bringing it in line with the Linux driver:
- enable refclk and take the PHY out of reset at probe, using the clock
and reset the binding names, instead of fetching them unused;
- calibrate the termination values the way Linux does, without starting
port A's PLL in PCIe mode, and put port A back as it was afterwards;
- clear the termination fields before writing them, set EN_RTERM, set
CLKSEL on every lane, and update the PLL control registers with
read-modify-write instead of overwriting them;
- add a power_on op that brings the combo PHY up in USB 3 mode (select,
test control, timer adjust, SSC, PLL lock wait). Switching the select
bit alone leaves the PLL unlocked and the xHCI reset never completes.
Tested on an OrangePi RV2: NVMe on PCIe port B (link up, EFI boot from
the drive), an empty port C reporting no link, and a USB 3 stick behind
the on-board hub enumerating at 5 Gb/s through the combo PHY with a
DWC3 glue driver I will post separately. Not tested: a device on
port C, or USB 3 on other K1 boards.
Dave Klotz (7):
phy: spacemit: k1: enable refclk and deassert the PHY reset at probe
phy: spacemit: k1: don't start the combo PHY PLL to calibrate
phy: spacemit: k1: restore port A state after calibration
phy: spacemit: k1: program the termination fields properly
phy: spacemit: k1: set CLKSEL on every lane
phy: spacemit: k1: don't overwrite whole PLL control registers
phy: spacemit: k1: power on the combo PHY in USB 3 mode
drivers/phy/spacemit/phy-k1-pcie.c | 270 +++++++++++++++++++++--------
1 file changed, 196 insertions(+), 74 deletions(-)
base-commit: a000f2af240eaa996cec92f8d44bad96fdf3f898
--
2.55.0
next reply other threads:[~2026-10-02 21:31 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-02 21:29 Dave Klotz [this message]
2026-10-02 21:29 ` [PATCH 1/7] phy: spacemit: k1: enable refclk and deassert the PHY reset at probe Dave Klotz
2026-10-02 21:29 ` [PATCH 2/7] phy: spacemit: k1: don't start the combo PHY PLL to calibrate Dave Klotz
2026-10-02 21:30 ` [PATCH 3/7] phy: spacemit: k1: restore port A state after calibration Dave Klotz
2026-10-02 21:30 ` [PATCH 4/7] phy: spacemit: k1: program the termination fields properly Dave Klotz
2026-10-02 21:30 ` [PATCH 5/7] phy: spacemit: k1: set CLKSEL on every lane Dave Klotz
2026-10-02 21:30 ` [PATCH 6/7] phy: spacemit: k1: don't overwrite whole PLL control registers Dave Klotz
2026-10-02 21:30 ` [PATCH 7/7] phy: spacemit: k1: power on the combo PHY in USB 3 mode Dave Klotz
2026-10-02 22:06 ` [PATCH 0/7] phy: spacemit: k1: fix the PCIe and combo PHY driver Dave Klotz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1790975597.git.DaveWK225@protonmail.com \
--to=davewk225@protonmail.com \
--cc=dlan@kernel.org \
--cc=eric.chung@riscstar.com \
--cc=neil.armstrong@linaro.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.u-boot-project.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.