Re: [PATCH v3 4/6] hwmon: (lm63) Add Sensylink CTF2301 support
Guenter Roeck <[email protected]>
| Newsgroups | org.infradead.lists.linux-riscv,dev.linux.lists.spacemit,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-doc,org.kernel.vger.linux-hwmon,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Aug 05, 2026 at 02:00:54AM -0700, Troy Mitchell wrote: > Add Sensylink CTF2301 support to the LM63 driver. CTF2301 follows > the LM63-style temperature, tachometer, and PWM register layout, > while using a 12-bit local temperature register and requiring the > ALERT/TACH pin to be configured for tachometer input. > > Register an optional thermal cooling device when the device tree > node provides #cooling-cells, allowing thermal zones to control > the fan through the existing PWM path without changing behavior > for existing LM63-family users. > > Signed-off-by: Troy Mitchell <[email protected]> > --- > Documentation/hwmon/lm63.rst | 22 +++ > drivers/hwmon/Kconfig | 8 +- > drivers/hwmon/lm63.c | 414 +++++++++++++++++++++++++++++++++++-------- > 3 files changed, 366 insertions(+), 78 deletions(-) > > diff --git a/Documentation/hwmon/lm63.rst b/Documentation/hwmon/lm63.rst > index 9e27367d7405..c40bd0dfe591 100644 > --- a/Documentation/hwmon/lm63.rst > +++ b/Documentation/hwmon/lm63.rst > @@ -33,6 +33,16 @@ Supported chips: > > http://www.national.com/pf/LM/LM96163.html > > + * Sensylink CTF2301 > + > + Prefix: 'ctf2301' > + > + Addresses scanned: none > + > + Datasheet: https://www.sensylink.com/upload/1/net.sensylink.portal/1689557281035.pdf > + > + Register description: https://github.com/TroyMitchell911/ctf2301-datasheet > + > > Author: Jean Delvare <[email protected]> > > @@ -62,6 +72,8 @@ value have to be masked out. The value is still 16 bit in width. > > All temperature values are given in degrees Celsius. Resolution is 1.0 > degree for the local temperature, 0.125 degree for the remote temperature. > +The CTF2301 local temperature input and limit have a resolution of 0.0625 > +degree. > > The fan speed is measured using a tachometer. Contrary to most chips which > store the value in an 8-bit register and have a selectable clock divider > @@ -93,3 +105,13 @@ support these GPIO lines at present. > The LM96163 is an enhanced version of LM63 with improved temperature accuracy > and better PWM resolution. For LM96163, the external temperature sensor type is > configurable as CPU embedded diode(1) or 3904 transistor(2). > + > +The CTF2301 is register-compatible with the LM63 family and provides 12 fan > +control lookup table entries. It supports 8-bit PWM resolution when configured > +for a 22.5 kHz PWM frequency. > + > +Device tree nodes may declare ``#cooling-cells`` to register the fan controller > +with the thermal framework. The cooling state is mapped to the existing > +``pwm1`` range from 0 to 255. The driver keeps the current automatic or manual > +fan control mode during probe and switches to manual control when the thermal > +framework first requests a cooling state. > diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig > index 2bfbcc033d59..abb1af8664fb 100644 > --- a/drivers/hwmon/Kconfig > +++ b/drivers/hwmon/Kconfig > @@ -1501,10 +1501,10 @@ config SENSORS_LM63 > depends on I2C This seems to be missing the THERMAL dependency as suggested by Sashiko. ... > -enum chips { lm63, lm64, lm96163 }; > +enum chips { lm63, lm64, lm96163, ctf2301 }; Alphabetic order, please. > + if (data->kind == ctf2301) { > + msb = i2c_smbus_read_byte_data(client, > + LM63_REG_LOCAL_TEMP); > + lsb = i2c_smbus_read_byte_data(client, > + CTF2301_REG_LOCAL_TEMP_LSB); > + if (msb >= 0 && lsb >= 0) { > + data->temp8[0] = msb; Why keep the assignments to data->temp8[0] and data->temp8[1] ? Thanks, Guenter _______________________________________________ linux-riscv mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-riscv