Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2138301e authored by Ilkka Koskinen's avatar Ilkka Koskinen Committed by Mark Brown
Browse files

ASoC: tpa6130a2: Support for tpa6140's regulators



tpa6140a2 uses different names for the regulators.

Signed-off-by: default avatarIlkka Koskinen <ilkka.koskinen@nokia.com>
Acked-by: default avatarPeter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 53242c68
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -23,7 +23,13 @@
#ifndef TPA6130A2_PLAT_H
#define TPA6130A2_PLAT_H

enum tpa_model {
	TPA6130A2,
	TPA6140A2,
};

struct tpa6130a2_platform_data {
	enum tpa_model id;
	int power_gpio;
};

+20 −2
Original line number Diff line number Diff line
@@ -41,6 +41,11 @@ static const char *tpa6130a2_supply_names[TPA6130A2_NUM_SUPPLIES] = {
	"Vdd",
};

static const char *tpa6140a2_supply_names[TPA6130A2_NUM_SUPPLIES] = {
	"HPVdd",
	"AVdd",
};

/* This struct is used to save the context */
struct tpa6130a2_data {
	struct mutex mutex;
@@ -420,8 +425,21 @@ static int tpa6130a2_probe(struct i2c_client *client,
		gpio_direction_output(data->power_gpio, 0);
	}

	switch (pdata->id) {
	case TPA6130A2:
		for (i = 0; i < ARRAY_SIZE(data->supplies); i++)
			data->supplies[i].supply = tpa6130a2_supply_names[i];
		break;
	case TPA6140A2:
		for (i = 0; i < ARRAY_SIZE(data->supplies); i++)
			data->supplies[i].supply = tpa6140a2_supply_names[i];;
		break;
	default:
		dev_warn(dev, "Unknown TPA model (%d). Assuming 6130A2\n",
			 pdata->id);
		for (i = 0; i < ARRAY_SIZE(data->supplies); i++)
			data->supplies[i].supply = tpa6130a2_supply_names[i];
	}

	ret = regulator_bulk_get(dev, ARRAY_SIZE(data->supplies),
				 data->supplies);