[RFC PATCH v2 0/3] Add regulator_lookup_list and API

From: Daniel Scally
Date: Tue Aug 24 2021 - 19:06:45 EST


Hello all

This series adds a new list to the regulator core; regulator_lookup_list.
The intended purpose of this is to allow board files to pass instances of
struct regulator_init_data to regulators that are being registered by
_other_ pieces of code.

The problem this is intended to solve is where ACPI enumerates i2c devices
that provide one or more regulators, but which do not have any power
control methods defined in ACPI. This leaves the consumers of those
regulators unable to use them. With this series, the regulator drivers for
those i2c devices can bind and register regulators which will pick up the
init data as though it were parsed from devicetree. The new API emulates
gpiod_add_lookup_table() to allow early-running code to fill in that
init_data so that it's available by the time the i2c driver probes and
registers the regulators.

This is marked v2, because an earlier series [1] had the same aims albeit
using a totally different methodology. There's little commonality between
them, but I include the reference for context.

Thanks
Dan

[1] https://lore.kernel.org/platform-driver-x86/20210708224226.457224-1-djrscally@xxxxxxxxx/

Daniel Scally (3):
regulator: core: Add regulator_lookup_list
Documentation: power: Document regulator_lookup_list
platform/surface: Add Surface Go 2 board file

Documentation/power/regulator/machine.rst | 31 ++++++
MAINTAINERS | 6 ++
drivers/platform/surface/Kconfig | 10 ++
drivers/platform/surface/Makefile | 1 +
drivers/platform/surface/surface_go_2.c | 97 ++++++++++++++++++
drivers/regulator/core.c | 119 +++++++++++++++++++++-
include/linux/regulator/machine.h | 23 +++++
7 files changed, 286 insertions(+), 1 deletion(-)
create mode 100644 drivers/platform/surface/surface_go_2.c

--
2.25.1