• Daniel Lezcano's avatar
    dt-bindings: thermal: Add the idle cooling device · 3b25846f
    Daniel Lezcano authored
    Some devices are not able to cool down by reducing their voltage /
    frequency because it could be not available or the system does not
    allow voltage scaling. In this configuration, it is not possible to
    use this strategy and the idle injection cooling device can be used
    instead.
    
    One idle cooling device is now present for the CPU as implemented by
    the combination of the idle injection framework belonging to the power
    capping framework and the thermal cooling device. The missing part is
    the DT binding providing a way to describe how the cooling device will
    work on the system.
    
    A first iteration was done by making the cooling device to point to
    the idle state. Unfortunately it does not make sense because it would
    need to duplicate the idle state description for each CPU in order to
    have a different phandle and make the thermal internal framework
    happy.
    
    It was proposed to add an cooling-cells to <3>, unfortunately the
    thermal framework is expecting a value of <2> as stated by the
    documentation and it is not possible from the cooling device generic
    code to loop this third value to the back end cooling device.
    
    Another proposal was to add a child 'thermal-idle' node as the SCMI
    does. This approach allows to have a self-contained configuration for
    the idle cooling device without colliding with the cpufreq cooling
    device which is based on the CPU node. In addition, it allows to have
    the cpufreq cooling device and the idle cooling device to co-exist
    together as shown in the example.
    Reviewed-by: default avatarRob Herring <robh@kernel.org>
    Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
    Reviewed-by: default avatarAmit Kucheria <amit.kucheria@linaro.org>
    Link: https://lore.kernel.org/r/20200429103644.5492-2-daniel.lezcano@linaro.org
    3b25846f
thermal-idle.yaml 4.96 KB