1. 04 Feb, 2023 8 commits
  2. 30 Jan, 2023 12 commits
  3. 27 Jan, 2023 18 commits
  4. 20 Jan, 2023 1 commit
  5. 11 Jan, 2023 1 commit
    • Jeff LaBundy's avatar
      Input: iqs269a - do not poll during ATI · b08134eb
      Jeff LaBundy authored
      After initial start-up, 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 device from successfully probing until this happens.
      
      As an added benefit, initial switch states are now reported in the
      interrupt handler at the same time ATI status is checked. As such,
      duplicate code that reports initial switch states has been removed
      from iqs269_input_init().
      
      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 the lower clock rate.
      
      Rather, a single timeout that covers both clock rates is used. The
      filter settling delay does not happen to be necessary and has been
      removed as well.
      
      Fixes: 04e49867 ("Input: add support for Azoteq IQS269A")
      Signed-off-by: default avatarJeff LaBundy <jeff@labundy.com>
      Reviewed-by: default avatarMattijs Korpershoek <mkorpershoek@baylibre.com>
      Link: https://lore.kernel.org/r/Y7RtB2T7AF9rYMjK@nixie71Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      b08134eb