1. 08 Oct, 2020 7 commits
  2. 06 Oct, 2020 1 commit
  3. 03 Oct, 2020 19 commits
  4. 01 Oct, 2020 6 commits
  5. 30 Sep, 2020 1 commit
    • Lucas Stach's avatar
      power: supply: ucs1002: fix some health status issues · 81196e2e
      Lucas Stach authored
      Some fault events like the over-current condition will get resolved
      by the hardware, by e.g. disabling the port. As the status in the
      interrupt status register is cleared on read when the fault is resolved,
      the sysfs health property will only contain the correct health status
      for the first time it is read after such an event, even if the actual
      fault condition (like a VBUS short) still persists. To reflect this
      properly in the property we cache the last health status and only update
      the cache when a actual change happens, i.e. the ERR bit in the status
      register flips, as this one properly reflects a continued fault condition.
      
      The ALERT pin however, is not driven by the ERR status, but by the actual
      fault status, so the pin will change back to it's default state when the
      hardware has automatically resolved the fault by cutting the power. Thus
      we never get an IRQ when the actual fault condition has been resolved and
      the ERR status bit has been cleared in auto-recovery mode. To get this
      information we need to poll the interrupt status register after some time
      to see if the fault is gone and update our cache in that case.
      
      To avoid any additional locking, we handle both paths (IRQ firing and
      delayed polling) through the same single-threaded delayed work.
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
      81196e2e
  6. 29 Sep, 2020 6 commits