Furquan Shaikh (furquan(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17092
-gerrit
commit 97464e8f15ce3106f00b52aad51ee5089e02f28e
Author: Furquan Shaikh <furquan(a)chromium.org>
Date: Fri Oct 21 16:42:45 2016 -0700
drivers/i2c/wacom_ts: Add support for WCOM touchscreen device driver
BUG=chrome-os-partner:57846
Change-Id: Id6bd91b3fd6420994ad5811d362618b1a38a8afa
Signed-off-by: Furquan Shaikh <furquan(a)chromium.org>
---
src/drivers/i2c/wacom_ts/Kconfig | 3 ++
src/drivers/i2c/wacom_ts/Makefile.inc | 1 +
src/drivers/i2c/wacom_ts/chip.h | 30 ++++++++++++++++++
src/drivers/i2c/wacom_ts/ts.c | 59 +++++++++++++++++++++++++++++++++++
4 files changed, 93 insertions(+)
diff --git a/src/drivers/i2c/wacom_ts/Kconfig b/src/drivers/i2c/wacom_ts/Kconfig
new file mode 100644
index 0000000..50da3f1
--- /dev/null
+++ b/src/drivers/i2c/wacom_ts/Kconfig
@@ -0,0 +1,3 @@
+config DRIVERS_I2C_WACOM_TS
+ bool
+ select DRIVERS_I2C_GENERIC
diff --git a/src/drivers/i2c/wacom_ts/Makefile.inc b/src/drivers/i2c/wacom_ts/Makefile.inc
new file mode 100644
index 0000000..9455099
--- /dev/null
+++ b/src/drivers/i2c/wacom_ts/Makefile.inc
@@ -0,0 +1 @@
+ramstage-$(CONFIG_DRIVERS_I2C_WACOM_TS) += ts.c
diff --git a/src/drivers/i2c/wacom_ts/chip.h b/src/drivers/i2c/wacom_ts/chip.h
new file mode 100644
index 0000000..b59f630
--- /dev/null
+++ b/src/drivers/i2c/wacom_ts/chip.h
@@ -0,0 +1,30 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2016 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __I2C_WACOM_TS_CHIP_H__
+#define __I2C_WACOM_TS_CHIP_H__
+
+#include <drivers/i2c/generic/chip.h>
+
+#define WCOM50C1_HID "WCOM50C1"
+#define PNP0C50_CID "PNP0C50"
+#define WCOM_TS_DESC "WCOM Touchscreen"
+
+struct drivers_i2c_wacom_ts_config {
+ struct drivers_i2c_generic_config generic;
+ uint8_t hid_desc_reg_offset;
+};
+
+#endif /* __I2C_WACOM_TS_CHIP_H__ */
diff --git a/src/drivers/i2c/wacom_ts/ts.c b/src/drivers/i2c/wacom_ts/ts.c
new file mode 100644
index 0000000..ebc8883
--- /dev/null
+++ b/src/drivers/i2c/wacom_ts/ts.c
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2016 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <arch/acpigen_dsm.h>
+#include <device/device.h>
+#include <stdint.h>
+#include "chip.h"
+
+static void i2c_wacom_ts_fill_dsm(struct device *dev)
+{
+ struct drivers_i2c_wacom_ts_config *config = dev->chip_info;
+ struct dsm_i2c_hid_config dsm_config = {
+ .hid_desc_reg_offset = config->hid_desc_reg_offset,
+ };
+
+ acpigen_write_dsm_i2c_hid(&dsm_config);
+}
+
+static void i2c_wacom_ts_fill_ssdt_generator(struct device *dev)
+{
+ i2c_generic_fill_ssdt(dev, &i2c_wacom_ts_fill_dsm);
+}
+
+static const char *i2c_wacom_ts_acpi_name(struct device *dev)
+{
+ return "WCTS";
+}
+
+static struct device_operations i2c_wacom_ts_ops = {
+ .read_resources = DEVICE_NOOP,
+ .set_resources = DEVICE_NOOP,
+ .enable_resources = DEVICE_NOOP,
+#if IS_ENABLED(CONFIG_HAVE_ACPI_TABLES)
+ .acpi_name = &i2c_wacom_ts_acpi_name,
+ .acpi_fill_ssdt_generator = &i2c_wacom_ts_fill_ssdt_generator,
+#endif
+};
+
+static void i2c_wacom_ts_enable(struct device *dev)
+{
+ dev->ops = &i2c_wacom_ts_ops;
+}
+
+struct chip_operations drivers_i2c_wacom_ts_ops = {
+ CHIP_NAME("Wacom Touchscreen Device")
+ .enable_dev = &i2c_wacom_ts_enable
+};
the following patch was just integrated into master:
commit 3ce104e5d867e96c9a2a21103d26de5826af6b12
Author: Furquan Shaikh <furquan(a)chromium.org>
Date: Thu Oct 20 22:48:45 2016 -0700
mainboard/google/reef: Add PowerResource for ELAN touchscreen
Define reset_gpio and enable_gpio for touchscreen device so that when
kernel puts this device into D3, we put the device into
reset. PowerResource _ON and _OFF routines are used to put the device
into D0 and D3 states.
BUG=chrome-os-partner:55988
Change-Id: Ia905f9eb630cd96767b639aec74131dbd7952d0e
Signed-off-by: Furquan Shaikh <furquan(a)chromium.org>
Reviewed-on: https://review.coreboot.org/17083
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-by: Duncan Laurie <dlaurie(a)chromium.org>
See https://review.coreboot.org/17083 for details.
-gerrit
the following patch was just integrated into master:
commit 00a9e38f748c839c3a8edf7f2e242c64180456d4
Author: Furquan Shaikh <furquan(a)chromium.org>
Date: Thu Oct 20 22:45:26 2016 -0700
soc/intel/apollolake: Implement GPIO ACPI AML generating functions
Implement GPIO ACPI AML generating functions that can be called by
coreboot drivers to generate GPIO manipulation code in AML. Following
functions are implemented:
1. acpigen_soc_read_rx_gpio
2. acpigen_soc_get_tx_gpio
3. acpigen_soc_set_tx_gpio
4. acpigen_soc_clear_tx_gpio
BUG=chrome-os-partner:55988
Change-Id: I3d8695d73a1c43555032de90f14ee47ccee45559
Signed-off-by: Furquan Shaikh <furquan(a)chromium.org>
Reviewed-on: https://review.coreboot.org/17082
Tested-by: build bot (Jenkins)
Reviewed-by: Duncan Laurie <dlaurie(a)chromium.org>
See https://review.coreboot.org/17082 for details.
-gerrit
the following patch was just integrated into master:
commit 626ad205a7781eb13b3d9156d7c01f4aacfcbad5
Author: Furquan Shaikh <furquan(a)chromium.org>
Date: Thu Oct 20 16:01:04 2016 -0700
drivers/i2c/generic: Enable support for adding PowerResource for device
Add support to allow a device to define PowerResource in its SSDT AML
code. PowerResouce ACPI generation expects SoC to define the
callbacks for generating AML code for GPIO manipulation.
Device requiring PowerResource needs to define following parameters:
1. Reset GPIO - Optional, GPIO to put device into reset or take it out
of reset.
2. Reset delay - Delay after reset GPIO is de-asserted (default 0).
3. Enable GPIO - Optional, GPIO to enabled device.
4. Enable delay - Delay after enable GPIO is asserted (default 0).
BUG=chrome-os-partner:55988
Change-Id: Ieb2dd95fc1f555f5de66f3dda425172ac5b75dad
Signed-off-by: Furquan Shaikh <furquan(a)chromium.org>
Reviewed-on: https://review.coreboot.org/17081
Reviewed-by: Duncan Laurie <dlaurie(a)chromium.org>
Tested-by: build bot (Jenkins)
See https://review.coreboot.org/17081 for details.
-gerrit