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@chromium.org>
Reviewed-on: https://review.coreboot.org/17341
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Furquan Shaikh 2016-11-09 10:52:12 -08:00 committed by Furquan Shaikh
parent 5a08fb2203
commit 73edd2b7c0
7 changed files with 23 additions and 22 deletions

View file

@ -1,3 +1,3 @@
config DRIVERS_I2C_WACOM_TS config DRIVERS_I2C_WACOM
bool bool
select DRIVERS_I2C_GENERIC select DRIVERS_I2C_GENERIC

View file

@ -0,0 +1 @@
ramstage-$(CONFIG_DRIVERS_I2C_WACOM) += wacom.c

View file

@ -13,8 +13,8 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#ifndef __I2C_WACOM_TS_CHIP_H__ #ifndef __I2C_WACOM_CHIP_H__
#define __I2C_WACOM_TS_CHIP_H__ #define __I2C_WACOM_CHIP_H__
#include <drivers/i2c/generic/chip.h> #include <drivers/i2c/generic/chip.h>
@ -22,10 +22,11 @@
#define WCOMNTN2_HID "WCOMNTN2" #define WCOMNTN2_HID "WCOMNTN2"
#define PNP0C50_CID "PNP0C50" #define PNP0C50_CID "PNP0C50"
#define WCOM_TS_DESC "WCOM Touchscreen" #define WCOM_TS_DESC "WCOM Touchscreen"
#define WCOM_DT_DESC "WCOM Digitizer"
struct drivers_i2c_wacom_ts_config { struct drivers_i2c_wacom_config {
struct drivers_i2c_generic_config generic; struct drivers_i2c_generic_config generic;
uint8_t hid_desc_reg_offset; uint8_t hid_desc_reg_offset;
}; };
#endif /* __I2C_WACOM_TS_CHIP_H__ */ #endif /* __I2C_WACOM_CHIP_H__ */

View file

@ -18,9 +18,9 @@
#include <stdint.h> #include <stdint.h>
#include "chip.h" #include "chip.h"
static void i2c_wacom_ts_fill_dsm(struct device *dev) static void i2c_wacom_fill_dsm(struct device *dev)
{ {
struct drivers_i2c_wacom_ts_config *config = dev->chip_info; struct drivers_i2c_wacom_config *config = dev->chip_info;
struct dsm_i2c_hid_config dsm_config = { struct dsm_i2c_hid_config dsm_config = {
.hid_desc_reg_offset = config->hid_desc_reg_offset, .hid_desc_reg_offset = config->hid_desc_reg_offset,
}; };
@ -28,32 +28,32 @@ static void i2c_wacom_ts_fill_dsm(struct device *dev)
acpigen_write_dsm_i2c_hid(&dsm_config); acpigen_write_dsm_i2c_hid(&dsm_config);
} }
static void i2c_wacom_ts_fill_ssdt_generator(struct device *dev) static void i2c_wacom_fill_ssdt_generator(struct device *dev)
{ {
i2c_generic_fill_ssdt(dev, &i2c_wacom_ts_fill_dsm); i2c_generic_fill_ssdt(dev, &i2c_wacom_fill_dsm);
} }
static const char *i2c_wacom_ts_acpi_name(struct device *dev) static const char *i2c_wacom_acpi_name(struct device *dev)
{ {
return "WCTS"; return "WCOM";
} }
static struct device_operations i2c_wacom_ts_ops = { static struct device_operations i2c_wacom_ops = {
.read_resources = DEVICE_NOOP, .read_resources = DEVICE_NOOP,
.set_resources = DEVICE_NOOP, .set_resources = DEVICE_NOOP,
.enable_resources = DEVICE_NOOP, .enable_resources = DEVICE_NOOP,
#if IS_ENABLED(CONFIG_HAVE_ACPI_TABLES) #if IS_ENABLED(CONFIG_HAVE_ACPI_TABLES)
.acpi_name = &i2c_wacom_ts_acpi_name, .acpi_name = &i2c_wacom_acpi_name,
.acpi_fill_ssdt_generator = &i2c_wacom_ts_fill_ssdt_generator, .acpi_fill_ssdt_generator = &i2c_wacom_fill_ssdt_generator,
#endif #endif
}; };
static void i2c_wacom_ts_enable(struct device *dev) static void i2c_wacom_enable(struct device *dev)
{ {
dev->ops = &i2c_wacom_ts_ops; dev->ops = &i2c_wacom_ops;
} }
struct chip_operations drivers_i2c_wacom_ts_ops = { struct chip_operations drivers_i2c_wacom_ops = {
CHIP_NAME("Wacom Touchscreen Device") CHIP_NAME("Wacom I2C Device")
.enable_dev = &i2c_wacom_ts_enable .enable_dev = &i2c_wacom_enable
}; };

View file

@ -1 +0,0 @@
ramstage-$(CONFIG_DRIVERS_I2C_WACOM_TS) += ts.c

View file

@ -42,7 +42,7 @@ config DRIVERS_I2C_DA7219
config DRIVERS_I2C_GENERIC config DRIVERS_I2C_GENERIC
default y default y
config DRIVERS_I2C_WACOM_TS config DRIVERS_I2C_WACOM
default y default y
config DRIVERS_PS2_KEYBOARD config DRIVERS_PS2_KEYBOARD

View file

@ -180,7 +180,7 @@ chip soc/intel/apollolake
end end
end # - I2C 2 end # - I2C 2
device pci 16.3 on device pci 16.3 on
chip drivers/i2c/wacom_ts chip drivers/i2c/wacom
register "generic" = "{ register "generic" = "{
.hid = WCOMNTN2_HID, .hid = WCOMNTN2_HID,
.cid = PNP0C50_CID, .cid = PNP0C50_CID,