[coreboot-gerrit] Patch set updated for coreboot: drivers/i2c/wacom: Make the driver more generic

Furquan Shaikh (furquan@google.com) gerrit at coreboot.org
Thu Nov 10 17:34:01 CET 2016


Furquan Shaikh (furquan at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17341

-gerrit

commit b7da4e4d1098dc17fa32bfea76fbb4af31b15b8f
Author: Furquan Shaikh <furquan at chromium.org>
Date:   Wed Nov 9 10:52:12 2016 -0800

    drivers/i2c/wacom: Make the driver more generic
    
    Wacom I2C driver can be used by devices other than
    touchscreen. e.g. digitizer. So there is no need to name the driver
    with touchscreen specific attributes. Only a separate descriptor name
    is required that needs to be set by mainboard correctly.
    
    BUG=chrome-os-partner:56246
    BRANCH=None
    TEST=Compiles successfully.
    
    Change-Id: I0d32a4adae477373b3f4c5f3abbe188860701194
    Signed-off-by: Furquan Shaikh <furquan at chromium.org>
---
 src/drivers/i2c/wacom/Kconfig                      |  3 ++
 src/drivers/i2c/wacom/Makefile.inc                 |  1 +
 src/drivers/i2c/wacom/chip.h                       | 32 ++++++++++++
 src/drivers/i2c/wacom/wacom.c                      | 59 ++++++++++++++++++++++
 src/drivers/i2c/wacom_ts/Kconfig                   |  3 --
 src/drivers/i2c/wacom_ts/Makefile.inc              |  1 -
 src/drivers/i2c/wacom_ts/chip.h                    | 31 ------------
 src/drivers/i2c/wacom_ts/ts.c                      | 59 ----------------------
 src/mainboard/google/reef/Kconfig                  |  2 +-
 .../google/reef/variants/pyro/devicetree.cb        |  2 +-
 10 files changed, 97 insertions(+), 96 deletions(-)

diff --git a/src/drivers/i2c/wacom/Kconfig b/src/drivers/i2c/wacom/Kconfig
new file mode 100644
index 0000000..be2bf83
--- /dev/null
+++ b/src/drivers/i2c/wacom/Kconfig
@@ -0,0 +1,3 @@
+config DRIVERS_I2C_WACOM
+	bool
+	select DRIVERS_I2C_GENERIC
diff --git a/src/drivers/i2c/wacom/Makefile.inc b/src/drivers/i2c/wacom/Makefile.inc
new file mode 100644
index 0000000..e8df2c6
--- /dev/null
+++ b/src/drivers/i2c/wacom/Makefile.inc
@@ -0,0 +1 @@
+ramstage-$(CONFIG_DRIVERS_I2C_WACOM) += wacom.c
diff --git a/src/drivers/i2c/wacom/chip.h b/src/drivers/i2c/wacom/chip.h
new file mode 100644
index 0000000..fc75194
--- /dev/null
+++ b/src/drivers/i2c/wacom/chip.h
@@ -0,0 +1,32 @@
+/*
+ * 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_CHIP_H__
+#define __I2C_WACOM_CHIP_H__
+
+#include <drivers/i2c/generic/chip.h>
+
+#define WCOM50C1_HID		"WCOM50C1"
+#define WCOMNTN2_HID		"WCOMNTN2"
+#define PNP0C50_CID		"PNP0C50"
+#define WCOM_TS_DESC		"WCOM Touchscreen"
+#define WCOM_DT_DESC		"WCOM Digitizer"
+
+struct drivers_i2c_wacom_config {
+	struct drivers_i2c_generic_config generic;
+	uint8_t hid_desc_reg_offset;
+};
+
+#endif /* __I2C_WACOM_CHIP_H__ */
diff --git a/src/drivers/i2c/wacom/wacom.c b/src/drivers/i2c/wacom/wacom.c
new file mode 100644
index 0000000..c54194f
--- /dev/null
+++ b/src/drivers/i2c/wacom/wacom.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_fill_dsm(struct device *dev)
+{
+	struct drivers_i2c_wacom_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_fill_ssdt_generator(struct device *dev)
+{
+	i2c_generic_fill_ssdt(dev, &i2c_wacom_fill_dsm);
+}
+
+static const char *i2c_wacom_acpi_name(struct device *dev)
+{
+	return "WCOM";
+}
+
+static struct device_operations i2c_wacom_ops = {
+	.read_resources		  = DEVICE_NOOP,
+	.set_resources		  = DEVICE_NOOP,
+	.enable_resources	  = DEVICE_NOOP,
+#if IS_ENABLED(CONFIG_HAVE_ACPI_TABLES)
+	.acpi_name		  = &i2c_wacom_acpi_name,
+	.acpi_fill_ssdt_generator = &i2c_wacom_fill_ssdt_generator,
+#endif
+};
+
+static void i2c_wacom_enable(struct device *dev)
+{
+	dev->ops = &i2c_wacom_ops;
+}
+
+struct chip_operations drivers_i2c_wacom_ops = {
+	CHIP_NAME("Wacom I2C Device")
+	.enable_dev = &i2c_wacom_enable
+};
diff --git a/src/drivers/i2c/wacom_ts/Kconfig b/src/drivers/i2c/wacom_ts/Kconfig
deleted file mode 100644
index 50da3f1..0000000
--- a/src/drivers/i2c/wacom_ts/Kconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-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
deleted file mode 100644
index 9455099..0000000
--- a/src/drivers/i2c/wacom_ts/Makefile.inc
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100644
index 3c748d5..0000000
--- a/src/drivers/i2c/wacom_ts/chip.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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 WCOMNTN2_HID		"WCOMNTN2"
-#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
deleted file mode 100644
index ebc8883..0000000
--- a/src/drivers/i2c/wacom_ts/ts.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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
-};
diff --git a/src/mainboard/google/reef/Kconfig b/src/mainboard/google/reef/Kconfig
index edfdb7b..4e32b86 100644
--- a/src/mainboard/google/reef/Kconfig
+++ b/src/mainboard/google/reef/Kconfig
@@ -42,7 +42,7 @@ config DRIVERS_I2C_DA7219
 config DRIVERS_I2C_GENERIC
 	default y
 
-config DRIVERS_I2C_WACOM_TS
+config DRIVERS_I2C_WACOM
 	default y
 
 config DRIVERS_PS2_KEYBOARD
diff --git a/src/mainboard/google/reef/variants/pyro/devicetree.cb b/src/mainboard/google/reef/variants/pyro/devicetree.cb
index da893b1..d5745b4 100644
--- a/src/mainboard/google/reef/variants/pyro/devicetree.cb
+++ b/src/mainboard/google/reef/variants/pyro/devicetree.cb
@@ -180,7 +180,7 @@ chip soc/intel/apollolake
 			end
 		end	# - I2C 2
 		device pci 16.3 on
-			chip drivers/i2c/wacom_ts
+			chip drivers/i2c/wacom
 				register "generic" = "{
 					 .hid = WCOMNTN2_HID,
 					 .cid = PNP0C50_CID,



More information about the coreboot-gerrit mailing list