Re: [PATCH 00/15] atmel_mxt_ts - device tree, bootloader, etc

From: Stephen Warren
Date: Wed Jul 23 2014 - 17:39:34 EST


On 07/23/2014 02:29 PM, Dmitry Torokhov wrote:
> On Wed, Jul 23, 2014 at 11:22:54AM -0600, Stephen Warren wrote:
>> On 07/23/2014 09:30 AM, Nick Dyer wrote:
>>> On 22/07/14 21:34, Stephen Warren wrote:
>>>> Unfortunately, I still can't get these to work on my system.
>>>>
>>>> Per your "Re: atmel_mxt_ts: defaulting irqflags to
>>>> IRQF_TRIGGER_FALLING", I set up the IRQ type in the Tegra DT file, and
>>>> then applied this series on top of next-20140721. The driver appears to
>>>> initialize OK, but neither X nor evtest see any events from the device.
>>>> The IRQ count in /proc/interrupts doesn't increase when I touch the
>>>> touchpad, but does when I press it hard enough to trigger the physical
>>>> button.
>>>
>>> You're using the T19/GPIO support, then? In which case, there appears to be
>>> something wrong on the touch controller rather than the driver itself.
>>
>> I assume I'm using T19, since there's a physical click action on the
>> touchpad along with the normal touch detection.
>>
>>>> A boot log with debug enabled follows. No additional kernel log
>>>> messages are generated by touches or clicks.
>>>
>>> Perhaps I should add some debug to mxt_input_button() - currently it will
>>> not debug the fact that a click is received, although I guess that you will
>>> see it in getevent.
>>>
>>>> Do you have any idea what I should try?
>>>
>>> I am suspicious that it may be that the power sequencing isn't quite right,
>>> which sometimes leads to parts of the chip not working properly (eg GPIO
>>> buttons working, but no touch).
>>>
>>> The patch "use deep sleep when stopped" removes the reset on every resume
>>> (which would otherwise kill resume performance). But that reset tends to
>>> paper over a device which hasn't been powered up properly in the first place.
>>>
>>> Could you try issuing a manual reset and see if the touch starts working? I
>>> would normally do this by compiling our obp-utils software from
>>> https://github.com/atmel-maxtouch/obp-utils using ndk-build and doing
>>> something like:
>>>
>>> mxt-app -d i2c-dev:1-004b --reset
>>>
>>> (you need CONFIG_I2C_DEBUG to make /dev/i2c-1 appear)
>>
>> That didn't make any difference.
>>
>> I also tried the tool interactively. the "Display raw (M)essages" option
>> never displayed anything, and the couple of self-tests I tried just
>> timed out. "Read (I)nfo block" did display some values that seemed like
>> they might be correct rather than random data.
>>
>> Interestingly though, I did bisect the series and found "Input:
>> atmel_mxt_ts - use deep sleep mode when stopped" causes the problem. If
>> I apply the whole series and revert that one patch, the touchpad works
>> for mouse movement, but interestingly not for taps or physical clicks.
>
> I ended up applying everything but the "deep sleep" patch. I wonder if
> you have any keys defined to indicate that it is a touchpad and activate
> tap-to-click support in userspace.

Yes, I have one GPIO defined in the keymap, for the physical
push-to-click button:

> trackpad@4b {
> compatible = "atmel,maxtouch";
> reg = <0x4b>;
> interrupt-parent = <&gpio>;
> interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_LOW>;
> linux,gpio-keymap = <0 0 0 BTN_LEFT>;
> };

(at some point long ago, this did work fine, just by adding my DT
binding/parsing patch on top of what was in linux-next).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/