Skip to content
  • Steve Twiss's avatar
    thermal: da9062/61: Thermal junction temperature monitoring driver · 608567aa
    Steve Twiss authored
    
    
    Add junction temperature monitoring supervisor device driver, compatible
    with the DA9062 and DA9061 PMICs. A MODULE_DEVICE_TABLE() macro is added.
    
    If the PMIC's internal junction temperature rises above T_WARN (125 degC)
    an interrupt is issued. This T_WARN level is defined as the
    THERMAL_TRIP_HOT trip-wire inside the device driver.
    
    The thermal triggering mechanism is interrupt based and happens when the
    temperature rises above a given threshold level. The component cannot
    return an exact temperature, it only has knowledge if the temperature is
    above or below a given threshold value. A status bit must be polled to
    detect when the temperature falls below that threshold level again. A
    kernel work queue is configured to repeatedly poll and detect when the
    temperature falls below this trip-wire, between 1 and 10 second intervals
    (defaulting at 3 seconds).
    
    This scheme is provided as an example. It would be expected that any
    final implementation will also include a notify() function and any of these
    settings could be altered to match the application where appropriate.
    
    When over-temperature is reached, the interrupt from the DA9061/2 will be
    repeatedly triggered. The IRQ is therefore disabled when the first
    over-temperature event happens and the status bit is polled using a
    work-queue until it becomes false.
    
    This strategy is designed to allow the periodic transmission of uevents
    (HOT trip point) as the first level of temperature supervision method. It
    is intended for non-invasive temperature control, where the necessary
    measures for cooling the system down are left to the host software. Once
    the temperature falls again, the IRQ is re-enabled so a new critical
    over-temperature event can be detected.
    
    Reviewed-by: default avatarLukasz Luba <lukasz.luba@arm.com>
    Signed-off-by: default avatarSteve Twiss <stwiss.opensource@diasemi.com>
    Signed-off-by: default avatarEduardo Valentin <edubezval@gmail.com>
    608567aa