On Thu, 2014-12-18 at 11:13 +0100, Lukasz Majewski wrote:
> Several new properties to allow PWM fan working as a cooling device have been
> combined into this single commit.
> 
> Signed-off-by: Lukasz Majewski <[email protected]>
> ---
>  .../devicetree/bindings/hwmon/pwm-fan.txt          | 28 
> ++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/hwmon/pwm-fan.txt 
> b/Documentation/devicetree/bindings/hwmon/pwm-fan.txt
> index 610757c..3877810 100644
> --- a/Documentation/devicetree/bindings/hwmon/pwm-fan.txt
> +++ b/Documentation/devicetree/bindings/hwmon/pwm-fan.txt
> @@ -3,10 +3,38 @@ Bindings for a fan connected to the PWM lines
>  Required properties:
>  - compatible : "pwm-fan"
>  - pwms               : the PWM that is used to control the PWM fan
> +- cooling-pwm-values      : PWM duty cycle values relative to
> +                         cooling-max-pwm-value correspondig to
> +                         proper cooling states
> +- default-pulse-width     : Property specifying default pulse width for FAN
> +                         at system boot (zero to disable FAN on boot).
> +                         Allowed range is 0 to 255

The 0..255 range seems somewhat random. Would be nicer to either use the
approach of pwm-backlight (iotw, have the range go from the first to the
last entry of cooling-pwm-values) or simply have be the duty lenght in
NS as entries instead of the current indirection.

I assumed your cooling-pwm-values are a [0..255] range as well instead
of nanoseconds (would be good to make that more clear)?

Also having more consistent names would be nice.. To take pwm-backlight
as inspiration, cooling-levels and default-cooling-level would make it
more clear the second property picks a default setting from the first
one.

One thing i do wonder, is having an explicit default setting useful?
Should it not default to maximum cooling unless otherwise configured by
either the thermal framework or sysfs ?


> +Thorough description of the following bindings:
> +             cooling-min-state = <0>;
> +             cooling-max-state = <3>;
> +             #cooling-cells = <2>;
> +             thermal-zone {
> +                     cpu_thermal: cpu-thermal {
> +                     cooling-maps {
> +                             map0 {
> +                                  trip = <&cpu_alert1>;
> +                                  cooling-device = <&fan0 0 1>;
> +                             };
> +                     };
> +             };
> +
> +for PWM FAN used as cooling device can be found at:
> +./Documentation/devicetree/bindings/thermal/thermal.txt
>  
>  Example:
>       pwm-fan {
>               compatible = "pwm-fan";
>               status = "okay";
>               pwms = <&pwm 0 10000 0>;
> +             cooling-min-state = <0>;
> +             cooling-max-state = <3>;
> +             #cooling-cells = <2>;
> +             cooling-pwm-values = <0 102 170 255>;
> +             default-pulse-width = <0>;
>       };


Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to