mb/google/galdos/var/lars: Implement touchscreen power sequencing
Since lars has two touchscreen options, we need to determine which (if any) are present on a given device at runtime so that there are not multiple ACPI touchscreen devices (as it makes Windows unhappy). Implement power sequencing and runtime detection for both touchscreen options. TEST=build/boot Win11/Linux on google/lars, verify touchscreen detected and functional under both OSes. Change-Id: I49ccb29ec4589315a4abe3c0ea8fa76f97080bcd Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79311 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Eric Lai <ericllai@google.com>
This commit is contained in:
parent
0733ee6514
commit
22ac6f6b2c
|
@ -216,6 +216,10 @@ static const struct pad_config early_gpio_table[] = {
|
||||||
/* GD_UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
/* GD_UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||||
/* GD_UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
|
/* GD_UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
|
||||||
/* EC_IN_RW */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, NONE, DEEP),
|
/* EC_IN_RW */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, NONE, DEEP),
|
||||||
|
|
||||||
|
/* touchscreen enable, hold in reset */
|
||||||
|
/* TCH_PNL_PWREN */ PAD_CFG_GPO(GPP_C22, 1, DEEP),
|
||||||
|
/* TCH_PNL_RST */ PAD_CFG_GPO(GPP_E23, 0, DEEP),
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -18,12 +18,24 @@ chip soc/intel/skylake
|
||||||
register "hid" = ""ELAN0001""
|
register "hid" = ""ELAN0001""
|
||||||
register "desc" = ""ELAN Touchscreen""
|
register "desc" = ""ELAN Touchscreen""
|
||||||
register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_E7_IRQ)"
|
register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_E7_IRQ)"
|
||||||
|
register "detect" = "1"
|
||||||
|
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E7)"
|
||||||
|
register "reset_delay_ms" = "20"
|
||||||
|
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E23)"
|
||||||
|
register "enable_delay_ms" = "1"
|
||||||
|
register "has_power_resource" = "1"
|
||||||
device i2c 10 on end
|
device i2c 10 on end
|
||||||
end
|
end
|
||||||
chip drivers/i2c/generic
|
chip drivers/i2c/generic
|
||||||
register "hid" = ""MLFS0000""
|
register "hid" = ""MLFS0000""
|
||||||
register "desc" = ""Melfas Touchscreen""
|
register "desc" = ""Melfas Touchscreen""
|
||||||
register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_E7_IRQ)"
|
register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_E7_IRQ)"
|
||||||
|
register "detect" = "1"
|
||||||
|
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E7)"
|
||||||
|
register "reset_delay_ms" = "10"
|
||||||
|
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E23)"
|
||||||
|
register "enable_delay_ms" = "55"
|
||||||
|
register "has_power_resource" = "1"
|
||||||
device i2c 34 on end
|
device i2c 34 on end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue