public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] ASoC: codecs: wcd937x: Add conditional regulator control for wcd937x
@ 2026-04-02  7:22 karthik.s
  2026-04-02  7:30 ` Krzysztof Kozlowski
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: karthik.s @ 2026-04-02  7:22 UTC (permalink / raw)
  To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Jaroslav Kysela, Takashi Iwai
  Cc: linux-sound, linux-arm-msm, devicetree, linux-kernel, karthik.s

Add has_always_on_supplies for managing regulators. Indicates that the
codec power supplies are provided by the board as always-on rails and
are not switchable by the codec or its associated regulators. This implies
that the codec supply regulators are always enabled by the system and
must not be requested or enabled by the codec driver.

Signed-off-by: karthik.s <karthik.s@oss.qualcomm.com>
---
 .../devicetree/bindings/sound/qcom,wcd937x.yaml     |  8 ++++++++
 sound/soc/codecs/wcd937x.c                          | 13 +++++++++----
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/qcom,wcd937x.yaml b/Documentation/devicetree/bindings/sound/qcom,wcd937x.yaml
index f94203798f24..38b3452788e9 100644
--- a/Documentation/devicetree/bindings/sound/qcom,wcd937x.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,wcd937x.yaml
@@ -28,6 +28,14 @@ properties:
   vdd-px-supply:
     description: A reference to the 1.8V I/O supply
 
+  qcom,always-on-supply:
+    type: boolean
+    description: Indicates that the codec power supplies are provided by the board
+                 as always-on rails and are not switchable by the codec or its
+                 associated regulators. This implies that the codec supply regulators
+                 are always enabled by the system and must not be requested or enabled
+                 by the codec driver.
+
 required:
   - compatible
   - vdd-px-supply
diff --git a/sound/soc/codecs/wcd937x.c b/sound/soc/codecs/wcd937x.c
index 10a2d598caa7..1514ceb7d790 100644
--- a/sound/soc/codecs/wcd937x.c
+++ b/sound/soc/codecs/wcd937x.c
@@ -100,6 +100,7 @@ struct wcd937x_priv {
 	int aux_pdm_wd_int;
 	bool comp1_enable;
 	bool comp2_enable;
+	bool has_always_on_supplies;
 
 	struct gpio_desc *us_euro_gpio;
 	struct gpio_desc *reset_gpio;
@@ -2907,10 +2908,14 @@ static int wcd937x_probe(struct platform_device *pdev)
 	cfg = &wcd937x->mbhc_cfg;
 	cfg->swap_gnd_mic = wcd937x_swap_gnd_mic;
 
-	ret = devm_regulator_bulk_get_enable(dev, ARRAY_SIZE(wcd937x_supplies),
-					     wcd937x_supplies);
-	if (ret)
-		return dev_err_probe(dev, ret, "Failed to get and enable supplies\n");
+	wcd937x->has_always_on_supplies = of_property_read_bool(dev->of_node,
+							"qcom,always-on-supply");
+	if (!wcd937x->has_always_on_supplies) {
+		ret = devm_regulator_bulk_get_enable(dev, ARRAY_SIZE(wcd937x_supplies),
+						wcd937x_supplies);
+		if (ret)
+			return dev_err_probe(dev, ret, "Failed to get and enable supplies\n");
+	}
 
 	ret = wcd_dt_parse_micbias_info(&wcd937x->common);
 	if (ret)
-- 
2.34.1


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

end of thread, other threads:[~2026-04-06  9:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-02  7:22 [PATCH v2] ASoC: codecs: wcd937x: Add conditional regulator control for wcd937x karthik.s
2026-04-02  7:30 ` Krzysztof Kozlowski
     [not found]   ` <CAPg2bp0DeOcQB-=VJDC5SSiFLLFL6PBPJUBHXSOP9EJZA3+bqw@mail.gmail.com>
2026-04-02  7:50     ` Krzysztof Kozlowski
2026-04-06  9:52   ` Karthik S
2026-04-02  8:29 ` Rob Herring (Arm)
2026-04-06  9:58   ` Karthik S
2026-04-02 11:23 ` Mark Brown

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