@@ -40,6 +40,16 @@ static struct lp855x_platform_data lenovo_lp8557_pdata = {
4040
4141/* Lenovo Yoga Book X90F / X90L's Android factory img has everything hardcoded */
4242
43+ static const struct property_entry lenovo_yb1_x90_wacom_props [] = {
44+ PROPERTY_ENTRY_U32 ("hid-descr-addr" , 0x0001 ),
45+ PROPERTY_ENTRY_U32 ("post-reset-deassert-delay-ms" , 150 ),
46+ { }
47+ };
48+
49+ static const struct software_node lenovo_yb1_x90_wacom_node = {
50+ .properties = lenovo_yb1_x90_wacom_props ,
51+ };
52+
4353/*
4454 * The HiDeep IST940E touchscreen comes up in I2C-HID mode. The native protocol
4555 * 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
8696 .trigger = ACPI_EDGE_SENSITIVE ,
8797 .polarity = ACPI_ACTIVE_LOW ,
8898 },
99+ }, {
100+ /* Wacom Digitizer in keyboard half */
101+ .board_info = {
102+ .type = "hid-over-i2c" ,
103+ .addr = 0x09 ,
104+ .dev_name = "wacom" ,
105+ .swnode = & lenovo_yb1_x90_wacom_node ,
106+ },
107+ .adapter_path = "\\_SB_.PCI0.I2C4" ,
108+ .irq_data = {
109+ .type = X86_ACPI_IRQ_TYPE_GPIOINT ,
110+ .chip = "INT33FF:01" ,
111+ .index = 49 ,
112+ .trigger = ACPI_LEVEL_SENSITIVE ,
113+ .polarity = ACPI_ACTIVE_LOW ,
114+ },
89115 }, {
90116 /* LP8557 Backlight controller */
91117 .board_info = {
@@ -131,9 +157,18 @@ static struct gpiod_lookup_table lenovo_yb1_x90_hideep_gpios = {
131157 },
132158};
133159
160+ static struct gpiod_lookup_table lenovo_yb1_x90_wacom_gpios = {
161+ .dev_id = "i2c-wacom" ,
162+ .table = {
163+ GPIO_LOOKUP ("INT33FF:00" , 82 , "reset" , GPIO_ACTIVE_LOW ),
164+ { }
165+ },
166+ };
167+
134168static struct gpiod_lookup_table * const lenovo_yb1_x90_gpios [] = {
135169 & lenovo_yb1_x90_hideep_gpios ,
136170 & lenovo_yb1_x90_goodix_gpios ,
171+ & lenovo_yb1_x90_wacom_gpios ,
137172 NULL
138173};
139174
0 commit comments