mb/google/ocelot: Add THC-SPI Touchscreen support in fw_config

Add support for THC-SPI touchscreen configuration in the GPIO pad-based
override logic.

The GPP_E17 pin serves dual purposes depending on the hardware
configuration:
 - When touchscreen THC-SPI is present: NF3 (THC HID-SPI CS0)
 - When fingerprint sensor is present: NF5 (GSPI0 CS0)

The firmware configuration logic now prioritizes touchscreen THC-SPI
over fingerprint sensor configuration, as these are mutually exclusive
hardware configurations.

BUG=None
TEST=Build ocelot and verify correct GPIO configuration based on
fw_config settings for both touchscreen THC-SPI and fingerprint sensor
configurations

Change-Id: I93deb6352cd0f1168ad53819151c705c6ce48b28
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91197
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: P, Usha <usha.p@intel.com>
This commit is contained in:
Appukuttan V K 2026-02-13 11:43:33 +05:30 committed by Matt DeVillier
commit c9578eac24

View file

@ -605,7 +605,21 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
GPIO_PADBASED_OVERRIDE(padbased_table, ish_disable_pads);
}
if (fw_config_probe(FW_CONFIG(FP, FP_PRESENT))) {
/*
* *=========================================================================*
* | Usage | GPP_E17 |
* *=========================================================================*
* | Touchscreen in THC-SPI (with rework) | NF3: THC HID-SPI CS0 |
* *---------------------------------------*---------------------------------*
* | FPS present (without rework) | NF5: GSPI0 CS0 |
* *---------------------------------------*---------------------------------*
*
* NOTE: 1. CBI selecting TS THC-SPI or implies TS rework is applied for the board.
* 2. CBI selecting TS THC-SPI with FPS present is invalid case.
*/
if (fw_config_probe(FW_CONFIG(TOUCHSCREEN, TOUCHSCREEN_THC_SPI))) {
/* Board has TS THC-SPI rework and does not support FPS*/
} else if (fw_config_probe(FW_CONFIG(FP, FP_PRESENT))) {
GPIO_PADBASED_OVERRIDE(padbased_table, fp_enable_pads);
} else {
GPIO_PADBASED_OVERRIDE(padbased_table, fp_disable_pads);