Skip to content

Shikra pinctrl intr target width - #1062

Closed
akakum-qualcomm wants to merge 6 commits into
qualcomm-linux:qcom-6.18.yfrom
akakum-qualcomm:shikra-pinctrl-intr-target-width
Closed

Shikra pinctrl intr target width#1062
akakum-qualcomm wants to merge 6 commits into
qualcomm-linux:qcom-6.18.yfrom
akakum-qualcomm:shikra-pinctrl-intr-target-width

Conversation

@akakum-qualcomm

@akakum-qualcomm akakum-qualcomm commented Sep 9, 2026

Copy link
Copy Markdown

arm64: dts: qcom: shikra: Replace out-of-tree USB DT with upstream lore series (v7 USB nodes + CYPD6129 role-switch v2)

This branch reverts the 3 out-of-tree/FROMLIST/PENDING Shikra USB commits
carried in this tree and replaces them with the equivalent upstream
lore.kernel.org patch series, applied cleanly on top of qcom-6.18.y:

https://lore.kernel.org/all/20260811-usb-shikra-v7-v7-0-753e928f37ae@oss.qualcomm.com/
(arm64: dts: qcom: Add support for usb nodes on Shikra, v7)
https://lore.kernel.org/all/20260821-shikra-usb-dt-v7-apply-v2-0-628885fc1d0e@oss.qualcomm.com/
(arm64: dts: qcom: shikra: Wire up usb-role-switch for USB Type-C ports, v2)
Reverted:

Revert "FROMLIST: arm64: dts: qcom: Add changes for usb on IQS platform"
Revert "FROMLIST: arm64: dts: qcom: Add USB changes for Shikra"
Revert "PENDING: arm64: dts: qcom: Add typec role switching changes to shikra"
Applied on top (from lore, unmodified upstream patches):

arm64: dts: qcom: Add support for usb nodes on Shikra
arm64: dts: qcom: Enable USB controllers on Shikra platforms
dt-bindings: usb: Add Cypress cypd6129/cypd6229 Type-C controller
usb: typec: ucsi: ccg: Add support for cypd6129/cypd6229
arm64: dts: qcom: shikra: Wire up usb-role-switch for USB Type-C ports
Net effect: shikra-cqm-evk, shikra-cqs-evk, and shikra-iqs-evk now use the
upstream CYPD6129/CYPD6229 UCSI Type-C controller for USB role switching
(via &i2c3/typec@40) instead of the previous PM4125-native typec block,
while shikra.dtsi/shikra-evk.dtsi gain the base usb_1/usb_2 dwc3, USB
HS/QMP PHY, and QUSB2 efuse-trim nodes needed to support them.

All four affected board/SoC DT files were rebuilt with dtc
(qcom/shikra-cqm-evk.dtb, qcom/shikra-cqs-evk.dtb, qcom/shikra-iqs-evk.dtb)
with no warnings or errors.

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
CRs-Fixed:: 4635219

qli-2.1 pull-request freeze

@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.

1 similar comment
@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.

@akakum-qualcomm
akakum-qualcomm force-pushed the shikra-pinctrl-intr-target-width branch from 69adee8 to ce6e21f Compare September 9, 2026 12:50
@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.

1 similar comment
@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.

@akakum-qualcomm
akakum-qualcomm force-pushed the shikra-pinctrl-intr-target-width branch from c65eb1b to bff2c44 Compare September 10, 2026 13:50
@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.

@akakum-qualcomm
akakum-qualcomm force-pushed the shikra-pinctrl-intr-target-width branch from bff2c44 to 4450b09 Compare September 10, 2026 13:59
@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.

@akakum-qualcomm

Copy link
Copy Markdown
Author

qli-2.1 pull-request freeze

…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.

Link: https://lore.kernel.org/all/20260820145036.2035641-4-akash.kumar@oss.qualcomm.com/
Signed-off-by: Akash Kumar <akash.kumar@oss.qualcomm.com>
Signed-off-by: Akash Kumar <akakum@qti.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.

Link: https://lore.kernel.org/all/20260820145036.2035641-4-akash.kumar@oss.qualcomm.com/
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Signed-off-by: Akash Kumar <akash.kumar@oss.qualcomm.com>
Signed-off-by: Akash Kumar <akakum@qti.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.

Link: https://lore.kernel.org/all/20260820145036.2035641-4-akash.kumar@oss.qualcomm.com/
Signed-off-by: Akash Kumar <akash.kumar@oss.qualcomm.com>
Signed-off-by: Akash Kumar <akakum@qti.qualcomm.com>
@akakum-qualcomm
akakum-qualcomm force-pushed the shikra-pinctrl-intr-target-width branch from 5080af6 to 5c2e4d9 Compare September 10, 2026 16:19
Add .cyacd2 firmware flashing support to the CCG UCSI driver, and
trigger it automatically from probe when the device reports no
usable firmware version.

Parsing and flashing:
 - Parse both .cyacd2 and .cyacd firmware text formats (ccg_parse_cyacd2_text,
   ccg_parse_cyacd_text), auto-detecting the format from file content
   (ccg_content_is_cyacd2_text), and convert relative/bank-based rows into
   absolute flash row addresses (ccg_rows_to_absolute, ccg_parse_and_build_rows).
 - Add HPIv2 register access helpers (ccg_hpi_read16/write16, ccg_i2c_read,
   ccg_read_u16/u32) and flash primitives (ccg_cmd_write_flash_row,
   ccg_cmd_read_flash_row, ccg_cmd_validate_fw, ccg_cmd_reset,
   ccg_cmd_jump_boot_mode, ccg_enter_flashing_robust) needed to write firmware
   rows and validate/reset the device afterwards.
 - Detect hybrid flash layout and derive per-bank row ranges
   (ccg_is_hybrid, ccg_row_size_from_device_mode, remap_rows_to_bank),
   and add response/async-event draining and wait helpers
   (ccg_wait_success, ccg_wait_async_event, ccg_drain_responses,
   ccg_disable_pd_ports) to keep the flashing sequence in sync with the
   device.
 - Rework do_flash() to request the firmware image, parse it into
   absolute rows, enter flashing mode, write and validate the image, and
   reset the device, with diagnostic logging of parsed rows and readback
   for bring-up.
 - Add a "ccg_fw_file" module parameter to override the firmware file
   name used for flashing, for bring-up/testing.

Probe-time update:
 - When get_fw_info() reports an empty/zero uc->fw_version at probe
   time, call ccg_fw_update_needed()/ccg_fw_update() to flash the
   device before creating/registering the UCSI interface, instead of
   requiring a manual "echo 1 > do_flash" after boot.
 - Re-run ucsi_ccg_init() and get_fw_info() after a probe-time flash
   since do_flash() resets the device, so the correct post-flash
   firmware version is used for the rest of probe.

Existing behavior kept:
 - The "do_flash" sysfs attribute (do_flash_store -> ccg_update_firmware
   work item) is unchanged and still available to trigger a flash after
   the driver has loaded.

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

The Shikra GPIO PINGROUP macro configures intr_target_bit but never
sets intr_target_width, leaving it at its zero-initialized default.
Set it to 4 to match the width of the interrupt target field.

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

Add a gpio-hog for GPIO 79 (BOOST_5V) on the Shikra CQM/CQS/IQS EVK
boards. This line enables the level translator that is otherwise
left disabled by default, which is required in the industrial
configuration.

Also fix the Shikra USB3-DP combo PHY (qcom,shikra-qmp-usb3-dp-phy)
which had no matching driver entry, causing the DWC3 USB controller
to fail probing with a deferred-probe cascade (typec, USB, and
several sync_state() consumers). Add the missing of_device_id entry
and a Shikra-specific PHY config that also deasserts the third GCC
reset line present on Shikra's PHY node but absent from the shared
QCS615 config, which was leaving part of the PHY held in reset and
causing PHY init to time out (-ETIMEDOUT).

CRs-Fixed: 4652998
CRs-Fixed: 4635219
Link: https://lore.kernel.org/all/20260820145036.2035641-4-akash.kumar@oss.qualcomm.com/
Signed-off-by: Akash Kumar <akash.kumar@oss.qualcomm.com>
Signed-off-by: Akash Kumar <akakum@qti.qualcomm.com>
@akakum-qualcomm
akakum-qualcomm force-pushed the shikra-pinctrl-intr-target-width branch from 5c2e4d9 to 76b745a Compare September 10, 2026 17:23
@sgaud-quic

Copy link
Copy Markdown
Contributor

Compilation error :

 Error: /opt/actions-runner/_work/kernel-config/kernel-config/arch/arm64/boot/dts/qcom/shikra-evk.dtsi:49.1-7 Label or path usb_2 not found
  Error: /opt/actions-runner/_work/kernel-config/kernel-config/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts:812.1-7 Label or path usb_2 not found
    DTC     arch/arm64/boot/dts/qcom/sm8150-sony-xperia-kumano-griffin.dtb
  Error: /opt/actions-runner/_work/kernel-config/kernel-config/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts:822.1-13 Label or path usb_2_hsphy not found
  FATAL ERROR: Syntax error parsing input tree
  Error: /opt/actions-runner/_work/kernel-config/kernel-config/arch/arm64/boot/dts/qcom/shikra-evk.dtsi:49.1-7 Label or path usb_2 not found

@akakum-qualcomm

Copy link
Copy Markdown
Author

#1001

merging this

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.

5 participants