From 94168f10bce1e06699acea65419416f8af4fa10e Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Thu, 12 Mar 2026 17:57:00 +0000 Subject: [PATCH] Reland "mb/google/bluey: Configure GPIOs for USB camera" Additionally, guard USB camera GPIO enablement using dedicated Kconfig option. This reverts commit bbbc655b152b6900b8a9c308d32bdfcdb710a0d2. Reason for revert: FW should enable the GPIO_USB_CAM_ENABLE (206). Change-Id: I7966240939c51a4be7027debb0a66d3e11cb75cc Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/c/coreboot/+/91660 Tested-by: build bot (Jenkins) Reviewed-by: Matt DeVillier --- src/mainboard/google/bluey/Kconfig | 10 ++++++++++ src/mainboard/google/bluey/board.h | 4 ++++ src/mainboard/google/bluey/mainboard.c | 9 +++++++++ 3 files changed, 23 insertions(+) diff --git a/src/mainboard/google/bluey/Kconfig b/src/mainboard/google/bluey/Kconfig index 9d7a5df5a9..727e1e8f7a 100644 --- a/src/mainboard/google/bluey/Kconfig +++ b/src/mainboard/google/bluey/Kconfig @@ -32,6 +32,7 @@ config BOARD_GOOGLE_MODEL_QUENBI select BOARD_GOOGLE_BASEBOARD_BLUEY select BOARD_ROMSIZE_KB_32768 select EC_GOOGLE_CHROMEEC_BATTERY_SOC_DYNAMIC + select MAINBOARD_HAS_CAMERA_VIA_USB select MAINBOARD_HAS_CHROME_EC select MAINBOARD_HAS_FINGERPRINT_VIA_SPI select MAINBOARD_HAS_GOOGLE_TPM @@ -42,6 +43,7 @@ config BOARD_GOOGLE_MODEL_QUARTZ select BOARD_ROMSIZE_KB_32768 select EC_GOOGLE_CHROMEEC_BATTERY_SOC_DYNAMIC select EC_GOOGLE_CHROMEEC_LED_CONTROL + select MAINBOARD_HAS_CAMERA_VIA_USB select MAINBOARD_HAS_CHROME_EC select MAINBOARD_HAS_FINGERPRINT_VIA_SPI select MAINBOARD_HAS_GOOGLE_TPM @@ -68,6 +70,7 @@ config BOARD_GOOGLE_MODEL_MICA select BOARD_ROMSIZE_KB_32768 select EC_GOOGLE_CHROMEEC_LED_CONTROL select EC_GOOGLE_CHROMEEC_BATTERY_SOC_DYNAMIC + select MAINBOARD_HAS_CAMERA_VIA_USB select MAINBOARD_HAS_CHROME_EC select MAINBOARD_HAS_FINGERPRINT_VIA_USB select MAINBOARD_HAS_GOOGLE_TPM @@ -154,6 +157,13 @@ config MAINBOARD_HAS_CHROME_EC help Enable this option if your mainboard is equipped with Chrome EC. +config MAINBOARD_HAS_CAMERA_VIA_USB + bool + default n + help + Enable this option if your mainboard's onboard camera + is connected via the USB interface. + config MAINBOARD_VENDOR string default "Google" diff --git a/src/mainboard/google/bluey/board.h b/src/mainboard/google/bluey/board.h index 65436b60d7..361aa6587c 100644 --- a/src/mainboard/google/bluey/board.h +++ b/src/mainboard/google/bluey/board.h @@ -47,6 +47,10 @@ #define GPIO_SD_CD_L GPIO(71) #endif +/* USB Camera specific GPIOs */ +#define GPIO_USB_CAM_RESET_L GPIO(10) +#define GPIO_USB_CAM_ENABLE GPIO(206) + /* USB-C1 port specific GPIOs */ #define GPIO_USB_C1_EN_PP3300 GPIO(186) #define GPIO_USB_C1_EN_PP1800 GPIO(175) diff --git a/src/mainboard/google/bluey/mainboard.c b/src/mainboard/google/bluey/mainboard.c index b9c055e6d5..f4f076ef2e 100644 --- a/src/mainboard/google/bluey/mainboard.c +++ b/src/mainboard/google/bluey/mainboard.c @@ -76,6 +76,12 @@ static bool is_low_power_boot_with_charger(void) return ret; } +static void enable_usb_camera(void) +{ + gpio_output(GPIO_USB_CAM_RESET_L, 1); + gpio_output(GPIO_USB_CAM_ENABLE, 1); +} + static void setup_usb_typec(void) { gpio_output(GPIO_USB_C1_EN_PP3300, 1); @@ -109,6 +115,9 @@ static void setup_audio(void) static void setup_usb(void) { setup_usb_typec(); + + if (CONFIG(MAINBOARD_HAS_CAMERA_VIA_USB)) + enable_usb_camera(); } static void setup_usb_late(void *unused)