Commit 95b829f8 authored by Hans de Goede's avatar Hans de Goede

platform/x86: x86-android-tablets: Add Wacom digitizer info for Lenovo Yoga Book

The Lenovo Yoga Book has a wacom digitizer in its keyboard half,
add the necessary info to instantiate an i2c_client for the digitizer.
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20230416212841.311152-2-hdegoede@redhat.com
parent 02377e98
...@@ -40,6 +40,16 @@ static struct lp855x_platform_data lenovo_lp8557_pdata = { ...@@ -40,6 +40,16 @@ static struct lp855x_platform_data lenovo_lp8557_pdata = {
/* Lenovo Yoga Book X90F / X90L's Android factory img has everything hardcoded */ /* Lenovo Yoga Book X90F / X90L's Android factory img has everything hardcoded */
static const struct property_entry lenovo_yb1_x90_wacom_props[] = {
PROPERTY_ENTRY_U32("hid-descr-addr", 0x0001),
PROPERTY_ENTRY_U32("post-reset-deassert-delay-ms", 150),
{ }
};
static const struct software_node lenovo_yb1_x90_wacom_node = {
.properties = lenovo_yb1_x90_wacom_props,
};
/* /*
* The HiDeep IST940E touchscreen comes up in I2C-HID mode. The native protocol * The HiDeep IST940E touchscreen comes up in I2C-HID mode. The native protocol
* reports ABS_MT_PRESSURE and ABS_MT_TOUCH_MAJOR which are not reported in HID * reports ABS_MT_PRESSURE and ABS_MT_TOUCH_MAJOR which are not reported in HID
...@@ -86,6 +96,22 @@ static const struct x86_i2c_client_info lenovo_yb1_x90_i2c_clients[] __initconst ...@@ -86,6 +96,22 @@ static const struct x86_i2c_client_info lenovo_yb1_x90_i2c_clients[] __initconst
.trigger = ACPI_EDGE_SENSITIVE, .trigger = ACPI_EDGE_SENSITIVE,
.polarity = ACPI_ACTIVE_LOW, .polarity = ACPI_ACTIVE_LOW,
}, },
}, {
/* Wacom Digitizer in keyboard half */
.board_info = {
.type = "hid-over-i2c",
.addr = 0x09,
.dev_name = "wacom",
.swnode = &lenovo_yb1_x90_wacom_node,
},
.adapter_path = "\\_SB_.PCI0.I2C4",
.irq_data = {
.type = X86_ACPI_IRQ_TYPE_GPIOINT,
.chip = "INT33FF:01",
.index = 49,
.trigger = ACPI_LEVEL_SENSITIVE,
.polarity = ACPI_ACTIVE_LOW,
},
}, { }, {
/* LP8557 Backlight controller */ /* LP8557 Backlight controller */
.board_info = { .board_info = {
...@@ -131,9 +157,18 @@ static struct gpiod_lookup_table lenovo_yb1_x90_hideep_gpios = { ...@@ -131,9 +157,18 @@ static struct gpiod_lookup_table lenovo_yb1_x90_hideep_gpios = {
}, },
}; };
static struct gpiod_lookup_table lenovo_yb1_x90_wacom_gpios = {
.dev_id = "i2c-wacom",
.table = {
GPIO_LOOKUP("INT33FF:00", 82, "reset", GPIO_ACTIVE_LOW),
{ }
},
};
static struct gpiod_lookup_table * const lenovo_yb1_x90_gpios[] = { static struct gpiod_lookup_table * const lenovo_yb1_x90_gpios[] = {
&lenovo_yb1_x90_hideep_gpios, &lenovo_yb1_x90_hideep_gpios,
&lenovo_yb1_x90_goodix_gpios, &lenovo_yb1_x90_goodix_gpios,
&lenovo_yb1_x90_wacom_gpios,
NULL NULL
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment