armbian-build/patch/kernel/archive
Igor Velkov 18848f530d rockchip64: Helios64: fix Type-C PHY and TCPM registration
Problem:
On Helios64 boot, the Type-C PHY (ff7c0000.phy) gets stuck in
"deferred probe" state with unknown reason. This causes:
- USB 3.0 SuperSpeed via Type-C port not working
- DisplayPort via Type-C (Alt Mode) not working

The following messages appear in dmesg:
  platform ff7c0000.phy: deferred probe pending: (reason unknown)
  platform fe800000.usb: deferred probe pending: wait for supplier /phy@ff7c0000/usb3-port
  platform fec00000.dp: deferred probe pending: wait for supplier /phy@ff7c0000/dp-port

Along with dependency cycle warnings:
  /phy@ff7c0000/dp-port: Fixed dependency cycle(s) with /i2c@ff3d0000/typec-portc@22/connector

Root cause:
The Helios64 DTS uses a legacy Type-C connection method:

  &tcphy0 {
      extcon = <&fusb0>;  // Expects extcon from fusb302
  };

However:
1. The FUSB302 driver with TCPM support (since kernel ~4.14) does NOT
   create extcon devices
2. Instead, it uses the Type-C connector class (/sys/class/typec/)
3. The phy-rockchip-typec driver calls extcon_get_edev_by_phandle(),
   fails to find an extcon device at the specified phandle, and
   returns -EPROBE_DEFER
4. The PHY remains in deferred probe indefinitely

The extcon-cables property is present in the DTS, but without a
typec_extcon_bridge node it serves no purpose.

This bug has existed since Type-C support was added to Helios64
(at least since kernel 6.6). It likely worked with older fusb302
driver versions, but broke after the transition to TCPM.

Solution:
Use the typec-extcon-bridge driver (Armbian patch from Ondrej Jirman/megi)
which translates Type-C connector class events to the extcon interface.

The Pinebook Pro patch (board-pbp-add-dp-alt-mode.patch) implements this
correctly: it has a typec_extcon_bridge node, and all extcon references
point to it rather than directly to fusb0.

Changes:
1. Add typec_extcon_bridge node with compatible = "linux,typec-extcon-bridge"
2. Change extcon = <&fusb0> to extcon = <&typec_extcon_bridge> in
   tcphy0, cdn_dp, u2phy0, usbdrd_dwc3_0 nodes
3. Add usb-role-switch, mode-switch, orientation-switch properties
   to fusb0 connector for integration with the bridge
4. Update PDO definitions with DUAL_ROLE and DATA_SWAP flags
5. Convert typec-altmodes property to modern altmodes subnode format
   (required for TCPM port registration)
6. Add extcon,ignore-usb to u2phy0 (following Pinebook Pro pattern)
7. Add snps,usb3-phy-reset-quirk to usbdrd_dwc3_0

After this fix:
- Type-C PHY (ff7c0000.phy) no longer stuck in deferred probe
- USB 3.0 SuperSpeed via Type-C port should work
- DisplayPort via Type-C (Alt Mode) should work
- Correct cable orientation detection
- USB role switching (host/device)

Known remaining issues:
- FUSB302 fails to register TCPM port with error:
    4-0022    typec_fusb302: cannot register tcpm port
  This prevents USB Power Delivery negotiation. The root cause
  appears to be in the connector configuration and requires
  further investigation.
2026-01-12 23:36:43 +01:00
..
filogic-6.12 filogic patches - tweak 0000.patching_config.yaml 2025-10-15 20:57:59 +02:00
filogic-6.16 filogic kernel edge - change from frank-w's tree to just a git-format-patches from his tree 2025-11-02 19:17:22 +01:00
genio-6.19 genio-6.19: switch to add-only DT Makefile AutoPatcher 2026-01-09 20:29:08 +01:00
imx6-6.1
imx6-6.6 imx6/current: rewrite-kernel-patches, no changes 2025-01-05 10:15:14 +01:00
imx6-6.10 Revert "imx6: move current to 6.12.y" 2025-02-12 11:50:10 +01:00
imx8m-6.12 IMX8 kernel 6.12.y: remove obsolete patch 2025-09-17 16:45:14 +02:00
meson64-6.12 jethubj200: update JetHub D2 DT file for I2C display and GPIO expander support 2025-12-10 10:03:56 +03:00
meson64-6.18 Fix rootfs compilation (dropping deprecated gtk2 engines), broken patch on meson64, series update 2026-01-08 19:27:48 +01:00
meson64-6.19 meson64-6.19: de-bork PCIe, again (missed a patch from 6.18) 2025-12-30 18:35:22 +01:00
meson-6.10 meson: kernel update: legacy -> 6.6, current -> 6.12 (#7801) 2025-02-08 23:08:34 +01:00
meson-6.12 Remove outdated MMC HS patch revert (#8698) 2025-10-01 12:08:05 +02:00
meson-s4t7-5.15
mvebu-6.1
mvebu-6.6
mvebu-6.12 mvebu: bump EDGE kernel to 6.12 and disable Active State Power Management 2025-05-16 19:01:48 +02:00
odroidxu4-6.6 Update odroidxu4-current to 6.6.119 2025-12-15 10:51:35 +01:00
qcs6490-6.18 qcs6490: VP9 fix backported from mailing list 2025-12-11 03:57:10 +08:00
rockchip64-6.6 rockchip rk3566: h96-TVbox: prepare i2c Leds to mainline 6.18 2025-10-04 21:08:27 +02:00
rockchip64-6.9 rockchip rk3566: h96-TVbox: prepare i2c Leds to mainline 6.18 2025-10-04 21:08:27 +02:00
rockchip64-6.10/dt
rockchip64-6.12 DevTree overlays to enable RK3308 UARTS (#9072) 2025-12-19 16:30:25 +01:00
rockchip64-6.18 rockchip64: Helios64: fix Type-C PHY and TCPM registration 2026-01-12 23:36:43 +01:00
rockchip64-6.19 rockchip64: Automatic fan speed and USB 3.0 fix for station-m3 2026-01-11 23:19:24 +01:00
rockchip-6.12 rockchip-current: rewrite kernel patches 2025-12-11 03:47:08 +08:00
rockchip-6.18 Fix rootfs compilation (dropping deprecated gtk2 engines), broken patch on meson64, series update 2026-01-08 19:27:48 +01:00
rockchip-6.19 rockchip-6.19: rewrite against 6.19-rc4 2026-01-08 12:08:49 +01:00
sm8250-6.12 sm8250 current: Add support to load QUP SE Firmware via Linux subsystem 2025-11-17 08:56:04 +01:00
sm8550-6.12 Fix broken patch due to upstream changes, drop edge kernel as its not used 2026-01-08 21:38:09 +01:00
spacemit-6.6 SpacemiT: Fixup formatting in lcd_tc358762xbg_dpi_800x480.dtsi 2025-12-16 14:24:48 -05:00
spacemit-6.18 SpacemiT: Fixup formatting in lcd_tc358762xbg_dpi_800x480.dtsi 2025-12-16 14:24:48 -05:00
starfive-6.1
sunxi-6.6 patch/kernel: update docs URI in a number of overlay READMEs 2025-08-27 16:33:31 +08:00
sunxi-6.12 re-add Makefile entries 2026-01-12 23:34:23 +01:00
sunxi-6.15 patch/kernel: update docs URI in a number of overlay READMEs 2025-08-27 16:33:31 +08:00
sunxi-6.18 rewrite everything 2026-01-12 23:34:35 +01:00
sunxi-dev-6.16 sun55iw3: move patches to archive/sunxi-dev-6.16 folder 2025-09-15 19:46:23 +02:00
uefi-arm64-6.6
uefi-arm64-6.9
uefi-arm64-6.12
uefi-arm64-6.18 uefi-arm64-6.18: fix net-stmicro-stmmac-Phytium-onboard-ethernet-drivers-and-ACPI-glue 2025-10-19 01:42:52 +02:00
uefi-arm64-6.19 uefi-arm64-6.19: rework net-stmmicro-stmmac Phytium driver + ACPI glue patches for 6.19 2025-12-29 16:33:29 +01:00
uefi-loong64-6.19 uefi-loong64-6.19: rewrite against 6.19-rc4 2026-01-08 12:08:49 +01:00
uefi-x86-6.12 uefi: x86: current (6.12) and edge (6.18): add Apple T2 patches 2025-11-17 20:24:53 +01:00
uefi-x86-6.18 uefi: x86: current (6.12) and edge (6.18): add Apple T2 patches 2025-11-17 20:24:53 +01:00
uefi-x86-6.19 uefi-x86-6.19: update patches from t2linux 6.19 branch + rewrite 2025-12-29 16:33:29 +01:00
zynq-5.4