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

ASoC: rt5682s: Support DBVDD and LDO1-IN supplies

parent 9354fa7f
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -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"))
+2 −0
Original line number Diff line number Diff line
@@ -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,
};