[PATCH v13 00/10] Add support for Maxim Integrated MAX77705 PMIC

From: Dzmitry Sankouski
Date: Mon Dec 23 2024 - 09:00:12 EST


The Maxim MAX77705 is a Companion Power Management and Type-C
interface IC which includes charger, fuelgauge, LED, haptic motor driver and
Type-C management IC. It's used in Samsung S series smart phones
starting from S9 model.

Add features:
  - charger
  - fuelgauge
  - haptic
  - led

Signed-off-by: Dzmitry Sankouski <dsankouski@xxxxxxxxx>
---
Changes in v13:
- revert: max17042 binding: split in 2 files, so its binding code can be reused
- include previously removed patch:
'dt-bindings: power: supply: max17042: add max77705 support'
- use same of_node for matching simple-mfd-i2c and setting max17042
driver
- Link to v12: https://lore.kernel.org/r/20241217-starqltechn_integration_upstream-v12-0-ed840944f948@xxxxxxxxx

Changes in v12:
- charger: move out of mfd because separate device
- charger: add it's own binding file
- fuel gauge: move to simple-mfd-i2c along with additional measurement
capabilities, which will be implemented in max77705-hwmon driver
- fix review comments
- reorder commits to stick mfd together
- Link to v11: https://lore.kernel.org/r/20241209-starqltechn_integration_upstream-v11-0-dc0598828e01@xxxxxxxxx

Changes in v11:
- charger: code review fixes
- max17042 binding: split in 2 files, so its binding code can be reused
in MFD bindings
- Link to v10: https://lore.kernel.org/r/20241204-starqltechn_integration_upstream-v10-0-7de85e48e562@xxxxxxxxx

Changes in v10:
- drop NACKed 'dt-bindings: power: supply: max17042: remove reg from
required' patch
- review fixes
- use dev_err_probe for errors in probe functions
- Link to v9: https://lore.kernel.org/r/20241202-starqltechn_integration_upstream-v9-0-a1adc3bae2b8@xxxxxxxxx

Changes in v9:
- fuel gauge: use max17042 driver instead of separate max77705
- fix kernel bot error
- charger: enable interrupt after power supply registration
- add dependency on max17042 patch series
- Link to v8: https://lore.kernel.org/r/20241031-starqltechn_integration_upstream-v8-0-2fa666c2330e@xxxxxxxxx

Changes in v8:
- Fix comment style
- join line where possible to fit in 100 chars
- Link to v7: https://lore.kernel.org/r/20241023-starqltechn_integration_upstream-v7-0-9bfaa3f4a1a0@xxxxxxxxx

Changes in v7:
- Fix review comments
- Link to v6: https://lore.kernel.org/r/20241007-starqltechn_integration_upstream-v6-0-0d38b5090c57@xxxxxxxxx

Changes in v6:
- fix binding review comments
- update trailers
- Link to v5: https://lore.kernel.org/r/20240617-starqltechn_integration_upstream-v5-0-e0033f141d17@xxxxxxxxx

Changes in v5:
- Split patchset per subsystem
- Link to v4: https://lore.kernel.org/r/20240913-starqltechn_integration_upstream-v4-0-2d2efd5c5877@xxxxxxxxx

Changes in v4:
- Rewrite max77705, max77705_charger, max77705_fuel_gauge from scratch
- Reorder patches:
- squash max77705 subdevice bindings in core file because
no resources there
- split device tree changes
- Use _ as space for filenames in power/supply like the majority
- Link to v3: https://lore.kernel.org/r/20240618-starqltechn_integration_upstream-v3-0-e3f6662017ac@xxxxxxxxx

---
Dzmitry Sankouski (10):
power: supply: add undervoltage health status property
dt-bindings: power: supply: max17042: add max77705 support
dt-bindings: power: supply: add maxim,max77705 charger
dt-bindings: mfd: add maxim,max77705
power: supply: max17042: add max77705 fuel gauge support
power: supply: max77705: Add charger driver for Maxim 77705
mfd: simple-mfd-i2c: Add MAX77705 support
mfd: Add new driver for MAX77705 PMIC
input: max77693: add max77705 haptic support
leds: max77705: Add LEDs support

Documentation/ABI/testing/sysfs-class-power | 2 +-
Documentation/devicetree/bindings/mfd/maxim,max77705.yaml | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Documentation/devicetree/bindings/power/supply/maxim,max17042.yaml | 1 +
Documentation/devicetree/bindings/power/supply/maxim,max77705.yaml | 50 +++++++++++++++++++++++++++
MAINTAINERS | 4 +++
drivers/input/misc/Kconfig | 4 +--
drivers/input/misc/Makefile | 1 +
drivers/input/misc/max77693-haptic.c | 15 +++++++-
drivers/leds/Kconfig | 8 +++++
drivers/leds/Makefile | 1 +
drivers/leds/leds-max77705.c | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/mfd/Kconfig | 13 +++++++
drivers/mfd/Makefile | 2 ++
drivers/mfd/max77705.c | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/mfd/simple-mfd-i2c.c | 11 ++++++
drivers/power/supply/Kconfig | 6 ++++
drivers/power/supply/Makefile | 1 +
drivers/power/supply/max17042_battery.c | 3 ++
drivers/power/supply/max77705_charger.c | 576 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/power/supply/power_supply_sysfs.c | 1 +
include/linux/mfd/max77693-common.h | 4 ++-
include/linux/mfd/max77705-private.h | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/power/max77705_charger.h | 194 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/power_supply.h | 1 +
24 files changed, 1730 insertions(+), 5 deletions(-)
---
base-commit: 8155b4ef3466f0e289e8fcc9e6e62f3f4dceeac2
change-id: 20240617-starqltechn_integration_upstream-bc86850b2fe3
prerequisite-change-id: 20241108-b4-max17042-9306fc75afae:v5
prerequisite-patch-id: a78c51c4a1b48756c00cbc3d56b9e019577e4a6b
prerequisite-patch-id: 4437ee0157cd29081ea8a9cc18cabef7b7caab3f

Best regards,
--
Dzmitry Sankouski <dsankouski@xxxxxxxxx>