hwmon: (lm63) Add Sensylink CTF2301 support
Subsystems (5)
v5 cover hwmon: (lm63) Add Sensylink CTF2301 support
Sensylink CTF2301 is a system-level thermal management solution chip.
The CTF2301 is an I2C/SMBus compatible device featuring:
- One local temperature sensor with +/-0.5 degree C accuracy and
0.0625 degree C resolution.
- One remote temperature sensor for external diode-connected transistors, offering +/-1 degree C accuracy and 0.125 degree C resolution (temperature range: -40 degree C to +125 degree C).
- An integrated PWM fan controller capable of operating in two modes:
1. Direct-DCY: Open-loop direct duty cycle control.
2. Auto-Temp: Closed-loop automatic fan speed control based on measured temperature.
- A 1-channel fan speed monitor (TACH input) for RPM measurement.
As Guenter pointed out on v1, the CTF2301 register map is a near match for the LM63/LM96163 family (local and remote temperature, tachometer and PWM fan control), so this version drops the standalone ctf2301 driver and instead adds CTF2301 as a new chip type in the existing lm63 driver. This reuses the shared temperature, limit, alarm and PWM handling instead of duplicating it.
The CTF2301-specific differences are handled on top of lm63: 12-bit local temperature input and high-limit values, nine conversion rates, 12 fan-control lookup table entries, and optional 22.5 kHz high-resolution PWM. When no IRQ is described, the shared ALERT/TACH pin is configured as a tachometer input. The LM63 family can also register as a thermal cooling device when the device tree provides the #cooling-cells property.
Tested on a SpacemiT K3 CoM260 by booting an initramfs and verifying the CTF2301 probe. Temperature, tachometer, PWM, and conversion-rate behavior were checked against direct I2C register accesses and the datasheet.
Datasheet:
https://www.sensylink.com/upload/1/net.sensylink.portal/1689557281035.pdf
Register description:
https://github.com/TroyMitchell911/ctf2301-datasheet
---
Changes in v5:
- Quantize CTF2301 12-bit local-temperature limit writes to the
0.0625 degree C hardware resolution before updating the cache, so immediate reads remain consistent after a hardware refresh.
- Link to v4: https://patch.msgid.link/[email protected]
Changes in v4:
- Rebase onto v7.3-rc1, which includes the SpacemiT I2C timing prerequisite, and remove the obsolete dependency note.
- Do not add the SENSORS_LM63 THERMAL dependency suggested on v3 because CONFIG_THERMAL is boolean and v7.3-rc1 removes such tautological expressions.
- Preserve the upstream five-bit PWM frequency multiplier mask in the LM63 initialization error-handling path.
- Sort the chip type enum and remove redundant CTF2301 8-bit local temperature cache updates.
- Serialize CTF2301 12-bit local temperature cache reads.
- Keep PWM configuration caches synchronized after partial I2C write failures.
- Override the CoM260 I2C6 pin configuration through &i2c6_1_cfg,
as suggested by Yixun.
- Add Krzysztof's Acked-by and Reviewed-by tags.
- Link to v3: https://patch.msgid.link/[email protected]
Changes in v3:
- Add the Sensylink website link to the vendor-prefix commit.
- Preserve the optional interrupt from the trivial-devices binding.
- Explain in the commit message of patch 3/6 why CTF2301 cannot use national,lm63 as a fallback compatible.
- Check both bytes of CTF2301 local temperature values before caching them.
- Use the schema-valid 25 mA drive strength for the K3 I2C6 pins.
- Link to v2: https://patch.msgid.link/[email protected]
Changes in v2:
- Replace the standalone CTF2301 driver with a new lm63 chip type, as suggested by Guenter, reusing the existing temperature, limit, alarm, tachometer, PWM, and automatic fan-control paths.
- Add the temperature thresholds, alarms, and automatic fan-control lookup table support which were missing from the v1 driver.
- Handle CTF2301-specific 12-bit local temperature values, nine conversion rates, 12 lookup table entries, shared ALERT/TACH pin, and optional 22.5 kHz high-resolution PWM.
- Propagate SMBus failures from lm63 initialization and write paths.
- Add optional thermal cooling-device support for the LM63 family using the existing manual PWM control path.
- Move the National LM63-family compatibles from trivial-devices.yaml to a dedicated binding which permits #cooling-cells.
- Add CTF2301 to the LM63-family binding instead of keeping the standalone schema from v1. Do not declare #cooling-cells on K3 CoM260 yet because the board has no thermal consumer.
- Fix the binding errors reported by Rob by using a plain compatible string and wrapping the description.
- Document CTF2301 support in the lm63 hwmon documentation and provide the detailed register description used for review.
- Add the K3 CoM260 I2C6 pinctrl state and CTF2301 device node for hardware testing.
- Link to v1: https://lore.kernel.org/r/[email protected]
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: Conor Dooley <[email protected]>
To: Guenter Roeck <[email protected]>
To: Paul Walmsley <[email protected]>
To: Palmer Dabbelt <[email protected]>
To: Albert Ou <[email protected]>
To: Alexandre Ghiti <[email protected]>
To: Yixun Lan <[email protected]>
To: Jonathan Corbet <[email protected]>
To: Shuah Khan <[email protected]>
To: Randy Dunlap <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
---
Troy Mitchell (6):
dt-bindings: vendor-prefixes: Add Sensylink
dt-bindings: hwmon: Move LM63 family to a dedicated binding
dt-bindings: hwmon: Add Sensylink CTF2301
hwmon: (lm63) Add Sensylink CTF2301 support
riscv: dts: spacemit: Add K3 I2C6 pinctrl state
riscv: dts: spacemit: Add CTF2301 on K3 CoM260
.../devicetree/bindings/hwmon/national,lm63.yaml | 55 +++ .../devicetree/bindings/trivial-devices.yaml | 6 - .../devicetree/bindings/vendor-prefixes.yaml | 2 + Documentation/hwmon/lm63.rst | 22 ++ arch/riscv/boot/dts/spacemit/k3-com260.dtsi | 17 + arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi | 11 + drivers/hwmon/Kconfig | 8 +- drivers/hwmon/lm63.c | 426 +++++++++++++++++---- 8 files changed, 462 insertions(+), 85 deletions(-)
---
base-commit: cee9395acd8043be0644b25c34bfa86623f2b935
change-id: 20250916-ctl2301-0416b073c280
Best regards,
Signature · 1 line
Troy Mitchell <[email protected]>
PATCH v5 1/6 dt-bindings: vendor-prefixes: Add Sensylink
Add the vendor prefix for Sensylink Microelectronics.
--- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/vendor-prefixes.yaml +2 -0
@@ -1495,6 +1495,8 @@ patternProperties: description: Sensirion AG "^sensortek,.*": description: Sensortek Technology Corporation + "^sensylink,.*": + description: Sensylink Microelectronics Technology Co., Ltd. "^sercomm,.*": description: Sercomm (Suzhou) Corporation "^sff,.*":
Signature · 1 line
2.55.0
[email protected]
AI reviewRe: [PATCH v5 1/6] dt-bindings: vendor-prefixes: Add Sensylink
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 5 lines
Add the vendor prefix for Sensylink Microelectronics.
Signed-off-by Troy Mitchell <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
Re: [PATCH v5 1/6] dt-bindings: vendor-prefixes: Add Sensylink
In reply to Troy MitchellQuoted 5 lines · Troy Mitchell
Add the vendor prefix for Sensylink Microelectronics.
Signed-off-by Troy Mitchell <[email protected]>
Applied.
Thanks,
Guenter
PATCH v5 2/6 dt-bindings: hwmon: Move LM63 family to a dedicated binding
In reply to Troy MitchellMove the National Semiconductor LM63, LM64, and LM96163 compatibles out of trivial-devices.yaml and into a dedicated binding. Describe their integrated fan control and preserve the optional interrupt used by the ALERT output. Permit use as thermal cooling devices via #cooling-cells.
--- .../devicetree/bindings/hwmon/national,lm63.yaml | 53 ++++++++++++++++++++++ .../devicetree/bindings/trivial-devices.yaml | 6 --- 2 files changed, 53 insertions(+), 6 deletions(-)
Documentation/devicetree/bindings/hwmon/national,lm63.yaml new file +53 -0
@@ -0,0 +1,53 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hwmon/national,lm63.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: LM63-compatible temperature sensors with integrated fan control + +maintainers: + - Guenter Roeck <[email protected]> + +description: | + The LM63 family provides local and remote temperature monitoring together + with fan speed monitoring and PWM fan control. Supported devices include + the National Semiconductor LM63, LM64 and LM96163. + +allOf: + - $ref: hwmon-common.yaml# + +properties: + compatible: + enum: + - national,lm63 + - national,lm64 + - national,lm96163 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + "#cooling-cells": + const: 2 + +required: + - compatible + - reg + +unevaluatedProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + temperature-sensor@4c { + compatible = "national,lm63"; + reg = <0x4c>; + #cooling-cells = <2>; + }; + };
Documentation/devicetree/bindings/trivial-devices.yaml +0 -6
@@ -368,16 +368,10 @@ properties: - mps,mpq82d00 # Murata D1U74T-W power supply unit - murata,d1u74t - # Temperature sensor with integrated fan control - - national,lm63 - # Temperature sensor with integrated fan control - - national,lm64 # Temperature sensor - national,lm95235 # Temperature sensor - national,lm95245 - # Temperature sensor with integrated fan control - - national,lm96163 # Serial Interface ACPI-Compatible Microprocessor System Hardware Monitor - national,lm80 # Serial Interface ACPI-Compatible Microprocessor System Hardware Monitor
Signature · 1 line
2.55.0
[email protected]
AI reviewRe: [PATCH v5 2/6] dt-bindings: hwmon: Move LM63 family to a dedicated binding
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 7 lines
Move the National Semiconductor LM63, LM64, and LM96163 compatibles out of
trivial-devices.yamland into a dedicated binding. Describe their integrated fan control and preserve the optional interrupt used by the ALERT output. Permit use as thermal cooling devices via #cooling-cells.Reviewed-by Krzysztof Kozlowski <[email protected]>Signed-off-by Troy Mitchell <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=2
Re: [PATCH v5 2/6] dt-bindings: hwmon: Move LM63 family to a dedicated binding
In reply to Troy MitchellQuoted 7 lines · Troy Mitchell
Move the National Semiconductor LM63, LM64, and LM96163 compatibles out of
trivial-devices.yamland into a dedicated binding. Describe their integrated fan control and preserve the optional interrupt used by the ALERT output. Permit use as thermal cooling devices via #cooling-cells.Reviewed-by Krzysztof Kozlowski <[email protected]>Signed-off-by Troy Mitchell <[email protected]>
Applied.
Thanks,
Guenter
PATCH v5 3/6 dt-bindings: hwmon: Add Sensylink CTF2301
In reply to Troy MitchellAdd the Sensylink CTF2301 temperature sensor and fan controller to the LM63 family binding. The chip follows the LM63 register model and can provide a thermal cooling device when #cooling-cells is present.
Do not provide a national,lm63 fallback because the CTF2301 is not fully compatible with LM63. It uses different conversion-rate encodings, extended local-temperature registers, additional fan lookup table entries, and device-specific PWM and ALERT/TACH configuration. An older LM63 driver would therefore not operate the device correctly.
--- Documentation/devicetree/bindings/hwmon/national,lm63.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/hwmon/national,lm63.yaml +3 -1
@@ -12,7 +12,8 @@ maintainers: description: | The LM63 family provides local and remote temperature monitoring together with fan speed monitoring and PWM fan control. Supported devices include - the National Semiconductor LM63, LM64 and LM96163. + the National Semiconductor LM63, LM64 and LM96163, and the Sensylink + CTF2301. allOf: - $ref: hwmon-common.yaml#
@@ -23,6 +24,7 @@ properties: - national,lm63 - national,lm64 - national,lm96163 + - sensylink,ctf2301 reg: maxItems: 1
Signature · 1 line
2.55.0
[email protected]
AI reviewRe: [PATCH v5 3/6] dt-bindings: hwmon: Add Sensylink CTF2301
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 4 lines
Add the Sensylink CTF2301 temperature sensor and fan controller to the LM63 family binding. The chip follows the LM63 register model and can provide a thermal cooling device when #cooling-cells is present.
Quoted 8 lines
Do not provide a national,lm63 fallback because the CTF2301 is not fully compatible with LM63. It uses different conversion-rate encodings, extended local-temperature registers, additional fan lookup table entries, and device-specific PWM and ALERT/TACH configuration. An older LM63 driver would therefore not operate the device correctly.
Signed-off-by Troy Mitchell <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
Re: [PATCH v5 3/6] dt-bindings: hwmon: Add Sensylink CTF2301
In reply to Troy MitchellQuoted 4 lines · Troy Mitchell
Add the Sensylink CTF2301 temperature sensor and fan controller to the LM63 family binding. The chip follows the LM63 register model and can provide a thermal cooling device when #cooling-cells is present.
Quoted 8 lines
Do not provide a national,lm63 fallback because the CTF2301 is not fully compatible with LM63. It uses different conversion-rate encodings, extended local-temperature registers, additional fan lookup table entries, and device-specific PWM and ALERT/TACH configuration. An older LM63 driver would therefore not operate the device correctly.
Signed-off-by Troy Mitchell <[email protected]>
Applied.
Thanks,
Guenter
PATCH v5 4/6 hwmon: (lm63) Add Sensylink CTF2301 support
In reply to Troy MitchellAdd 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.
--- Documentation/hwmon/lm63.rst | 22 +++ drivers/hwmon/Kconfig | 8 +- drivers/hwmon/lm63.c | 426 +++++++++++++++++++++++++++++++++++-------- 3 files changed, 377 insertions(+), 79 deletions(-)
Documentation/hwmon/lm63.rst +22 -0
@@ -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.
drivers/hwmon/Kconfig +4 -4
@@ -1521,10 +1521,10 @@ config SENSORS_LM63 depends on I2C help If you say yes here you get support for the National - Semiconductor LM63, LM64, and LM96163 remote diode digital temperature - sensors with integrated fan control. Such chips are found - on the Tyan S4882 (Thunder K8QS Pro) motherboard, among - others. + Semiconductor LM63, LM64, LM96163, and Sensylink CTF2301 + remote diode digital temperature sensors with integrated fan + control. Such chips are found on the Tyan S4882 (Thunder K8QS + Pro) motherboard, among others. This driver can also be built as a module. If so, the module will be called lm63.
drivers/hwmon/lm63.c +351 -75
676 lines not on this page · raw message
Signature · 1 line
2.55.0
[email protected]
AI reviewSashiko has reviewed this patch and found no issues. It looks great!
Quoted 11 lines
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]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=4
Quoted 11 lines · Troy Mitchell
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]>
Applied.
Thanks,
Guenter
PATCH v5 5/6 riscv: dts: spacemit: Add K3 I2C6 pinctrl state
In reply to Troy MitchellAdd the K3 I2C6 pinctrl state used by boards that route I2C6 to pads 7 and 8. Use a 25 mA drive strength, which is supported for both K3 IO voltage domains, and leave board-specific IO voltage selection to board files.
--- arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+)
arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi +11 -0
@@ -101,6 +101,17 @@ i2c2-1-pins { }; }; + /omit-if-no-ref/ + i2c6_1_cfg: i2c6-1-cfg { + i2c6-1-pins { + pinmux = <K3_PADCONF(7, 6)>, /* i2c6 scl */ + <K3_PADCONF(8, 6)>; /* i2c6 sda */ + + bias-pull-up = <0>; + drive-strength = <25>; + }; + }; + /omit-if-no-ref/ i2c8_cfg: i2c8-cfg { i2c8-pins {
Signature · 1 line
2.55.0
[email protected]
AI reviewRe: [PATCH v5 5/6] riscv: dts: spacemit: Add K3 I2C6 pinctrl state
Sashiko has reviewed this patch and found no issues. It looks great!
Quoted 6 lines
Add the K3 I2C6 pinctrl state used by boards that route I2C6 to pads 7 and 8. Use a 25 mA drive strength, which is supported for both K3 IO voltage domains, and leave board-specific IO voltage selection to board files.
Signed-off-by Troy Mitchell <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=5
Re: [PATCH v5 5/6] riscv: dts: spacemit: Add K3 I2C6 pinctrl state
In reply to Troy MitchellHi Troy,
Quoted 10 lines · Troy Mitchell
Add the K3 I2C6 pinctrl state used by boards that route I2C6 to pads 7 and 8. Use a 25 mA drive strength, which is supported for both K3 IO voltage domains, and leave board-specific IO voltage selection to board files.
Signed-off-by Troy Mitchell <[email protected]>--- arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+)
Quoted 26 lines
arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi +11
-0@@ -101,6 +101,17 @@ i2c2-1-pins { }; }; + /omit-if-no-ref/ + i2c6_1_cfg: i2c6-1-cfg { + i2c6-1-pins { + pinmux = <K3_PADCONF(7, 6)>, /* i2c6 scl */ + <K3_PADCONF(8, 6)>; /* i2c6 sda */ + + bias-pull-up = <0>; + drive-strength = <25>; + }; + }; + /omit-if-no-ref/ i2c8_cfg: i2c8-cfg { i2c8-pins {Signature · 2 lines
-- 2.55.0
Signature · 1 line
Yixun Lan (dlan)
PATCH v5 6/6 riscv: dts: spacemit: Add CTF2301 on K3 CoM260
In reply to Troy MitchellEnable I2C6 on the K3 CoM260 module and describe the Sensylink CTF2301 temperature sensor and fan controller at address 0x4c.
Override the I2C6 pin power source at board level because the IO rail voltage is board-specific.
--- arch/riscv/boot/dts/spacemit/k3-com260.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
arch/riscv/boot/dts/spacemit/k3-com260.dtsi +17 -0
@@ -58,6 +58,23 @@ serial-number { }; }; +&i2c6_1_cfg { + i2c6-1-pins { + power-source = <3300>; + }; +}; + +&i2c6 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c6_1_cfg>; + status = "okay"; + + temperature-sensor@4c { + compatible = "sensylink,ctf2301"; + reg = <0x4c>; + }; +}; + &i2c8 { pinctrl-names = "default"; pinctrl-0 = <&i2c8_cfg>;
Signature · 1 line
2.55.0
[email protected]
AI reviewRe: [PATCH v5 6/6] riscv: dts: spacemit: Add CTF2301 on K3 CoM260
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Low] The device tree compatible string 'sensylink,ctf2301' is not documented in any device tree binding…
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The device tree compatible string 'sensylink,ctf2301' is not documented in any device tree binding schema. --
commit 77a2bf7d68544cb03c47870ccfe7a3ad4b0a68f4
Author: Troy Mitchell <[email protected]>
riscv: dts: spacemit: Add CTF2301 on K3 CoM260
This commit enables I2C6 on the K3 CoM260 module and adds a node to describe the Sensylink CTF2301 temperature sensor and fan controller. It also sets the I2C6 pin power source to a board-specific IO rail voltage.
Quoted 4 lines
arch/riscv/boot/dts/spacemit/k3-com260.dtsi +0
-0
[ ... ]
arch/riscv/boot/dts/spacemit/k3-com260.dtsi serial-number { · line 73
Quoted 7 lines
+&i2c6 {
arch/riscv/boot/dts/spacemit/k3-com260.dtsi +6
-0+ pinctrl-names = "default"; + pinctrl-0 = <&i2c6_1_cfg>; + status = "okay"; + + temperature-sensor@4c { + compatible = "sensylink,ctf2301";
[Severity: Low]
Does this compatible string introduce validation warnings?
When building the device tree with schema validation enabled, the "sensylink,ctf2301" compatible string under the temperature-sensor@4c node will trigger dtbs_check warnings because it is not documented in any device tree binding schema.
While the "sensylink" vendor prefix is present in the vendor-prefixes.yaml file, the device-specific compatible string "sensylink,ctf2301" appears to be missing from the binding schemas (e.g., hwmon/national,lm63.yaml).
Quoted 3 lines
arch/riscv/boot/dts/spacemit/k3-com260.dtsi +3
-0+ reg = <0x4c>; + }; +};
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=6
Re: [PATCH v5 6/6] riscv: dts: spacemit: Add CTF2301 on K3 CoM260
In reply to Troy MitchellHi Troy,
Quoted 11 lines · Troy Mitchell
Enable I2C6 on the K3 CoM260 module and describe the Sensylink CTF2301 temperature sensor and fan controller at address
0x4c.Override the I2C6 pin power source at board level because the IO rail voltage is board-specific.
Signed-off-by Troy Mitchell <[email protected]>--- arch/riscv/boot/dts/spacemit/k3-com260.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
Quoted 32 lines
arch/riscv/boot/dts/spacemit/k3-com260.dtsi +17
-0@@ -58,6 +58,23 @@ serial-number { }; }; +&i2c6_1_cfg { + i2c6-1-pins { + power-source = <3300>; + }; +}; + +&i2c6 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c6_1_cfg>; + status = "okay"; + + temperature-sensor@4c { + compatible = "sensylink,ctf2301"; + reg = <0x4c>; + }; +}; + &i2c8 { pinctrl-names = "default"; pinctrl-0 = <&i2c8_cfg>;Signature · 2 lines
-- 2.55.0
Signature · 1 line
Yixun Lan (dlan)
Re: (subset) [PATCH v5 0/6] hwmon: (lm63) Add Sensylink CTF2301 support
In reply to Troy MitchellQuoted 14 lines · Troy Mitchell
Sensylink CTF2301 is a system-level thermal management solution chip.
The CTF2301 is an I2C/SMBus compatible device featuring:
- One local temperature sensor with +/-0.5 degree C accuracy and0.0625 degree C resolution.- One remote temperature sensor for external diode-connected transistors, offering +/-1 degree C accuracy and 0.125 degree C resolution (temperature range: -40 degree C to +125 degree C).
- An integrated PWM fan controller capable of operating in two modes:
1. Direct-DCY: Open-loop direct duty cycle control.
2. Auto-Temp: Closed-loop automatic fan speed control based on measured temperature.
- A 1-channel fan speed monitor (TACH input) for RPM measurement.
Quoted 1 line
[...]
Applied, thanks!
[5/6] riscv: dts: spacemit: Add K3 I2C6 pinctrl state
https://git.kernel.org/pub/scm/linux/kernel/git/spacemit/linux.git/commit/?id=97bd8165a3f734fe97664e186406686bfa34f42f [6/6] riscv: dts: spacemit: Add CTF2301 on K3 CoM260 https://git.kernel.org/pub/scm/linux/kernel/git/spacemit/linux.git/commit/?id=ad17d98848df3907d6732673a139e9ed832b547d
Best regards,
Signature · 1 line
Yixun Lan <[email protected]>
This series was applied to riscv/linux.git (fixes) by Yixun Lan <[email protected]>:
Hello:
This series was applied to riscv/linux.git (fixes) by Yixun Lan <[email protected]>:
Quoted 14 lines · On Mon, 14 Sep 2026 16:03:52 +0800 you wrote:
Sensylink CTF2301 is a system-level thermal management solution chip.
The CTF2301 is an I2C/SMBus compatible device featuring:
- One local temperature sensor with +/-0.5 degree C accuracy and0.0625 degree C resolution.- One remote temperature sensor for external diode-connected transistors, offering +/-1 degree C accuracy and 0.125 degree C resolution (temperature range: -40 degree C to +125 degree C).
- An integrated PWM fan controller capable of operating in two modes:
1. Direct-DCY: Open-loop direct duty cycle control.
2. Auto-Temp: Closed-loop automatic fan speed control based on measured temperature.
- A 1-channel fan speed monitor (TACH input) for RPM measurement.
Quoted 1 line
[...]
Here is the summary with links:
- [v5,1/6] dt-bindings: vendor-prefixes: Add Sensylink
(no matching commit)
- [v5,2/6] dt-bindings: hwmon: Move LM63 family to a dedicated binding (no matching commit)
- [v5,3/6] dt-bindings: hwmon: Add Sensylink CTF2301
(no matching commit)
- [v5,4/6] hwmon: (lm63) Add Sensylink CTF2301 support
https://git.kernel.org/riscv/c/d7f7e577c837 - [v5,5/6] riscv: dts: spacemit: Add K3 I2C6 pinctrl state https://git.kernel.org/riscv/c/97bd8165a3f7 - [v5,6/6] riscv: dts: spacemit: Add CTF2301 on K3 CoM260 https://git.kernel.org/riscv/c/ad17d98848df
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html