hwmon: (amc6821) Add cooling device support
From: | João Paulo Gonçalves <jpaulo.silvagoncalves-AT-gmail.com> | |
To: | Jean Delvare <jdelvare-AT-suse.com>, Guenter Roeck <linux-AT-roeck-us.net>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Conor Dooley <conor+dt-AT-kernel.org>, Farouk Bouabid <farouk.bouabid-AT-cherry.de>, Quentin Schulz <quentin.schulz-AT-cherry.de> | |
Subject: | [PATCH v3 0/3] hwmon: (amc6821) Add cooling device support | |
Date: | Thu, 12 Jun 2025 14:28:07 -0300 | |
Message-ID: | <20250612-b4-amc6821-cooling-device-support-v3-0-360681a7652c@toradex.com> | |
Cc: | linux-hwmon-AT-vger.kernel.org, devicetree-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, João Paulo Gonçalves <joao.goncalves-AT-toradex.com> | |
Archive-link: | Article |
Add support for using the AMC6821 as a cooling device. The AMC6821 registers with the thermal framework only if the `cooling-levels` property is present in the fan device tree child node. If this property is present, the driver assumes the fan will operate in open-loop, and the kernel will control it directly. In this case, the driver will change the AMC6821 mode to manual (software DCY) and set the initial PWM duty cycle to the maximum fan cooling state level as defined in the DT. It is worth mentioning that the cooling device is registered on the child fan node, not on the fan controller node. Existing behavior is unchanged, so the AMC6821 can still be used without the thermal framework (hwmon only). Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> --- v3: - Fix using fan node after of_node_put() with scope based free - Add setting the pwm duty cycle to max fan cooling state level on initialization v2: https://lore.kernel.org/lkml/20250603-b4-amc6821-cooling-... - Remove devm_action on release and call of_node_put() manually - Change of_pwm_polarity to store resulting pwm polarity on driver private data v1: https://lore.kernel.org/lkml/20250530-b4-v1-amc6821-cooli... --- João Paulo Gonçalves (3): dt-bindings: hwmon: amc6821: Add cooling levels hwmon: (amc6821) Move reading fan data from OF to a function hwmon: (amc6821) Add cooling device support .../devicetree/bindings/hwmon/ti,amc6821.yaml | 6 + drivers/hwmon/amc6821.c | 130 +++++++++++++++++++-- 2 files changed, 127 insertions(+), 9 deletions(-) --- base-commit: b43674a549ed17319cb08ede9e0909ff6198ea70 change-id: 20250602-b4-amc6821-cooling-device-support-c03b0a899357 Best regards, -- João Paulo Gonçalves <joao.goncalves@toradex.com>