Re: How to setup Touchscreen IRQ mode?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux