drivers/usb/common

USB common infrastructure: ULPI bus and GPIO cable/role detection

Shared USB plumbing used across the kernel, plus two small drivers: a bus driver for ULPI (the standard link between USB 2.0 controllers and external PHY chips like the Microchip USB3340 or TI TUSB1210), and a driver that uses a GPIO pin to detect cable insertion or switch between host and device roles. Common on phones, tablets, and embedded boards.

keep-annotate conf=0.88 deploy=medium replacement=none subsystem=usb category=bus-usb
88%

recommendation

Worth keeping but worth labelling clearly because the directory mixes genuinely generic USB code that the rest of the kernel depends on with two smaller drivers (ULPI bus, GPIO-based connector detection) aimed at embedded boards. Upstream activity is current, with real fixes landing in 2025, and PHY chips that need this code are still being manufactured and sold new by Microchip and TI, so there is no case for removal.

repository signals

9 files
2,040 source lines
44 commits, 5y
+319 / −163 lines added / removed, 5y
28 authors, 5y
monthly commits · 2021-04-21 → 2026-04-21 · 44 total · active in 30/61 months
2021 2022 2023 2024 2025 2026 2021-04: 0 commits · +0 −0 2021-05: 4 commits · +35 −31 2021-06: 0 commits · +0 −0 2021-07: 3 commits · +26 −4 2021-08: 0 commits · +0 −0 2021-09: 1 commit · +1 −2 2021-10: 0 commits · +0 −0 2021-11: 0 commits · +0 −0 2021-12: 0 commits · +0 −0 2022-01: 5 commits · +83 −6 2022-02: 0 commits · +0 −0 2022-03: 1 commit · +3 −17 2022-04: 0 commits · +0 −0 2022-05: 1 commit · +17 −0 2022-06: 0 commits · +0 −0 2022-07: 1 commit · +64 −32 2022-08: 1 commit · +2 −4 2022-09: 1 commit · +3 −17 2022-10: 0 commits · +0 −0 2022-11: 0 commits · +0 −0 2022-12: 2 commits · +2 −2 2023-01: 1 commit · +2 −2 2023-02: 1 commit · +6 −8 2023-03: 1 commit · +1 −1 2023-04: 1 commit · +1 −1 2023-05: 3 commits · +6 −7 2023-06: 1 commit · +0 −3 2023-07: 1 commit · +1 −0 2023-08: 1 commit · +5 −1 2023-09: 0 commits · +0 −0 2023-10: 0 commits · +0 −0 2023-11: 0 commits · +0 −0 2023-12: 0 commits · +0 −0 2024-01: 1 commit · +1 −1 2024-02: 0 commits · +0 −0 2024-03: 0 commits · +0 −0 2024-04: 0 commits · +0 −0 2024-05: 0 commits · +0 −0 2024-06: 1 commit · +2 −0 2024-07: 1 commit · +1 −1 2024-08: 1 commit · +3 −4 2024-09: 2 commits · +8 −9 2024-10: 0 commits · +0 −0 2024-11: 1 commit · +3 −0 2024-12: 1 commit · +14 −0 2025-01: 1 commit · +2 −1 2025-02: 1 commit · +1 −1 2025-03: 0 commits · +0 −0 2025-04: 1 commit · +22 −3 2025-05: 0 commits · +0 −0 2025-06: 0 commits · +0 −0 2025-07: 0 commits · +0 −0 2025-08: 0 commits · +0 −0 2025-09: 0 commits · +0 −0 2025-10: 0 commits · +0 −0 2025-11: 0 commits · +0 −0 2025-12: 0 commits · +0 −0 2026-01: 0 commits · +0 −0 2026-02: 2 commits · +2 −2 2026-03: 0 commits · +0 −0 2026-04: 1 commit · +2 −3

sources

  1. git.kernel.org

    Upstream activity is current through 2026, including real fixes in ulpi.c and usb-conn-gpio.c rather than only treewide churn.

  2. cateee.net

    CONFIG_USB_CONN_GPIO is still present through 7.0-rc+HEAD and covers GPIO-based USB cable/role detection on contemporary kernels.

  3. cateee.net

    CONFIG_USB_ULPI_BUS is still present through 7.0-rc+HEAD and provides the generic ULPI PHY bus used by embedded USB 2.0 designs.

  4. microchip.com

    Microchip USB3340 ULPI PHY is listed as In Production, showing new ULPI-based hardware is still sold.

  5. ti.com

    TI still lists orderable TUSB1210 ULPI PHY parts, indicating ongoing new-deployment availability for this class of hardware.

codex reasoning notes (technical)

Directory is a real driver/infrastructure bundle, not a pure helper library: it contains the usb-conn-gpio platform driver and the ULPI bus driver alongside shared USB common code. Local shell inspection of Kconfig/Makefile showed active configs/modules here; local git log showed substantive fixes up to 2026-04-01 in ulpi.c and 2025 updates in usb-conn-gpio.c, so this is not stagnant. Web search of lore.kernel.org terms for removal/deprecation did not surface an active removal series. URLs were obtained via shell (`git -c safe.directory ... log`) for the git.kernel.org log URL by canonical recall of the matching stable page, plus web search results for LKDDb and vendor product pages. Recommendation is keep-annotate rather than plain keep because this directory mixes generic USB infrastructure with niche embedded/board-level support, but the supported use cases still appear live in current upstream and current hardware supply.