[PATCH v6 0/5] hwmon: Add support for Amphenol ChipCap 2

Javier Carrasco
2024-01-30T21:06:51Z

This series adds support and documentation for the Amphenol ChipCap 2
humidity and temperature sensor in its digital version.

The Chipcap 2 is an I2C device that provides 14-bit humidity and
temperature measurements as well as low (minimum) and high (maximum)
humidity alarms. A ready signal is also available to reduce delays
while fetching data.

The proposed driver implements the logic to perform measurements with
and without ready signal, EEPROM configuration and alarm signaling.

The features this driver does not support (I2C address and command
window length modification) have been documented in the "Known Issues"
section.

The complete supported functionality has been tested with a CC2D33S
sensor connected to a Raspberry Pi Zero 2 w.
Different device tree node definitions (with and without ready and/or
alarm signals) have been positively tested.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
Changes in v6:
- chipcap2.c: remove TODO about regulator delays (handled by the
regulator core).
- chipcap2.c: add comment to clarify regularor enable checks (exclusive
regulator).
- chipcap2.c: simplify irq handling (irqs disabled while the device is
switched off).
- Link to v5: https://lore.kernel.org/r/20240115-topic-chipcap2-v5-0-0cc7a15aeece@gmail.com

Changes in v5:
- dt-bindings: add "amphenol,cc2d23" to "compatible" in the example.
- Link to v4: https://lore.kernel.org/r/20231020-topic-chipcap2-v4-0-7940cfa7613a@gmail.com

Changes in v4:
- chipcap2.c: require exclusive regulator to trigger command mode.
- chipcap2.c: keep the device off until a measurement is required.
Because the device makes an automatic measurement after the power-up
sequence, no differentiation between sleep and non-sleep modes is
required anymore.
- chipcap2.c: retrieve alarm settings from the device instead of storing
them locally.
- dt-bindings: add vdd-supply to required properties.
- dt-bindings: default to 'amphenol,cc2d23' compatible (same
functionality for all compatibles).
- Link to v3: https://lore.kernel.org/r/20231020-topic-chipcap2-v3-0-5b3bb50a5f0b@gmail.com

Changes in v3:
- ABI: sysfs-class-hwmon: documented humidity min/max alarms.
- General: reorder patches (bindings first to remove checkpatch
warnings).
- General: remove part number wildcards and use real part numbers.
- chipcap2.c: improve error path in probe function.
- chipcap2.c: fix error handling if regulator could not be registered.
- chipcap2.c: use absolute values for hysteresis (for both ABI
compatibility and simplicity).
- chipcap2.c: minor code-style fixes and variable renaming.
- Link to v2: https://lore.kernel.org/r/20231020-topic-chipcap2-v2-0-f5c325966fdb@gmail.com

Changes in v2:
- vendor-prefixes: full company name in the vendor description (Krzystof
Kozlowski)
- chipcap2.c: proper i2c_device_id table, coding style fixes, cleaner
error path in the probe function (Krzystof Kozlowski)
- dt-bindings: per-item description and lowercase names (Krzystof
Kozlowski)
- MAINTAINERS: fix manufacturer name (Krzystof Kozlowski)
- Link to v1: https://lore.kernel.org/r/20231020-topic-chipcap2-v1-0-087e21d4b1ed@gmail.com

---
Javier Carrasco (5):
dt-bindings: vendor-prefixes: add Amphenol
hwmon: (core) Add support for humidity min/max alarm
ABI: sysfs-class-hwmon: add descriptions for humidity min/max alarms
dt-bindings: hwmon: Add Amphenol ChipCap 2
hwmon: Add support for Amphenol ChipCap 2

Documentation/ABI/testing/sysfs-class-hwmon | 18 +
.../bindings/hwmon/amphenol,chipcap2.yaml | 77 ++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
Documentation/hwmon/chipcap2.rst | 73 ++
Documentation/hwmon/index.rst | 1 +
MAINTAINERS | 8 +
drivers/hwmon/Kconfig | 10 +
drivers/hwmon/Makefile | 1 +
drivers/hwmon/chipcap2.c | 816 +++++++++++++++++++++
drivers/hwmon/hwmon.c | 2 +
include/linux/hwmon.h | 4 +
11 files changed, 1012 insertions(+)
---
base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d
change-id: 20231020-topic-chipcap2-e2d8985430c2

Best regards,
--
Javier Carrasco <javier.carrasco.cruz@gmail.com>