• Patrick Rudolph's avatar
    hwmon: pmbus: Implement generic bus access delay · 21d9e601
    Patrick Rudolph authored
    Some drivers, like the max15301 or zl6100, are intentionally delaying
    SMBus communications, to prevent transmission errors. As this is necessary
    on additional PMBus compatible devices, implement a generic delay mechanism
    in the pmbus core.
    
    Introduces two delay settings in the pmbus_driver_info struct, one applies
    to every SMBus transaction and the other is for write transaction only.
    Once set by the driver the SMBus traffic, using the generic pmbus access
    helpers, is automatically delayed when necessary.
    
    The two settings are:
    access_delay:
      - Unit in microseconds
      - Stores the accessed timestamp after every SMBus access
      - Delays when necessary before the next SMBus access
    
    write_delay:
      - Unit in microseconds
      - Stores the written timestamp after a write SMBus access
      - Delays when necessary before the next SMBus access
    
    This allows to drop the custom delay code from the drivers and easily
    introduce this feature in additional pmbus drivers.
    Signed-off-by: default avatarPatrick Rudolph <patrick.rudolph@9elements.com>
    Message-ID: <20240902075319.585656-1-patrick.rudolph@9elements.com>
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    21d9e601
pmbus.h 16.4 KB