mfd: iqs62x: Do not change clock frequency during ATI
authorJeff LaBundy <jeff@labundy.com>
Mon, 18 Jan 2021 03:57:08 +0000 (21:57 -0600)
committerLee Jones <lee.jones@linaro.org>
Mon, 8 Feb 2021 13:54:38 +0000 (13:54 +0000)
commit6a8fac01dc1c6508dd7cab876170024070b71039
tree6b468f2dad8824cc9b059613f087afc79ece8487
parent02e550d5b706f034d24e7e46234eb1982f05a137
mfd: iqs62x: Do not change clock frequency during ATI

After a reset event, the device automatically triggers ATI at the
default core clock frequency (16 MHz). Soon afterward, the driver
loads firmware which may attempt to lower the frequency.

If this initial ATI cycle is still in progress when the frequency
is changed, however, the device incorrectly reports channels 0, 1
and 2 to be in a state of touch once ATI finally completes.

To solve this problem, wait until ATI is complete before lowering
the frequency. Because this particular ATI cycle occurs following
a reset event, its duration is predictable and a simple delay can
suffice.

Signed-off-by: Jeff LaBundy <jeff@labundy.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/iqs62x.c