summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJeff LaBundy <jeff@labundy.com>2021-01-17 21:57:07 -0600
committerLee Jones <lee.jones@linaro.org>2021-02-08 13:54:36 +0000
commit02e550d5b706f034d24e7e46234eb1982f05a137 (patch)
treeb37411feeec0cd745281782f29516fa909e155b1 /lib
parenta3a06ea17437814f47691282d9d6f6bcf62a8a9e (diff)
downloadlinux-02e550d5b706f034d24e7e46234eb1982f05a137.tar.bz2
mfd: iqs62x: Do not poll during ATI
After loading firmware, the driver triggers ATI (calibration) with the newly loaded register configuration in place. Next, the driver polls a register field to ensure ATI completed in a timely fashion and that the device is ready to sense. However, communicating with the device over I2C while ATI is under- way may induce noise in the device and cause ATI to fail. As such, the vendor recommends not to poll the device during ATI. To solve this problem, let the device naturally signal to the host that ATI is complete by way of an interrupt. A completion prevents the sub-devices from being registered until this happens. The former logic that scaled ATI timeout and filter settling delay is not carried forward with the new implementation, as it produces overly conservative delays at lower clock rates. Instead, a single pair of delays that covers all cases is used. Signed-off-by: Jeff LaBundy <jeff@labundy.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions