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