Skip to content

arm64: dts: qcom: shikra: Wire up usb-role-switch for USB Type-C ports - #999

Open
akakum-qualcomm wants to merge 5 commits into
qualcomm-linux:qcom-6.18.yfrom
akakum-qualcomm:shikra-usb-role-switch-618
Open

arm64: dts: qcom: shikra: Wire up usb-role-switch for USB Type-C ports#999
akakum-qualcomm wants to merge 5 commits into
qualcomm-linux:qcom-6.18.yfrom
akakum-qualcomm:shikra-usb-role-switch-618

Conversation

@akakum-qualcomm

@akakum-qualcomm akakum-qualcomm commented Aug 21, 2026

Copy link
Copy Markdown

On Shikra CQS/CQM platforms, usb-role-switch is handled by PM4125 on
the primary Type-C port and Cypress PD controller CYPD6129 on the
second Type-C port. On Shikra IQS platform, usb-role-switch is
handled by Cypress PD controller CYPD6129 on both Type-C ports.

Add the CYPD6129 typec node under i2c3, wire its connector endpoints
to the corresponding DWC3 controller ports via remote-endpoint
phandles, and switch the associated USB controllers to OTG mode so
role switching can take effect.

Signed-off-by: Akash Kumar akash.kumar@oss.qualcomm.com

links: https://lore.kernel.org/all/20260811-usb-shikra-v7-v7-0-753e928f37ae@oss.qualcomm.com/
https://lore.kernel.org/all/20260820145036.2035641-4-akash.kumar@oss.qualcomm.com/

CRs-Fixed: 4652998

Add support for both USB controllers and their respective phys on Shikra.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260811-usb-shikra-v7-v7-1-753e928f37ae@oss.qualcomm.com

[submitter: qcom-6.18.y already carried an older v1/v2-era usb_1 and
 usb_qmpphy node definition (FROMLIST 90ffd3d "Add USB changes for
 Shikra" and 1c76289 "Add changes for usb on IQS platform").
 Per request, landed v7 fresh: replaced the old usb_qmpphy node
 (qcom,shikra-qmp-usb3-phy) and old usb_1 node with v7's versions
 (qcom,shikra-qmp-usb3-dp-phy, relocated usb_1 block, new usb_2 block),
 rather than layering v7 on top of the old nodes. Resulting content
 matches the original patch; no semantic changes beyond superseding the
 older node definitions.]
On Shikra CQS/CQM  platforms, usb-role-switch is handled by PM4125 on
primary Type-C port and Cypress PD controller CYPD6129 on second Type-C
port. On Shikra IQS platform, usb-role-switch is handled by Cypress PD
controller CYPD6129 on both Type-C ports.

Since those changes are not yet present, enabling both USB controllers
in device mode.

Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260811-usb-shikra-v7-v7-2-753e928f37ae@oss.qualcomm.com

[submitter: shikra-cqm-evk.dts, shikra-cqs-evk.dts and shikra-iqs-evk.dts
 already carried &usb_1_hsphy and &usb_qmpphy nodes from earlier
 v1/v2-era FROMLIST commits (90ffd3d, 1c76289). Only the
 missing &usb_2_hsphy node from this patch was added to those three
 files; shikra-evk.dtsi had no prior USB wiring and was applied as-is.
 Resulting content matches the original patch; no semantic changes.]
…roller

Add the device-tree binding documentation for the Cypress cypd6129
and cypd6229 dual Type-C PD controllers. These are used on Shikra
CQM/CQS/IQS platforms to handle usb-role-switch for the USB Type-C
ports over an I2C interface, similarly to the existing cypd4226
binding.

cypd6229 is a variant of cypd6129 and is described with a
"cypress,cypd6129" fallback compatible string.

Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Akash Kumar <akash.kumar@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260820145036.2035641-2-akash.kumar@oss.qualcomm.com
Add cypd6129 and cypd6229 compatible strings to the of_device_id
match table so the driver binds to boards describing these Cypress
PD controllers in their device tree. No other driver changes are
needed since the chip is accessed through the same generic UCSI/HPI
I2C register protocol as the existing cypd4226 support.

Signed-off-by: Akash Kumar <akash.kumar@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260820145036.2035641-3-akash.kumar@oss.qualcomm.com
…ype-C ports

On Shikra CQS/CQM platforms, usb-role-switch is handled by PM4125 on
the primary Type-C port and Cypress PD controller CYPD6129 on the
second Type-C port. On Shikra IQS platform, usb-role-switch is
handled by Cypress PD controller CYPD6129 on both Type-C ports.

Add the CYPD6129 typec node under i2c3, wire its connector endpoints
to the corresponding DWC3 controller ports via remote-endpoint
phandles, and switch the associated USB controllers to OTG mode so
role switching can take effect.

Signed-off-by: Akash Kumar <akash.kumar@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260820145036.2035641-4-akash.kumar@oss.qualcomm.com

[submitter: qcom-6.18.y already carried a PENDING commit
 (102ec26 "arm64: dts: qcom: Add typec role switching changes to
 shikra") that wired shikra-cqm-evk.dts and shikra-cqs-evk.dts's
 usb_1_dwc3_hs/usb_qmpphy_out endpoints to a PM4125-based typec
 connector (&pm4125_hs_in/&pm4125_ss_in). The version of this patch
 sent to the list wired CYPD6129 to usb_1_dwc3_hs on CQM/CQS instead,
 which would have conflicted with that PENDING commit's PM4125 wiring
 (a DT endpoint can only have one remote-endpoint phandle) and, per
 updated board-wiring information, does not match the actual hardware:
 on CQM/CQS, CYPD6129 is wired to the second Type-C port (usb_2) and
 PM4125 continues to own the primary Type-C port (usb_1), unchanged.
 This local copy of the patch has been corrected accordingly: the
 PENDING commit's &pm4125_hs_in/&pm4125_ss_in/usb_1/usb_qmpphy_out
 wiring on CQM/CQS is restored as-is, and CYPD6129's connector endpoint
 is wired to the newly added usb_2/usb_2_dwc3_hs instead of usb_1.
 The PENDING commit's shikra-cqm-som.dtsi portion (&pm4125_typec
 connector and &pm4125_vbus regulator nodes) is untouched and left in
 history as-is. shikra-iqs-evk.dts had no such conflict (no PM4125) and
 is applied as-is. The series needs to be resent upstream with this
 corrected CQM/CQS wiring.]
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

3 similar comments
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No Change Task Found

No associated change tasks found for CR 4652998 on any of the following entities:

Entities:

  • kernel.qli.2.0

CR: 4652998

Please ensure the CR has a change task associated with at least one of the entities for this branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants