public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 00/20] Samsung S2MPG10 regulator and S2MPG11 PMIC drivers
@ 2026-01-05  9:01 André Draszik
  2026-01-05  9:01 ` [PATCH v6 01/20] dt-bindings: firmware: google,gs101-acpm-ipc: convert regulators to lowercase André Draszik
                   ` (23 more replies)
  0 siblings, 24 replies; 37+ messages in thread
From: André Draszik @ 2026-01-05  9:01 UTC (permalink / raw)
  To: Tudor Ambarus, Rob Herring, Conor Dooley, Krzysztof Kozlowski,
	Liam Girdwood, Mark Brown, Lee Jones, Bartosz Golaszewski,
	Krzysztof Kozlowski, Linus Walleij, Bartosz Golaszewski,
	Linus Walleij
  Cc: Peter Griffin, Will McVicker, Juan Yescas, kernel-team,
	linux-kernel, linux-samsung-soc, devicetree, linux-gpio,
	André Draszik, Bartosz Golaszewski, Krzysztof Kozlowski

This series extends the existing S2MPG10 PMIC driver to add support for
the regulators, and adds new S2MPG11 core and regulator drivers.

--- dependency note ---
This series must be applied in-order, due to the regulator drivers
depending on headers & definitions added by the bindings and core
drivers. I would expect them all to go via the MFD tree.

The MFD patches in this series also depend on my Samsung MFD patches
due to patch context:
https://lore.kernel.org/all/20251217-s5m-alarm-v2-0-b7bff003e94c@linaro.org/

While these patches compile, regulator probe will only be successful
with my deferrable regulators patches from
https://lore.kernel.org/r/20251227-regulators-defer-v1-0-3104b22d84cb@linaro.org
--- end ---

The patches are kept together in one series, due to S2MPG11 and its
regulators being very similar to S2MPG10.

The Samsung S2MPG11 PMIC is a Power Management IC for mobile
applications with buck converters, various LDOs, power meters, and
additional GPIO interfaces. It typically complements an S2MPG10 PMIC in
a main/sub configuration as the sub-PMIC and both are used on the
Google Pixel 6 and 6 Pro (oriole / raven).

A DT update for Oriole / Raven to enable these is required which I will
send out separately.

Cheers,
Andre'

Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
Changes in v6:
- merge patch 21 into 15 (Bartosz)
- merge 'con-id' handling into patch 15
- collect tags
- Link to v5: https://lore.kernel.org/r/20251227-s2mpg1x-regulators-v5-0-0c04b360b4c9@linaro.org

Changes in v5:
- rebase against mfd/sec alarm IRQ rework
  https://lore.kernel.org/all/20251217-s5m-alarm-v2-0-b7bff003e94c@linaro.org/
- switch to async probe for mfd
- Mark: one MFD cell per PMIC, not per PMIC rail - drop or update
        related patches
  - making the series runtime depend on
    https://lore.kernel.org/r/20251227-regulators-defer-v1-0-3104b22d84cb@linaro.org
- new patch:
  - mfd: sec: s2mpg10: reorder regulators for better probe performance
- collect tags
- Link to v4: https://lore.kernel.org/r/20251110-s2mpg1x-regulators-v4-0-94c9e726d4ba@linaro.org

Changes in v4:
- Krzysztof:
  - s2mpg10-regulator.yaml: move additionalProperties to after allOf
  - s2mpg10-regulator.yaml: use $defs, not definitions
  - split samsung,s2mpg10-pmic.yaml and samsung,s2mpg11-pmic.yaml
  - add full example for samsung,s2mpg10-pmic.yaml and 11
  - acpm binding: commit message update
  - acpm binding: pmic -> pmic-1, pmic2 -> pmic-2
- ensure binding file names match bindings
- fix typos in s2mpg11-regulator.yaml description text
- collect tags
- Link to v3: https://lore.kernel.org/r/20251103-s2mpg1x-regulators-v3-0-b8b96b79e058@linaro.org

Changes in v3:
- Krzysztof:
  - split s2mpg10 core binding into separate file
  - drop PCTRLSEL values that can be described using standard
    properties, and update remaining macro names (self)
  - drop maxItems:1 where not needed (Krzysztof)
  - samsung,ext-control-gpios -> enable-gpios
- fix LDO20M_EN pin name -> VLDO20M_EN
- move all binding patternProperties to top-level
- one (driver) instance per actual rail, not per rail type (LDO or
  buck)
- new macro REGULATOR_LINEAR_VRANGE() (patch 10)
- address some (pre-existing) checkpatch warnings
- various updates to regulator driver (patch 16 & 19).See footer there
- more descriptive commit messages
- Link to v2: https://lore.kernel.org/r/20250606-s2mpg1x-regulators-v2-0-b03feffd2621@linaro.org

Changes in v2:
- s2mpg11 also exposes additional GPIOs, update all relevant commit
  messages (nevertheless, GPIOs are out of scope in this series)
- fix some commit message typos: s2mp1 -> s2mpg1
- patch2: drop | (literal style mark) from samsung,ext-control-gpios
- patch5: add | to vinb*-supply description for better formatting
- patch13: update ::of_parse_cb assignment
- patch15: drop duplicated ::of_parse_cb assignment
- Link to v1: https://lore.kernel.org/r/20250604-s2mpg1x-regulators-v1-0-6038740f49ae@linaro.org

---
André Draszik (20):
      dt-bindings: firmware: google,gs101-acpm-ipc: convert regulators to lowercase
      regulator: dt-bindings: add s2mpg10-pmic regulators
      regulator: dt-bindings: add s2mpg11-pmic regulators
      dt-bindings: mfd: samsung,s2mps11: Split s2mpg10-pmic into separate file
      dt-bindings: mfd: samsung,s2mpg10-pmic: Link to its regulators
      dt-bindings: mfd: Add samsung,s2mpg11-pmic
      dt-bindings: firmware: google,gs101-acpm-ipc: add S2MPG11 secondary PMIC
      mfd: sec: s2mpg10: reorder regulators for better probe performance
      mfd: sec: Add support for S2MPG11 PMIC via ACPM
      regulator: add REGULATOR_LINEAR_VRANGE macro
      regulator: s2mps11: drop two needless variable initialisations
      regulator: s2mps11: use dev_err_probe() where appropriate
      regulator: s2mps11: place constants on right side of comparison tests
      regulator: s2mps11: update node parsing (allow -supply properties)
      regulator: s2mps11: refactor handling of external rail control
      regulator: s2mps11: add S2MPG10 regulator
      regulator: s2mps11: refactor S2MPG10  ::set_voltage_time() for S2MPG11 reuse
      regulator: s2mps11: refactor S2MPG10 regulator macros for S2MPG11 reuse
      regulator: s2mps11: add S2MPG11 regulator
      regulator: s2mps11: more descriptive gpio consumer name

 .../bindings/firmware/google,gs101-acpm-ipc.yaml   |   54 +-
 .../bindings/mfd/samsung,s2mpg10-pmic.yaml         |  120 ++
 .../bindings/mfd/samsung,s2mpg11-pmic.yaml         |   88 ++
 .../devicetree/bindings/mfd/samsung,s2mps11.yaml   |   29 +-
 .../regulator/samsung,s2mpg10-regulator.yaml       |  158 +++
 .../regulator/samsung,s2mpg11-regulator.yaml       |  136 +++
 MAINTAINERS                                        |    1 +
 drivers/mfd/sec-acpm.c                             |  171 ++-
 drivers/mfd/sec-common.c                           |   17 +-
 drivers/mfd/sec-irq.c                              |   85 +-
 drivers/regulator/s2mps11.c                        | 1186 ++++++++++++++++++--
 .../regulator/samsung,s2mpg10-regulator.h          |   53 +
 include/linux/mfd/samsung/core.h                   |    1 +
 include/linux/mfd/samsung/irq.h                    |  105 ++
 include/linux/mfd/samsung/s2mpg10.h                |   44 +-
 include/linux/mfd/samsung/s2mpg11.h                |  434 +++++++
 include/linux/regulator/driver.h                   |    5 +
 17 files changed, 2526 insertions(+), 161 deletions(-)
---
base-commit: 5b108312d3874f2fc3d6e5ed119017b45c2eb092
change-id: 20250603-s2mpg1x-regulators-7a41c8399abf

Best regards,
-- 
André Draszik <andre.draszik@linaro.org>


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2026-02-05 11:05 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-05  9:01 [PATCH v6 00/20] Samsung S2MPG10 regulator and S2MPG11 PMIC drivers André Draszik
2026-01-05  9:01 ` [PATCH v6 01/20] dt-bindings: firmware: google,gs101-acpm-ipc: convert regulators to lowercase André Draszik
2026-01-05  9:01 ` [PATCH v6 02/20] regulator: dt-bindings: add s2mpg10-pmic regulators André Draszik
2026-01-05  9:01 ` [PATCH v6 03/20] regulator: dt-bindings: add s2mpg11-pmic regulators André Draszik
2026-01-05  9:01 ` [PATCH v6 04/20] dt-bindings: mfd: samsung,s2mps11: Split s2mpg10-pmic into separate file André Draszik
2026-01-05  9:01 ` [PATCH v6 05/20] dt-bindings: mfd: samsung,s2mpg10-pmic: Link to its regulators André Draszik
2026-01-05  9:01 ` [PATCH v6 06/20] dt-bindings: mfd: Add samsung,s2mpg11-pmic André Draszik
2026-01-05  9:01 ` [PATCH v6 07/20] dt-bindings: firmware: google,gs101-acpm-ipc: add S2MPG11 secondary PMIC André Draszik
2026-01-05  9:01 ` [PATCH v6 08/20] mfd: sec: s2mpg10: reorder regulators for better probe performance André Draszik
2026-01-05  9:01 ` [PATCH v6 09/20] mfd: sec: Add support for S2MPG11 PMIC via ACPM André Draszik
2026-01-05  9:01 ` [PATCH v6 10/20] regulator: add REGULATOR_LINEAR_VRANGE macro André Draszik
2026-01-05  9:01 ` [PATCH v6 11/20] regulator: s2mps11: drop two needless variable initialisations André Draszik
2026-01-05  9:01 ` [PATCH v6 12/20] regulator: s2mps11: use dev_err_probe() where appropriate André Draszik
2026-01-05  9:01 ` [PATCH v6 13/20] regulator: s2mps11: place constants on right side of comparison tests André Draszik
2026-01-05  9:01 ` [PATCH v6 14/20] regulator: s2mps11: update node parsing (allow -supply properties) André Draszik
2026-01-05  9:01 ` [PATCH v6 15/20] regulator: s2mps11: refactor handling of external rail control André Draszik
2026-01-05  9:01 ` [PATCH v6 16/20] regulator: s2mps11: add S2MPG10 regulator André Draszik
2026-01-05  9:01 ` [PATCH v6 17/20] regulator: s2mps11: refactor S2MPG10 ::set_voltage_time() for S2MPG11 reuse André Draszik
2026-01-05  9:01 ` [PATCH v6 18/20] regulator: s2mps11: refactor S2MPG10 regulator macros " André Draszik
2026-01-05  9:01 ` [PATCH v6 19/20] regulator: s2mps11: add S2MPG11 regulator André Draszik
2026-01-05  9:01 ` [PATCH v6 20/20] regulator: s2mps11: more descriptive gpio consumer name André Draszik
2026-01-13 11:22 ` [PATCH v6 00/20] Samsung S2MPG10 regulator and S2MPG11 PMIC drivers Lee Jones
2026-01-13 16:20   ` Mark Brown
2026-01-13 17:28     ` André Draszik
2026-01-14 14:15       ` André Draszik
2026-01-14 15:50     ` Lee Jones
2026-01-14 16:02       ` Mark Brown
2026-01-20 12:16         ` André Draszik
2026-01-20 14:44           ` Lee Jones
2026-01-20 14:47             ` Lee Jones
2026-01-22 15:06 ` Lee Jones
2026-01-22 15:11   ` Lee Jones
2026-01-22 15:18     ` André Draszik
2026-01-22 15:49   ` André Draszik
2026-01-22 16:35 ` Lee Jones
2026-01-22 16:39   ` Lee Jones
2026-02-05 11:05 ` (subset) " Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox