On Wed, Mar 30, 2016 at 12:03:13AM +0000, sergk sergk2mail wrote: > Hi Mika, > full acpidump of the machine is located here > https://gitlab.com/SergK/icn8528/blob/master/DSDT/dsdt.dsl OK, so there is only one touchscreen device and it has _STA method looking like this: Method (_STA, 0, NotSerialized) // _STA: Status { If ((OSSL & 0x80)) { Return (Zero) } My guess is that that OSSL variable tells if the machine is in Android or Windows mode or something like that. In your case it returns zero here. > >From Android: > "What does 'ls -l /sys/bus/i2c/devices' show under android?" > 1) sysi2cdev /sys/bus/i2c/devices > https://gitlab.com/SergK/icn8528/blob/master/Androiddata/sysi2cdev And this explains why Android works. It initializes the I2C devices directly from a board file. So what you are doing probably works but instead of hardcoding in the driver you can fill i2c_board_info from "platform specific" files like for example here: arch/x86/platform/intel-mid/device_libs/platform_mpu3050.c Translating the _CRS from ACPI TCS5 device it might look like: static const struct i2c_hid_platform_data pdata = { .hid_descriptor_address = 3, // from _DSM }; static const struct i2c_board_info my_board_info[] = { { I2C_BOARD_INFO("hid", 0x30"), .irq = 0x44, .platform_data = &pdata, }, }; static int __init my_init(void) { i2c_register_board_info(3, my_board_info, ARRAY_SIZE(my_board_info)); } arch_initcall(my_init); This should create new i2c device for i2c-hid.c. -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html