On 02/04/2025 10:12, Johan Hovold wrote:
On Thu, Mar 27, 2025 at 10:06:32AM +0000, Srinivas Kandagatla wrote:Thanks Johan,
From: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
On some platforms to minimise pop and click during switching between
CTIA and OMTP headset an additional HiFi mux is used. Most common
case is that this switch is switched on by default, but on some
platforms this needs a regulator enable.
move to using mux control to enable both regulator and handle gpios,
deprecate the usage of gpio.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
Tested-by: Christopher Obbard <christopher.obbard@xxxxxxxxxx>
@@ -3261,11 +3276,26 @@ static int wcd938x_populate_dt_data(struct wcd938x_priv *wcd938x, struct device
return dev_err_probe(dev, wcd938x->reset_gpio,
"Failed to get reset gpio\n");
- wcd938x->us_euro_gpio = devm_gpiod_get_optional(dev, "us-euro",
- GPIOD_OUT_LOW);
- if (IS_ERR(wcd938x->us_euro_gpio))
- return dev_err_probe(dev, PTR_ERR(wcd938x->us_euro_gpio),
- "us-euro swap Control GPIO not found\n");
+ wcd938x->us_euro_mux = devm_mux_control_get(dev, NULL);
Running with this patch on the CRD I noticed that this now prints an
error as there is no optional mux (or gpio) defined:
wcd938x_codec audio-codec: /audio-codec: failed to get mux-control (0)
This is not from codec driver, mux control is throwing up this.
I have a plan for this,
You need to suppress that error in mux_get() to allow for optional muxes
to be looked up like this.
I proposed some changes to mux api for exclusive apis at https:// lkml.org/lkml/2025/3/26/955
This should also allow us to easily add an optional api, which I plan to do once i get some feedback on this patch.
--srini