Message ID | 20250116-starqltechn_integration_upstream-v15-0-cf229de9f758@gmail.com |
---|---|
Headers | show |
Series | Add support for Maxim Integrated MAX77705 PMIC | expand |
On Thu, Jan 16, 2025 at 07:26:07PM +0300, Dzmitry Sankouski wrote: > config MFD_MAX77714 > tristate "Maxim Semiconductor MAX77714 PMIC Support" > depends on I2C > diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile > index e057d6d6faef..d981690b5a12 100644 > --- a/drivers/mfd/Makefile > +++ b/drivers/mfd/Makefile > @@ -168,6 +168,7 @@ obj-$(CONFIG_MFD_MAX77620) += max77620.o > obj-$(CONFIG_MFD_MAX77650) += max77650.o > obj-$(CONFIG_MFD_MAX77686) += max77686.o > obj-$(CONFIG_MFD_MAX77693) += max77693.o > +obj-$(CONFIG_MFD_MAX77705) += max77705.o > obj-$(CONFIG_MFD_MAX77714) += max77714.o > obj-$(CONFIG_MFD_MAX77843) += max77843.o > obj-$(CONFIG_MFD_MAX8907) += max8907.o > @@ -233,6 +234,7 @@ obj-$(CONFIG_MFD_RK8XX_I2C) += rk8xx-i2c.o > obj-$(CONFIG_MFD_RK8XX_SPI) += rk8xx-spi.o > obj-$(CONFIG_MFD_RN5T618) += rn5t618.o > obj-$(CONFIG_MFD_SEC_CORE) += sec-core.o sec-irq.o > +obj-$(CONFIG_MFD_S2DOS05) += s2dos05.o Hm? How so? And how does it even work? > obj-$(CONFIG_MFD_SYSCON) += syscon.o > obj-$(CONFIG_MFD_LM3533) += lm3533-core.o lm3533-ctrlbank.o > obj-$(CONFIG_MFD_VEXPRESS_SYSREG) += vexpress-sysreg.o ... > + > +static int max77705_suspend(struct device *dev) > +{ > + struct i2c_client *i2c = to_i2c_client(dev); > + > + disable_irq(i2c->irq); > + > + if (device_may_wakeup(dev)) > + enable_irq_wake(i2c->irq); > + > + return 0; > +} > + > +static int max77705_resume(struct device *dev) > +{ > + struct i2c_client *i2c = to_i2c_client(dev); > + > + if (device_may_wakeup(dev)) > + disable_irq_wake(i2c->irq); > + > + enable_irq(i2c->irq); > + > + return 0; > +} > +DEFINE_SIMPLE_DEV_PM_OPS(max77705_pm_ops, max77705_suspend, max77705_resume); > + > +static const struct of_device_id max77705_i2c_of_match[] = { > + { .compatible = "maxim,max77705" }, > + { } > +}; > +MODULE_DEVICE_TABLE(of, max77705_i2c_of_match); > + > +static struct i2c_driver max77705_i2c_driver = { > + .driver = { > + .name = "max77705", > + .of_match_table = max77705_i2c_of_match, > + .pm = pm_sleep_ptr(&max77705_pm_ops), > + .suppress_bind_attrs = true, I don't see any reason for that. This is allowed only for core SoC components and power supply driver is neither part of SoC, nor a core component. Best regards, Krzysztof
пт, 17 янв. 2025 г. в 10:55, Krzysztof Kozlowski <krzk@kernel.org>: > > On Thu, Jan 16, 2025 at 07:26:07PM +0300, Dzmitry Sankouski wrote: > > config MFD_MAX77714 > > tristate "Maxim Semiconductor MAX77714 PMIC Support" > > depends on I2C > > diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile > > index e057d6d6faef..d981690b5a12 100644 > > --- a/drivers/mfd/Makefile > > +++ b/drivers/mfd/Makefile > > @@ -168,6 +168,7 @@ obj-$(CONFIG_MFD_MAX77620) += max77620.o > > obj-$(CONFIG_MFD_MAX77650) += max77650.o > > obj-$(CONFIG_MFD_MAX77686) += max77686.o > > obj-$(CONFIG_MFD_MAX77693) += max77693.o > > +obj-$(CONFIG_MFD_MAX77705) += max77705.o > > obj-$(CONFIG_MFD_MAX77714) += max77714.o > > obj-$(CONFIG_MFD_MAX77843) += max77843.o > > obj-$(CONFIG_MFD_MAX8907) += max8907.o > > @@ -233,6 +234,7 @@ obj-$(CONFIG_MFD_RK8XX_I2C) += rk8xx-i2c.o > > obj-$(CONFIG_MFD_RK8XX_SPI) += rk8xx-spi.o > > obj-$(CONFIG_MFD_RN5T618) += rn5t618.o > > obj-$(CONFIG_MFD_SEC_CORE) += sec-core.o sec-irq.o > > +obj-$(CONFIG_MFD_S2DOS05) += s2dos05.o > > Hm? How so? And how does it even work? > My bad, sorry seems like rebase issue.
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@gmail.com> --- Changes in v15: - update copyright year - fix mA/mV in charing driver - rebase on latest linux-power-supply tree - various formatting and optimization review comments fixes - Link to v14: https://lore.kernel.org/r/20250108-starqltechn_integration_upstream-v14-0-f6e84ec20d96@gmail.com Changes in v14: - binding review fixes - add trailers - Link to v13: https://lore.kernel.org/r/20241223-starqltechn_integration_upstream-v13-0-fbc610c70832@gmail.com 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@gmail.com 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@gmail.com 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@gmail.com 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@gmail.com 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@gmail.com 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@gmail.com Changes in v7: - Fix review comments - Link to v6: https://lore.kernel.org/r/20241007-starqltechn_integration_upstream-v6-0-0d38b5090c57@gmail.com Changes in v6: - fix binding review comments - update trailers - Link to v5: https://lore.kernel.org/r/20240617-starqltechn_integration_upstream-v5-0-e0033f141d17@gmail.com Changes in v5: - Split patchset per subsystem - Link to v4: https://lore.kernel.org/r/20240913-starqltechn_integration_upstream-v4-0-2d2efd5c5877@gmail.com 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@gmail.com --- Dzmitry Sankouski (7): dt-bindings: power: supply: add maxim,max77705 charger dt-bindings: mfd: add maxim,max77705 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/devicetree/bindings/mfd/maxim,max77705.yaml | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 | 279 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/mfd/Kconfig | 13 +++++++ drivers/mfd/Makefile | 2 ++ drivers/mfd/max77705.c | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/mfd/simple-mfd-i2c.c | 11 ++++++ drivers/power/supply/Kconfig | 6 ++++ drivers/power/supply/Makefile | 1 + drivers/power/supply/max77705_charger.c | 581 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/mfd/max77693-common.h | 4 ++- include/linux/mfd/max77705-private.h | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/power/max77705_charger.h | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 19 files changed, 1707 insertions(+), 4 deletions(-) --- base-commit: 260d7c5e5392ac41c94152005d416172ba0a906d change-id: 20240617-starqltechn_integration_upstream-bc86850b2fe3 Best regards,