Hi, This series adds support for the combined Type-C PHY found in Apple Silicon machines and required for USB3, DP-AltMode, and Thunderbolt/USB4 support. As in the previous versions, this is limited to USB3 support so far since the other modes need further work in different subsystems. With the dwc3 glue driver being upstream this is however the last part required for upstream USB3 support.
The generic tunable support inside driver/soc/apple will also be re-used for Thunderbolt later but it's fine to take it through the PHY tree since thunderbolt will depend on that anyway. Changes in v3: - Link to v2: https://patch.msgid.link/[email protected] - Rebased on 6.19-rc1 Changes in v2: - Link to v1: https://patch.msgid.link/[email protected] - Picked up tags from Rob and Janne, thanks! - Added additional sanity checks for the tunables to guard against bugs in our bootloader (Janne) - Used struct_size from overflow.h instead of open-coding it inside tunables.c (Janne) - Fixed a bunch of typos in atc.c pointed out by Mark Kettenis via IRC Changes since v2 of the combined series: - Link to v2: https://lore.kernel.org/asahi/[email protected]/ - atc.c: - Removed a bunch of outdated safety checks from atc.c that were only required in a previous version that did not rely on the dwc3-glue driver - Addressed Philipp's review comments: - Added documentation for struct apple_atcphy (and a bunch of other things while I was at it) - Moved the mutex guard from atcphy_dpphy_configure to atcphy_dp_configure since the first one doesn't touch any shared structures or MMIO - apple,atcphy.yaml: - Added a generic apple,tunable definition that uses uint32-matrix and refer to that one from the individual tunable properties - Adjust the tunable description to make it easier to understand - Limited all lines to 80 chars - Used > for longer descriptions - Fixed some typos - Picked up r-b tags (thanks!) Best, Sven Signed-off-by: Sven Peter <[email protected]> --- Sven Peter (3): soc: apple: Add hardware tunable support dt-bindings: phy: Add Apple Type-C PHY phy: apple: Add Apple Type-C PHY .../devicetree/bindings/phy/apple,atcphy.yaml | 222 ++ MAINTAINERS | 2 + drivers/phy/Kconfig | 1 + drivers/phy/Makefile | 1 + drivers/phy/apple/Kconfig | 14 + drivers/phy/apple/Makefile | 4 + drivers/phy/apple/atc.c | 2294 ++++++++++++++++++++ drivers/soc/apple/Kconfig | 4 + drivers/soc/apple/Makefile | 3 + drivers/soc/apple/tunable.c | 80 + include/linux/soc/apple/tunable.h | 62 + 11 files changed, 2687 insertions(+) --- base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8 change-id: 20251013-b4-atcphy-d6a7c939d417 Best regards, -- Sven Peter <[email protected]>
