mbox series

[v11,0/9] Add support for Maxim Integrated MAX77705 PMIC

Message ID 20241209-starqltechn_integration_upstream-v11-0-dc0598828e01@gmail.com
Headers show
Series Add support for Maxim Integrated MAX77705 PMIC | expand

Message

Dzmitry Sankouski Dec. 9, 2024, 11:26 a.m. UTC
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 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 (9):
      power: supply: add undervoltage health status property
      dt-bindings: power: supply: max17042: add max77705 support
      dt-bindings: power: supply: max17042: split on 2 files
      dt-bindings: mfd: add maxim,max77705
      power: supply: max17042: add max77705 fuel gauge support
      mfd: Add new driver for MAX77705 PMIC
      input: max77693: add max77705 haptic support
      power: supply: max77705: Add charger driver for Maxim 77705
      leds: max77705: Add LEDs support

 Documentation/ABI/testing/sysfs-class-power                             |   2 +-
 Documentation/devicetree/bindings/mfd/maxim,max77705.yaml               | 190 +++++++++++++++++++++++++++++++++++
 Documentation/devicetree/bindings/power/supply/maxim,max17042-base.yaml |  66 +++++++++++++
 Documentation/devicetree/bindings/power/supply/maxim,max17042.yaml      |  48 +--------
 MAINTAINERS                                                             |   6 +-
 drivers/input/misc/Kconfig                                              |   4 +-
 drivers/input/misc/Makefile                                             |   1 +
 drivers/input/misc/max77693-haptic.c                                    |  15 ++-
 drivers/leds/Kconfig                                                    |   6 ++
 drivers/leds/Makefile                                                   |   1 +
 drivers/leds/leds-max77705.c                                            | 267 +++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/mfd/Kconfig                                                     |  12 +++
 drivers/mfd/Makefile                                                    |   2 +
 drivers/mfd/max77705.c                                                  | 233 +++++++++++++++++++++++++++++++++++++++++++
 drivers/power/supply/Kconfig                                            |   6 ++
 drivers/power/supply/Makefile                                           |   1 +
 drivers/power/supply/max17042_battery.c                                 |   3 +
 drivers/power/supply/max77705_charger.c                                 | 586 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/power/supply/power_supply_sysfs.c                               |   1 +
 include/linux/mfd/max77693-common.h                                     |   4 +-
 include/linux/mfd/max77705-private.h                                    | 194 ++++++++++++++++++++++++++++++++++++
 include/linux/power/max77705_charger.h                                  | 194 ++++++++++++++++++++++++++++++++++++
 include/linux/power_supply.h                                            |   1 +
 23 files changed, 1790 insertions(+), 53 deletions(-)
---
base-commit: f486c8aa16b8172f63bddc70116a0c897a7f3f02
change-id: 20240617-starqltechn_integration_upstream-bc86850b2fe3
prerequisite-change-id: 20241108-b4-max17042-9306fc75afae:v4
prerequisite-patch-id: a78c51c4a1b48756c00cbc3d56b9e019577e4a6b
prerequisite-patch-id: 735d52c3137c5e474f3601adf010f9fe2f3f7036

Best regards,

Comments

Krzysztof Kozlowski Dec. 10, 2024, 7:38 a.m. UTC | #1
On Mon, Dec 09, 2024 at 02:26:27PM +0300, Dzmitry Sankouski wrote:
> Move max17042 common binding part to separate file, to
> reuse it for MFDs with platform driver version.
> 
> Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
> ---
>  Documentation/devicetree/bindings/power/supply/maxim,max17042-base.yaml | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  Documentation/devicetree/bindings/power/supply/maxim,max17042.yaml      | 49 +------------------------------------------------
>  MAINTAINERS                                                             |  2 +-
>  3 files changed, 68 insertions(+), 49 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/power/supply/maxim,max17042-base.yaml b/Documentation/devicetree/bindings/power/supply/maxim,max17042-base.yaml
> new file mode 100644
> index 000000000000..1653f8ae11f7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/power/supply/maxim,max17042-base.yaml
> @@ -0,0 +1,66 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/power/supply/maxim,max17042-base.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Maxim 17042 fuel gauge series
> +
> +maintainers:
> +  - Sebastian Reichel <sre@kernel.org>
> +
> +allOf:
> +  - $ref: power-supply.yaml#
> +
> +properties:
> +  compatible:
> +    enum:
> +      - maxim,max17042
> +      - maxim,max17047
> +      - maxim,max17050
> +      - maxim,max17055
> +      - maxim,max77705-battery
> +      - maxim,max77849-battery

Shared schemas define only shared properties, not compatibles. But the
main problem is you did not answer nor resolve my previous concerns -
either this device has separate address and probably is a separate
device on the same or different bus.

Plus this was not tested and does not really work, but anyway let's
focus on my previous concerns first.

> +
> +  interrupts:
> +    maxItems: 1
> +    description: |
> +      The ALRT pin, an open-drain interrupt.

...

> +
> +additionalProperties: false
> +
> diff --git a/Documentation/devicetree/bindings/power/supply/maxim,max17042.yaml b/Documentation/devicetree/bindings/power/supply/maxim,max17042.yaml
> index 14242de7fc08..b7fd714cc72e 100644
> --- a/Documentation/devicetree/bindings/power/supply/maxim,max17042.yaml
> +++ b/Documentation/devicetree/bindings/power/supply/maxim,max17042.yaml
> @@ -10,60 +10,13 @@ maintainers:
>    - Sebastian Reichel <sre@kernel.org>
>  
>  allOf:
> -  - $ref: power-supply.yaml#
> +  - $ref: maxim,max17042-base.yaml#
>  
>  properties:
> -  compatible:
> -    enum:
> -      - maxim,max17042
> -      - maxim,max17047
> -      - maxim,max17050
> -      - maxim,max17055
> -      - maxim,max77705-battery
> -      - maxim,max77849-battery
> -

This does not make sense. Final device schema must come with compatibles.

Best regards,
Krzysztof