mb/google/sarien: Disable touch by strap pin GPP_B4
We want to disable touch for non-touch sku. We can use strap pin GPP_B4 to identify it is connected with touch or not. touch sku: GPP_B4 is low non-touch sku: GPP_B4 is high BUG=b:131132419 TEST=boot up and check no touch device exist Signed-off-by: Eric Lai <ericr_lai@compal.corp-partner.google.com> Change-Id: If6681262c25e4b01e061a8520e38905d40345509 Reviewed-on: https://review.coreboot.org/c/coreboot/+/32438 Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
d228c1ef32
commit
18060d7d92
|
@ -18,6 +18,8 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "chip.h"
|
#include "chip.h"
|
||||||
|
#include <gpio.h>
|
||||||
|
#include <console/console.h>
|
||||||
|
|
||||||
#if CONFIG(HAVE_ACPI_TABLES)
|
#if CONFIG(HAVE_ACPI_TABLES)
|
||||||
static void i2c_hid_fill_dsm(struct device *dev)
|
static void i2c_hid_fill_dsm(struct device *dev)
|
||||||
|
@ -60,6 +62,23 @@ static void i2c_hid_enable(struct device *dev)
|
||||||
{
|
{
|
||||||
struct drivers_i2c_hid_config *config = dev->chip_info;
|
struct drivers_i2c_hid_config *config = dev->chip_info;
|
||||||
|
|
||||||
|
if (!config)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* Check if device is present by reading GPIO */
|
||||||
|
if (config->generic.device_present_gpio) {
|
||||||
|
int present = gpio_get(config->generic.device_present_gpio);
|
||||||
|
present ^= config->generic.device_present_gpio_invert;
|
||||||
|
|
||||||
|
printk(BIOS_INFO, "%s is %spresent\n",
|
||||||
|
dev->chip_ops->name, present ? "" : "not ");
|
||||||
|
|
||||||
|
if (!present) {
|
||||||
|
dev->enabled = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dev->ops = &i2c_hid_ops;
|
dev->ops = &i2c_hid_ops;
|
||||||
|
|
||||||
if (config && config->generic.desc) {
|
if (config && config->generic.desc) {
|
||||||
|
|
|
@ -329,6 +329,8 @@ chip soc/intel/cannonlake
|
||||||
register "generic.enable_off_delay_ms" = "100"
|
register "generic.enable_off_delay_ms" = "100"
|
||||||
register "generic.has_power_resource" = "1"
|
register "generic.has_power_resource" = "1"
|
||||||
register "hid_desc_reg_offset" = "0x01"
|
register "hid_desc_reg_offset" = "0x01"
|
||||||
|
register "generic.device_present_gpio" = "GPP_B4"
|
||||||
|
register "generic.device_present_gpio_invert" = "1"
|
||||||
device i2c 10 on end
|
device i2c 10 on end
|
||||||
end
|
end
|
||||||
chip drivers/i2c/generic
|
chip drivers/i2c/generic
|
||||||
|
@ -339,6 +341,8 @@ chip soc/intel/cannonlake
|
||||||
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E7)"
|
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E7)"
|
||||||
register "enable_delay_ms" = "5"
|
register "enable_delay_ms" = "5"
|
||||||
register "has_power_resource" = "1"
|
register "has_power_resource" = "1"
|
||||||
|
register "device_present_gpio" = "GPP_B4"
|
||||||
|
register "device_present_gpio_invert" = "1"
|
||||||
device i2c 34 on end
|
device i2c 34 on end
|
||||||
end
|
end
|
||||||
end # I2C #0
|
end # I2C #0
|
||||||
|
|
Loading…
Reference in New Issue