From 2b692751fe558b76927ee1075d43da80df45c6b7 Mon Sep 17 00:00:00 2001 From: matthewdva <15670286+matthewdva@users.noreply.github.com> Date: Sun, 2 Aug 2026 15:23:49 -0400 Subject: [PATCH] configs: Enable USB Type-C/PD support for FUSB302-based HATs The FUSB302 is an I2C-attached USB Type-C/PD sink controller used by Pi HATs that need to negotiate more than the default 5V over a USB-C connector. None of the Pi defconfigs enable CONFIG_TYPEC, so the TCPM state machine that fusb302 binds to is unavailable and the driver cannot be loaded at all, even out-of-tree. Enable the Type-C Port Controller Manager and the FUSB302 driver as modules. CONFIG_TYPEC_TCPCI is not required: TYPEC_FUSB302 depends only on I2C within the TYPEC_TCPM block. The dependencies (CONFIG_USB and CONFIG_I2C) are already enabled in all of these defconfigs, and nothing probes unless the device tree describes an FUSB302, so there is no runtime effect on machines without the hardware. Signed-off-by: Matthew Davis --- arch/arm/configs/bcm2709_defconfig | 3 +++ arch/arm/configs/bcmrpi_defconfig | 3 +++ arch/arm64/configs/bcm2711_defconfig | 3 +++ arch/arm64/configs/bcm2711_rt_defconfig | 3 +++ arch/arm64/configs/bcm2712_defconfig | 3 +++ 5 files changed, 15 insertions(+) diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig index 67748175b48ca..d56e48053d1d7 100644 --- a/arch/arm/configs/bcm2709_defconfig +++ b/arch/arm/configs/bcm2709_defconfig @@ -1301,6 +1301,9 @@ CONFIG_USB_G_ACM_MS=m CONFIG_USB_G_MULTI=m CONFIG_USB_G_HID=m CONFIG_USB_G_WEBCAM=m +CONFIG_TYPEC=m +CONFIG_TYPEC_TCPM=m +CONFIG_TYPEC_FUSB302=m CONFIG_MMC=y CONFIG_MMC_BLOCK_MINORS=32 CONFIG_MMC_BCM2835_MMC=y diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig index 9e51a93036948..3e87b9c524083 100644 --- a/arch/arm/configs/bcmrpi_defconfig +++ b/arch/arm/configs/bcmrpi_defconfig @@ -1293,6 +1293,9 @@ CONFIG_USB_G_ACM_MS=m CONFIG_USB_G_MULTI=m CONFIG_USB_G_HID=m CONFIG_USB_G_WEBCAM=m +CONFIG_TYPEC=m +CONFIG_TYPEC_TCPM=m +CONFIG_TYPEC_FUSB302=m CONFIG_MMC=y CONFIG_MMC_BLOCK_MINORS=32 CONFIG_MMC_BCM2835_MMC=y diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig index e549f671907c4..cb23db674634b 100644 --- a/arch/arm64/configs/bcm2711_defconfig +++ b/arch/arm64/configs/bcm2711_defconfig @@ -1417,6 +1417,9 @@ CONFIG_USB_G_ACM_MS=m CONFIG_USB_G_MULTI=m CONFIG_USB_G_HID=m CONFIG_USB_G_WEBCAM=m +CONFIG_TYPEC=m +CONFIG_TYPEC_TCPM=m +CONFIG_TYPEC_FUSB302=m CONFIG_MMC=y CONFIG_MMC_BLOCK_MINORS=32 CONFIG_MMC_BCM2835_MMC=y diff --git a/arch/arm64/configs/bcm2711_rt_defconfig b/arch/arm64/configs/bcm2711_rt_defconfig index 2424d949ac6a4..0f971fa20b037 100644 --- a/arch/arm64/configs/bcm2711_rt_defconfig +++ b/arch/arm64/configs/bcm2711_rt_defconfig @@ -1413,6 +1413,9 @@ CONFIG_USB_G_ACM_MS=m CONFIG_USB_G_MULTI=m CONFIG_USB_G_HID=m CONFIG_USB_G_WEBCAM=m +CONFIG_TYPEC=m +CONFIG_TYPEC_TCPM=m +CONFIG_TYPEC_FUSB302=m CONFIG_MMC=y CONFIG_MMC_BLOCK_MINORS=32 CONFIG_MMC_BCM2835_MMC=y diff --git a/arch/arm64/configs/bcm2712_defconfig b/arch/arm64/configs/bcm2712_defconfig index f79c71cfdbd98..dd54cc94a63a5 100644 --- a/arch/arm64/configs/bcm2712_defconfig +++ b/arch/arm64/configs/bcm2712_defconfig @@ -1419,6 +1419,9 @@ CONFIG_USB_G_ACM_MS=m CONFIG_USB_G_MULTI=m CONFIG_USB_G_HID=m CONFIG_USB_G_WEBCAM=m +CONFIG_TYPEC=m +CONFIG_TYPEC_TCPM=m +CONFIG_TYPEC_FUSB302=m CONFIG_MMC=y CONFIG_MMC_BLOCK_MINORS=32 CONFIG_MMC_BCM2835_MMC=y