[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8dbed631-62b6-1802-8f4e-7141b1a91a56@roeck-us.net>
Date: Wed, 15 Mar 2023 08:36:13 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: phinex <phinex@...ltek.com>, jdelvare@...e.com
Cc: linux-hwmon@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] hwmon: drivetemp: support to be a platform driver for
thermal_of
On 3/15/23 05:16, phinex wrote:
> Support thermal zone so that we can just rely on dts to describe a
> thermal zone and do the cooling operations.
>
> You can define a comptible string "drivetemp,hdd-sensors" to enable
> this, such as
>
> sata_port0: sata-port@0 {
> compatible = "drivetemp,hdd-sensors";
> #thermal-sensor-cells = <0>;
> }
>
> Then define a thermal with this sensor to get it work.
>
> hdd_thermal: hdd-thermal {
> thermal-sensors = <&sata_port0>;
> }
>
> In most of the SoC systems, using dts to handle cooling is common.
> This can eliminate the usage of user space application to check
> the value exported in hwmon and then through sysfs to cooling.
>
> Signed-off-by: phinex <phinex@...ltek.com>
>
> ---
> .../bindings/hwmon/drivetemp,hdd-sensors.yaml | 35 ++++++
> drivers/hwmon/drivetemp.c | 102 +++++++++++++++++-
> 2 files changed, 133 insertions(+), 4 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/hwmon/drivetemp,hdd-sensors.yaml
>
> diff --git a/Documentation/devicetree/bindings/hwmon/drivetemp,hdd-sensors.yaml b/Documentation/devicetree/bindings/hwmon/drivetemp,hdd-sensors.yaml
> new file mode 100644
> index 000000000000..939d7a923e94
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/drivetemp,hdd-sensors.yaml
> @@ -0,0 +1,35 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/hwmon/drivetemp,hdd-sensors.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Drivetemp Temperature Monitor
> +
> +maintainers:
> + - Phinex <phinex@...ltek.com>
> +
> +description: |
> + Drivetemp Temperature Monitor that support a single thermal zone
> + This single thermal zone can support multiple hard drives,
> + it uses maximal temperature of these hard drivers as its temp value.
> +
> +properties:
> + compatible:
> + enum:
> + - drivetemp,hdd-sensors
> +
> + '#thermal-sensor-cells':
> + const: 0
> +
> +required:
> + - compatible
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + sata_port0: sata-port@0 {
> + ompatible = "drivetemp,hdd-sensors";
> + #thermal-sensor-cells = <0>;
> + };
> diff --git a/drivers/hwmon/drivetemp.c b/drivers/hwmon/drivetemp.c
> index 1eb37106a220..9a60315d732c 100644
> --- a/drivers/hwmon/drivetemp.c
> +++ b/drivers/hwmon/drivetemp.c
> @@ -107,6 +107,14 @@
> #include <scsi/scsi_device.h>
> #include <scsi/scsi_driver.h>
> #include <scsi/scsi_proto.h>
> +#include <linux/of.h>
> +#include <linux/platform_device.h>
> +#include <linux/thermal.h>
> +#include <linux/libata.h>
> +
> +/*A single thermal_zone for all HDD sensors */
> +static struct thermal_zone_device *tz;
This is conceptually wrong. It returns the maximum temperature from all drives,
not the temperature from a single drive.
This is not much different from collecting all temperatures from all sensors
in the system and declaring the maximum of those as single thermal zone.
If anything, each drive would have to reflect a thermal zone. The big question
is how to determine the associated devicetree property.
Also, essentially your patch claims that arch/arm/boot/dts/kirkwood-nsa310s.dts
doesn't work and no one ever noticed. I would like to see that confirmed.
Thanks,
Guenter
Powered by blists - more mailing lists