[PATCH v2 0/2] Add support for SA8255P in the qcom-qmp-usb phy driver
From: Mattijs Korpershoek
Date: Thu Jul 09 2026 - 10:55:28 EST
The Qualcomm automotive SA8255p SoC relies on firmware to configure
platform resources, including clocks, interconnects and TLMM.
The driver requests resources operations over SCMI using power protocols.
The SCMI power protocol enables or disables resources like clocks,
interconnect paths, and TLMM (GPIOs) using runtime PM framework APIs,
such as resume/suspend, to control power on/off.
Power domain "core" controls the GDSC, resets, and TLMM (GPIOs)
whereas power domain "transfer" controls clocks and interconnects.
Patch 1 adds the binding change for sa8255p. I've considered to create
a totally separate binding like the I2C one [1].
Given that the existing binding already had multiple conditionals, I've
chosen to update qcom,sc8280xp-qmp-usb3-uni-phy.yaml by adding another
conditional for the power domains.
Patch 2 adds the driver change, which is based on a public vendor
patch from qualcomm [2].
I did the following changes on top of that:
* Use devm_add_action_or_reset() for dev_pm_domain_detach_list() instead
of implementing a driver .remove()
* Drop the .lanes struct member since it no longer exists.
* Re-order some functions
This has been tested on next-20260706 with a Ride4 SA8775P board that
has SCMI firmware (which is compatible).
[1] https://lore.kernel.org/all/20260617-enable-i2c-on-sa8255p-v7-1-ad736dbeab57@xxxxxxxxxxxxxxxx/
[2] https://git.codelinaro.org/clo/le/meta-qti-auto-kernel/-/blob/LY.AU.0.1.0.r1-16800-gen4meta.0/recipes-kernel/linux/files/usb/0011-PENDING-phy-qcom-qmp-usb-Add-support-for-SA8255P.patch
Signed-off-by: Mattijs Korpershoek <mkorpershoek@xxxxxxxxxx>
---
Changes in v2:
* Driver changes:
* Fix comment typo tranfer -> transfer
* Fix print statement to add a missing '(' in the string
* Use dev_err_probe() in qmp_usb_domain_attach() to reduce log noise
* Fix pm_runtime_put_sync() order in qmp_usb_d0_to_d3 (Sashiko)
* Fix runtime PM reference leak on usb_transfer (Sashiko)
* Fix runtime PM reference leak on error in qmp_usb_init (Sashiko)
* Reorder qmp_usb_d0_to_d3() to mirror init ordering in qmp_usb_exit()
(Sashiko)
* Reorder qmp_usb_d0_to_d3() to mirror resume ordering in
qmp_usb_runtime_suspend() (Sashiko)
* Fix error handling in qmp_usb_runtime_resume() (Sashiko)
* Link to v1: https://patch.msgid.link/20260708-phy-qcom-qmp-usb-8255-v1-0-8d852a9535db@xxxxxxxxxx
---
Mattijs Korpershoek (1):
dt-bindings: phy: qcom,sc8280xp-qmp-usb3-uni: Add SA8255P USB PHY
Sriram Dash (1):
phy: qcom: qmp-usb: Add support for SA8255P
.../phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml | 92 ++++++++++-
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 182 ++++++++++++++++++---
2 files changed, 243 insertions(+), 31 deletions(-)
---
base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
change-id: 20260708-phy-qcom-qmp-usb-8255-9986907cdbc9
Best regards,
--
Mattijs Korpershoek <mkorpershoek@xxxxxxxxxx>