From b35201537564e8bbd769377fe5f449948203cde2 Mon Sep 17 00:00:00 2001 From: David Collins Date: Thu, 16 Jan 2020 16:17:27 -0800 Subject: [PATCH] regulator: refgen: add support for proxy consumers Add support to enforce proxy consumer requests defined in device tree for refgen devices. These can be used to ensure that regulators are not accidentally disabled or scaled down before all consumers have had a chance to make their own requests. Change-Id: I57ce2ac4162c29e749e1cd915241593d4ad262dc Signed-off-by: David Collins --- drivers/regulator/refgen.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/regulator/refgen.c b/drivers/regulator/refgen.c index d8d8093d6f6b..315dddbf28d0 100644 --- a/drivers/regulator/refgen.c +++ b/drivers/regulator/refgen.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only -/* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved. */ +/* Copyright (c) 2017, 2019-2020, The Linux Foundation. All rights reserved. */ #include #include @@ -14,6 +14,7 @@ #include #include #include +#include #define REFGEN_REG_BIAS_EN 0x08 #define REFGEN_BIAS_EN_MASK GENMASK(2, 0) @@ -204,6 +205,10 @@ static int refgen_probe(struct platform_device *pdev) return rc; } + rc = devm_regulator_proxy_consumer_register(dev, dev->of_node); + if (rc) + dev_err(dev, "failed to register proxy consumer, rc=%d\n", rc); + return 0; } @@ -212,6 +217,7 @@ static struct platform_driver refgen_driver = { .driver = { .name = "qcom,refgen-regulator", .of_match_table = refgen_match_table, + .sync_state = regulator_proxy_consumer_sync_state, }, };