]> git.itanic.dy.fi Git - linux-stable/commitdiff
ASoC: rt5682s: Support DBVDD and LDO1-IN supplies
authorNícolas F. R. A. Prado <nfraprado@collabora.com>
Wed, 2 Nov 2022 18:19:59 +0000 (14:19 -0400)
committerMark Brown <broonie@kernel.org>
Mon, 7 Nov 2022 16:12:39 +0000 (16:12 +0000)
Add support for the DBVDD and LDO1-IN supplies.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20221102182002.255282-6-nfraprado@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5682s.c
sound/soc/codecs/rt5682s.h

index 80c673aa14db8f272fce209a36cf70a8ef3c48bd..f5e5dbc3b0f0443c61006a2a5616e83b8db9065a 100644 (file)
@@ -44,6 +44,8 @@ static const struct rt5682s_platform_data i2s_default_platform_data = {
 static const char *rt5682s_supply_names[RT5682S_NUM_SUPPLIES] = {
        [RT5682S_SUPPLY_AVDD] = "AVDD",
        [RT5682S_SUPPLY_MICVDD] = "MICVDD",
+       [RT5682S_SUPPLY_DBVDD] = "DBVDD",
+       [RT5682S_SUPPLY_LDO1_IN] = "LDO1-IN",
 };
 
 static const struct reg_sequence patch_list[] = {
@@ -3089,6 +3091,14 @@ static void rt5682s_i2c_disable_regulators(void *data)
        if (ret)
                dev_err(dev, "Failed to disable supply AVDD: %d\n", ret);
 
+       ret = regulator_disable(rt5682s->supplies[RT5682S_SUPPLY_DBVDD].consumer);
+       if (ret)
+               dev_err(dev, "Failed to disable supply DBVDD: %d\n", ret);
+
+       ret = regulator_disable(rt5682s->supplies[RT5682S_SUPPLY_LDO1_IN].consumer);
+       if (ret)
+               dev_err(dev, "Failed to disable supply LDO1-IN: %d\n", ret);
+
        usleep_range(1000, 1500);
 
        ret = regulator_disable(rt5682s->supplies[RT5682S_SUPPLY_MICVDD].consumer);
@@ -3150,6 +3160,18 @@ static int rt5682s_i2c_probe(struct i2c_client *i2c)
                return ret;
        }
 
+       ret = regulator_enable(rt5682s->supplies[RT5682S_SUPPLY_DBVDD].consumer);
+       if (ret) {
+               dev_err(&i2c->dev, "Failed to enable supply DBVDD: %d\n", ret);
+               return ret;
+       }
+
+       ret = regulator_enable(rt5682s->supplies[RT5682S_SUPPLY_LDO1_IN].consumer);
+       if (ret) {
+               dev_err(&i2c->dev, "Failed to enable supply LDO1-IN: %d\n", ret);
+               return ret;
+       }
+
        if (gpio_is_valid(rt5682s->pdata.ldo1_en)) {
                if (devm_gpio_request_one(&i2c->dev, rt5682s->pdata.ldo1_en,
                                          GPIOF_OUT_INIT_HIGH, "rt5682s"))
index 45464a0417654c187102954f98057a3d5d006e1e..67f86a38a1cce1173c041aa89d989eac8b269819 100644 (file)
@@ -1438,6 +1438,8 @@ struct pll_calc_map {
 enum {
        RT5682S_SUPPLY_AVDD,
        RT5682S_SUPPLY_MICVDD,
+       RT5682S_SUPPLY_DBVDD,
+       RT5682S_SUPPLY_LDO1_IN,
        RT5682S_NUM_SUPPLIES,
 };