[coreboot-gerrit] Patch set updated for coreboot: drivers/i2c: Use I2C HID driver for wacom devices

Furquan Shaikh (furquan@google.com) gerrit at coreboot.org
Sun Feb 19 10:52:03 CET 2017


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

-gerrit

commit af583379a5a3193af74bc6051853a0aa51024f15
Author: Furquan Shaikh <furquan at chromium.org>
Date:   Sun Feb 19 01:18:09 2017 -0800

    drivers/i2c: Use I2C HID driver for wacom devices
    
    Wacom I2C driver does the same thing as I2C HID driver, other than
    defining macros for Wacom HID. Instead of maintaining two separate
    drivers providing the same functionality, update all wacom devices to
    use generic I2C HID driver.
    
    BUG=None
    BRANCH=None
    TEST=Verified that ACPI nodes for wacom devices are unchanged.
    
    Change-Id: Ibb3226d1f3934f5c3c5d98b939756775d11b792c
    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                      | 60 ----------------------
 src/mainboard/google/eve/Kconfig                   |  1 -
 src/mainboard/google/eve/devicetree.cb             |  7 ++-
 src/mainboard/google/poppy/Kconfig                 |  2 +-
 src/mainboard/google/poppy/devicetree.cb           | 11 ++--
 src/mainboard/google/reef/Kconfig                  |  1 -
 .../google/reef/variants/baseboard/devicetree.cb   | 11 ++--
 .../google/reef/variants/pyro/devicetree.cb        | 25 ++++-----
 .../google/reef/variants/snappy/devicetree.cb      | 11 ++--
 src/mainboard/intel/leafhill/Kconfig               |  1 +
 src/mainboard/intel/leafhill/devicetree.cb         | 11 ++--
 14 files changed, 32 insertions(+), 145 deletions(-)

diff --git a/src/drivers/i2c/wacom/Kconfig b/src/drivers/i2c/wacom/Kconfig
deleted file mode 100644
index be2bf83..0000000
--- a/src/drivers/i2c/wacom/Kconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-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
deleted file mode 100644
index e8df2c6..0000000
--- a/src/drivers/i2c/wacom/Makefile.inc
+++ /dev/null
@@ -1 +0,0 @@
-ramstage-$(CONFIG_DRIVERS_I2C_WACOM) += wacom.c
diff --git a/src/drivers/i2c/wacom/chip.h b/src/drivers/i2c/wacom/chip.h
deleted file mode 100644
index fc75194..0000000
--- a/src/drivers/i2c/wacom/chip.h
+++ /dev/null
@@ -1,32 +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_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
deleted file mode 100644
index e6d1277..0000000
--- a/src/drivers/i2c/wacom/wacom.c
+++ /dev/null
@@ -1,60 +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_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)
-{
-	struct drivers_i2c_wacom_config *config = dev->chip_info;
-	i2c_generic_fill_ssdt(dev, &i2c_wacom_fill_dsm, &config->generic);
-}
-
-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/mainboard/google/eve/Kconfig b/src/mainboard/google/eve/Kconfig
index 2b66eb1..74d8b5b 100644
--- a/src/mainboard/google/eve/Kconfig
+++ b/src/mainboard/google/eve/Kconfig
@@ -6,7 +6,6 @@ config BOARD_SPECIFIC_OPTIONS
 	select BOARD_ROMSIZE_KB_16384
 	select DRIVERS_I2C_GENERIC
 	select DRIVERS_I2C_HID
-	select DRIVERS_I2C_WACOM
 	select DRIVERS_PS2_KEYBOARD
 	select DRIVERS_SPI_ACPI
 	select EC_GOOGLE_CHROMEEC
diff --git a/src/mainboard/google/eve/devicetree.cb b/src/mainboard/google/eve/devicetree.cb
index 3321565..85100fc 100644
--- a/src/mainboard/google/eve/devicetree.cb
+++ b/src/mainboard/google/eve/devicetree.cb
@@ -201,10 +201,9 @@ chip soc/intel/skylake
 		device pci 14.1 off end # USB xDCI (OTG)
 		device pci 14.2 on  end # Thermal Subsystem
 		device pci 15.0 on
-			chip drivers/i2c/wacom
-				register "generic.hid" = "WCOM50C1_HID"
-				register "generic.cid" = "PNP0C50_CID"
-				register "generic.desc" = "WCOM_DT_DESC"
+			chip drivers/i2c/hid
+				register "generic.hid" = ""WCOM50C1""
+				register "generic.desc" = ""WCOM Digitizer""
 				register "generic.irq" = "IRQ_LEVEL_LOW(GPP_E7_IRQ)"
 				register "hid_desc_reg_offset" = "0x1"
 				device i2c 0a on end
diff --git a/src/mainboard/google/poppy/Kconfig b/src/mainboard/google/poppy/Kconfig
index dc1be0a..cd30f26 100644
--- a/src/mainboard/google/poppy/Kconfig
+++ b/src/mainboard/google/poppy/Kconfig
@@ -5,7 +5,7 @@ config BOARD_SPECIFIC_OPTIONS
 	select BOARD_ID_AUTO
 	select BOARD_ROMSIZE_KB_16384
 	select DRIVERS_I2C_GENERIC
-	select DRIVERS_I2C_WACOM
+	select DRIVERS_I2C_HID
 	select EC_GOOGLE_CHROMEEC
 	select EC_GOOGLE_CHROMEEC_LPC
 	select HAVE_ACPI_RESUME
diff --git a/src/mainboard/google/poppy/devicetree.cb b/src/mainboard/google/poppy/devicetree.cb
index 72bb0b1..121174d 100644
--- a/src/mainboard/google/poppy/devicetree.cb
+++ b/src/mainboard/google/poppy/devicetree.cb
@@ -209,13 +209,10 @@ chip soc/intel/skylake
 		device pci 15.1 on  end # I2C #1
 		device pci 15.2 on  end # I2C #2
 		device pci 15.3 on
-			chip drivers/i2c/wacom
-				register "generic" = "{
-					.hid = WCOM50C1_HID,
-					.cid = PNP0C50_CID,
-					.desc = WCOM_DT_DESC,
-					.irq = IRQ_LEVEL_LOW(GPP_D1_IRQ),
-				}"
+			chip drivers/i2c/hid
+				register "generic.hid" = ""WCOM50C1""
+				register "generic.desc" = ""WCOM Digitizer""
+				register "generic.irq" = "IRQ_LEVEL_LOW(GPP_D1_IRQ)"
 				register "hid_desc_reg_offset" = "0x1"
 				device i2c 0x9 on end
 			end
diff --git a/src/mainboard/google/reef/Kconfig b/src/mainboard/google/reef/Kconfig
index 8612747..d099be4 100644
--- a/src/mainboard/google/reef/Kconfig
+++ b/src/mainboard/google/reef/Kconfig
@@ -7,7 +7,6 @@ config BOARD_GOOGLE_BASEBOARD_REEF
 	select DRIVERS_I2C_DA7219
 	select DRIVERS_I2C_GENERIC
 	select DRIVERS_I2C_HID
-	select DRIVERS_I2C_WACOM
 	select DRIVERS_PS2_KEYBOARD
 	select EC_GOOGLE_CHROMEEC
 	select EC_GOOGLE_CHROMEEC_LPC
diff --git a/src/mainboard/google/reef/variants/baseboard/devicetree.cb b/src/mainboard/google/reef/variants/baseboard/devicetree.cb
index 2ccf277..6e51838 100644
--- a/src/mainboard/google/reef/variants/baseboard/devicetree.cb
+++ b/src/mainboard/google/reef/variants/baseboard/devicetree.cb
@@ -196,13 +196,10 @@ chip soc/intel/apollolake
 			end
 		end # - I2C 4
 		device pci 17.1 on
-			chip drivers/i2c/wacom
-				register "generic" = "{
-					 .hid = WCOM50C1_HID,
-					 .cid = PNP0C50_CID,
-					 .desc = WCOM_DT_DESC,
-					 .irq = IRQ_LEVEL_LOW(GPIO_13_IRQ),
-				}"
+			chip drivers/i2c/hid
+				register "generic.hid" = ""WCOM50C1""
+				register "generic.desc" = ""WCOM Digitizer""
+				register "generic.irq" = "IRQ_LEVEL_LOW(GPIO_13_IRQ)"
 				register "hid_desc_reg_offset" = "0x1"
 				device i2c 0x9 on end
 			end
diff --git a/src/mainboard/google/reef/variants/pyro/devicetree.cb b/src/mainboard/google/reef/variants/pyro/devicetree.cb
index c36d19d..a01fa04 100644
--- a/src/mainboard/google/reef/variants/pyro/devicetree.cb
+++ b/src/mainboard/google/reef/variants/pyro/devicetree.cb
@@ -181,20 +181,17 @@ chip soc/intel/apollolake
 			end
 		end	# - I2C 2
 		device pci 16.3 on
-			chip drivers/i2c/wacom
-				register "generic" = "{
-					 .hid = WCOMNTN2_HID,
-					 .cid = PNP0C50_CID,
-					 .desc = WCOM_TS_DESC,
-					 .irq = IRQ_LEVEL_LOW(GPIO_21_IRQ),
-					 .probed = 1,
-					 .reset_gpio = ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_36),
-					 .reset_delay_ms = 20,
-					 .enable_gpio = ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_152),
-					 .enable_delay_ms = 1,
-					 .has_power_resource = 1,
-					 .disable_gpio_export_in_crs = 1,
-				}"
+			chip drivers/i2c/hid
+				register "generic.hid" = ""WCOMNTN2""
+				register "generic.desc" = ""WCOM Touchscreen""
+				register "generic.irq" = "IRQ_LEVEL_LOW(GPIO_21_IRQ)"
+				register "generic.probed" = "1"
+				register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_36)"
+				register "generic.reset_delay_ms" = "20"
+				register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_152)"
+				register "generic.enable_delay_ms" = "1"
+				register "generic.has_power_resource" = "1"
+				register "generic.disable_gpio_export_in_crs" = "1"
 				register "hid_desc_reg_offset" = "0x1"
 				device i2c 0xA on end
 			end
diff --git a/src/mainboard/google/reef/variants/snappy/devicetree.cb b/src/mainboard/google/reef/variants/snappy/devicetree.cb
index c83306d..8d9d307 100644
--- a/src/mainboard/google/reef/variants/snappy/devicetree.cb
+++ b/src/mainboard/google/reef/variants/snappy/devicetree.cb
@@ -210,13 +210,10 @@ chip soc/intel/apollolake
 			end
 		end # - I2C 4
 		device pci 17.1 on
-			chip drivers/i2c/wacom
-				register "generic" = "{
-					 .hid = WCOM50C1_HID,
-					 .cid = PNP0C50_CID,
-					 .desc = WCOM_DT_DESC,
-					 .irq = IRQ_LEVEL_LOW(GPIO_13_IRQ),
-				}"
+			chip drivers/i2c/hid
+				register "generic.hid" = ""WCOM50C1""
+				register "generic.desc" = ""WCOM Digitizer""
+				register "generic.irq" = "IRQ_LEVEL_LOW(GPIO_13_IRQ)"
 				register "hid_desc_reg_offset" = "0x1"
 				device i2c 0x9 on end
 			end
diff --git a/src/mainboard/intel/leafhill/Kconfig b/src/mainboard/intel/leafhill/Kconfig
index ded4d24..ddef0e7 100644
--- a/src/mainboard/intel/leafhill/Kconfig
+++ b/src/mainboard/intel/leafhill/Kconfig
@@ -4,6 +4,7 @@ config BOARD_SPECIFIC_OPTIONS
 	def_bool y
 	select SOC_INTEL_APOLLOLAKE
 	select BOARD_ROMSIZE_KB_16384
+	select DRIVERS_I2C_HID
 	select HAVE_ACPI_TABLES
 #	select HAVE_INTEL_FIRMWARE
 #	select HAVE_ME_BIN
diff --git a/src/mainboard/intel/leafhill/devicetree.cb b/src/mainboard/intel/leafhill/devicetree.cb
index 2ccf277..6e51838 100644
--- a/src/mainboard/intel/leafhill/devicetree.cb
+++ b/src/mainboard/intel/leafhill/devicetree.cb
@@ -196,13 +196,10 @@ chip soc/intel/apollolake
 			end
 		end # - I2C 4
 		device pci 17.1 on
-			chip drivers/i2c/wacom
-				register "generic" = "{
-					 .hid = WCOM50C1_HID,
-					 .cid = PNP0C50_CID,
-					 .desc = WCOM_DT_DESC,
-					 .irq = IRQ_LEVEL_LOW(GPIO_13_IRQ),
-				}"
+			chip drivers/i2c/hid
+				register "generic.hid" = ""WCOM50C1""
+				register "generic.desc" = ""WCOM Digitizer""
+				register "generic.irq" = "IRQ_LEVEL_LOW(GPIO_13_IRQ)"
 				register "hid_desc_reg_offset" = "0x1"
 				device i2c 0x9 on end
 			end



More information about the coreboot-gerrit mailing list