mb/google/ocelot/var/ojal: Update touchpad config

This patch enables ELAN touchpad in devicetree on I2C0 interface and updates FW config for GPIO's according to schematics revision 0.9.
Intel RDC kit no:840138

BUG=b:437459757
TEST=Build ojal board and test trackpad functionality

Change-Id: Idf84165877e98df31f71c8df916637a455ce84dc
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89323
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
This commit is contained in:
Varun Upadhyay 2025-09-23 20:07:33 +05:30 committed by Matt DeVillier
commit beb0951c1c
2 changed files with 51 additions and 7 deletions

View file

@ -71,6 +71,28 @@ static const struct pad_config cnvi_disable_pads[] = {
PAD_NC(GPP_F05, NONE),
};
static const struct pad_config touchpad_lpss_i2c_enable_pads[] = {
/* GPP_H20: SOC_I2C_0_SCL */
PAD_CFG_NF(GPP_H20, NONE, DEEP, NF1),
/* GPP_H19: SOC_I2C_0_SDA */
PAD_CFG_NF(GPP_H19, NONE, DEEP, NF1),
/* GPP_A13: TCH_PAD_INT_N */
PAD_CFG_GPI_APIC(GPP_A13, NONE, PLTRST, LEVEL, INVERT),
/* GPP_VGPIO3_THC1: THC1_WOT */
PAD_NC(GPP_VGPIO3_THC1, NONE),
};
static const struct pad_config touchpad_i2c_disable_pads[] = {
/* GPP_H20: SOC_I2C_0_SCL */
PAD_NC(GPP_H20, NONE),
/* GPP_H19: SOC_I2C_0_SDA */
PAD_NC(GPP_H19, NONE),
/* GPP_A13: TCH_PAD_INT_N */
PAD_NC(GPP_A13, NONE),
/* GPP_VGPIO3_THC1: THC1_WOT */
PAD_NC(GPP_VGPIO3_THC1, NONE),
};
void fw_config_configure_pre_mem_gpio(void)
{
if (!fw_config_is_provisioned()) {
@ -109,4 +131,10 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
} else if (fw_config_probe(FW_CONFIG(WIFI, WIFI_NONE))) {
GPIO_PADBASED_OVERRIDE(padbased_table, cnvi_disable_pads);
}
if (fw_config_probe(FW_CONFIG(TOUCHPAD, TOUCHPAD_LPSS_I2C))) {
GPIO_PADBASED_OVERRIDE(padbased_table, touchpad_lpss_i2c_enable_pads);
} else {
GPIO_PADBASED_OVERRIDE(padbased_table, touchpad_i2c_disable_pads);
}
}

View file

@ -56,6 +56,11 @@ chip soc/intel/pantherlake
register "tcss_cap_policy[0]" = "TCSS_TYPE_C_PORT_FULL_FUN"
register "tcss_cap_policy[1]" = "TCSS_TYPE_C_PORT_FULL_FUN"
#gpe configuration
register "pmc_gpe0_dw0" = "GPP_A"
register "pmc_gpe0_dw1" = "GPP_B"
register "pmc_gpe0_dw2" = "GPP_E"
# Enable EDP in PortA & HDMI in Port B
register "ddi_port_A_config" = "1"
register "ddi_port_B_config" = "1"
@ -70,7 +75,7 @@ chip soc/intel/pantherlake
[PchSerialIoIndexI2C2] = PchSerialIoDisabled,
[PchSerialIoIndexI2C3] = PchSerialIoDisabled,
[PchSerialIoIndexI2C4] = PchSerialIoDisabled,
[PchSerialIoIndexI2C5] = PchSerialIoPci,
[PchSerialIoIndexI2C5] = PchSerialIoDisabled,
}"
register "serial_io_gspi_mode" = "{
@ -90,13 +95,13 @@ chip soc/intel/pantherlake
/* Render OEM footer logo 100px above from the edge */
.logo_bottom_margin = 100,
.chipset_lockdown = CHIPSET_LOCKDOWN_COREBOOT,
.i2c[0] = {
.speed = I2C_SPEED_FAST,
},
.i2c[1] = {
.speed = I2C_SPEED_FAST,
.early_init = 1,
},
.i2c[5] = {
.speed = I2C_SPEED_FAST,
},
.speed = I2C_SPEED_FAST,
.early_init = 1,
},
}"
device domain 0 on
@ -258,7 +263,18 @@ chip soc/intel/pantherlake
probe WIFI WIFI_CNVI_7
end
device ref i2c0 on end
device ref i2c0 on
chip drivers/i2c/generic
register "hid" = ""ELAN0000""
register "desc" = ""ELAN Touchpad""
register "irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_A13_IRQ)"
register "wake" = "GPE0_DW0_13"
register "detect" = "1"
device i2c 15 on
probe TOUCHPAD TOUCHPAD_LPSS_I2C
end
end
end
device ref i2c1 on
chip drivers/i2c/tpm