Commit 5aab1a56 authored by Nícolas F. R. A. Prado's avatar Nícolas F. R. A. Prado Committed by Mark Brown

ASoC: rt5682s: Support DBVDD and LDO1-IN supplies

Add support for the DBVDD and LDO1-IN supplies.
Reviewed-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: default avatarNícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20221102182002.255282-6-nfraprado@collabora.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 9354fa7f
...@@ -44,6 +44,8 @@ static const struct rt5682s_platform_data i2s_default_platform_data = { ...@@ -44,6 +44,8 @@ static const struct rt5682s_platform_data i2s_default_platform_data = {
static const char *rt5682s_supply_names[RT5682S_NUM_SUPPLIES] = { static const char *rt5682s_supply_names[RT5682S_NUM_SUPPLIES] = {
[RT5682S_SUPPLY_AVDD] = "AVDD", [RT5682S_SUPPLY_AVDD] = "AVDD",
[RT5682S_SUPPLY_MICVDD] = "MICVDD", [RT5682S_SUPPLY_MICVDD] = "MICVDD",
[RT5682S_SUPPLY_DBVDD] = "DBVDD",
[RT5682S_SUPPLY_LDO1_IN] = "LDO1-IN",
}; };
static const struct reg_sequence patch_list[] = { static const struct reg_sequence patch_list[] = {
...@@ -3089,6 +3091,14 @@ static void rt5682s_i2c_disable_regulators(void *data) ...@@ -3089,6 +3091,14 @@ static void rt5682s_i2c_disable_regulators(void *data)
if (ret) if (ret)
dev_err(dev, "Failed to disable supply AVDD: %d\n", 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); usleep_range(1000, 1500);
ret = regulator_disable(rt5682s->supplies[RT5682S_SUPPLY_MICVDD].consumer); ret = regulator_disable(rt5682s->supplies[RT5682S_SUPPLY_MICVDD].consumer);
...@@ -3150,6 +3160,18 @@ static int rt5682s_i2c_probe(struct i2c_client *i2c) ...@@ -3150,6 +3160,18 @@ static int rt5682s_i2c_probe(struct i2c_client *i2c)
return ret; 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 (gpio_is_valid(rt5682s->pdata.ldo1_en)) {
if (devm_gpio_request_one(&i2c->dev, rt5682s->pdata.ldo1_en, if (devm_gpio_request_one(&i2c->dev, rt5682s->pdata.ldo1_en,
GPIOF_OUT_INIT_HIGH, "rt5682s")) GPIOF_OUT_INIT_HIGH, "rt5682s"))
......
...@@ -1438,6 +1438,8 @@ struct pll_calc_map { ...@@ -1438,6 +1438,8 @@ struct pll_calc_map {
enum { enum {
RT5682S_SUPPLY_AVDD, RT5682S_SUPPLY_AVDD,
RT5682S_SUPPLY_MICVDD, RT5682S_SUPPLY_MICVDD,
RT5682S_SUPPLY_DBVDD,
RT5682S_SUPPLY_LDO1_IN,
RT5682S_NUM_SUPPLIES, RT5682S_NUM_SUPPLIES,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment