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

Commit 492510dd authored by Marek Vasut's avatar Marek Vasut Committed by Lee Jones
Browse files

mfd: da9063: Replace model with type



The model number stored in the struct da9063 is the same for all
variants of the da9063 since it is the chip ID, which is always
the same. Replace that with a separate identifier instead, which
allows us to discern the DA9063 variants by setting the type
based on either DT match or otherwise.

Signed-off-by: default avatarMarek Vasut <marek.vasut+renesas@gmail.com>
Acked-by: default avatarMark Brown <broonie@kernel.org>
Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent df7878f9
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -215,7 +215,6 @@ int da9063_device_init(struct da9063 *da9063, unsigned int irq)
		return -ENODEV;
		return -ENODEV;
	}
	}


	da9063->model = model;
	da9063->variant_code = variant_code;
	da9063->variant_code = variant_code;


	ret = da9063_irq_init(da9063);
	ret = da9063_irq_init(da9063);
+3 −2
Original line number Original line Diff line number Diff line
@@ -158,6 +158,7 @@ static int da9063_i2c_probe(struct i2c_client *i2c,
	i2c_set_clientdata(i2c, da9063);
	i2c_set_clientdata(i2c, da9063);
	da9063->dev = &i2c->dev;
	da9063->dev = &i2c->dev;
	da9063->chip_irq = i2c->irq;
	da9063->chip_irq = i2c->irq;
	da9063->type = id->driver_data;


	if (da9063->variant_code == PMIC_DA9063_AD) {
	if (da9063->variant_code == PMIC_DA9063_AD) {
		da9063_regmap_config.rd_table = &da9063_ad_readable_table;
		da9063_regmap_config.rd_table = &da9063_ad_readable_table;
@@ -181,7 +182,7 @@ static int da9063_i2c_probe(struct i2c_client *i2c,
}
}


static const struct i2c_device_id da9063_i2c_id[] = {
static const struct i2c_device_id da9063_i2c_id[] = {
	{ "da9063", PMIC_CHIP_ID_DA9063 },
	{ "da9063", PMIC_TYPE_DA9063 },
	{},
	{},
};
};
MODULE_DEVICE_TABLE(i2c, da9063_i2c_id);
MODULE_DEVICE_TABLE(i2c, da9063_i2c_id);
+4 −4
Original line number Original line Diff line number Diff line
@@ -98,7 +98,7 @@ struct da9063_regulator_info {
struct da9063_dev_model {
struct da9063_dev_model {
	const struct da9063_regulator_info	*regulator_info;
	const struct da9063_regulator_info	*regulator_info;
	unsigned				n_regulators;
	unsigned				n_regulators;
	unsigned				dev_model;
	enum da9063_type			type;
};
};


/* Single regulator settings */
/* Single regulator settings */
@@ -585,7 +585,7 @@ static struct da9063_dev_model regulators_models[] = {
	{
	{
		.regulator_info = da9063_regulator_info,
		.regulator_info = da9063_regulator_info,
		.n_regulators = ARRAY_SIZE(da9063_regulator_info),
		.n_regulators = ARRAY_SIZE(da9063_regulator_info),
		.dev_model = PMIC_CHIP_ID_DA9063,
		.type = PMIC_TYPE_DA9063,
	},
	},
	{ }
	{ }
};
};
@@ -741,12 +741,12 @@ static int da9063_regulator_probe(struct platform_device *pdev)


	/* Find regulators set for particular device model */
	/* Find regulators set for particular device model */
	for (model = regulators_models; model->regulator_info; model++) {
	for (model = regulators_models; model->regulator_info; model++) {
		if (model->dev_model == da9063->model)
		if (model->type == da9063->type)
			break;
			break;
	}
	}
	if (!model->regulator_info) {
	if (!model->regulator_info) {
		dev_err(&pdev->dev, "Chip model not recognised (%u)\n",
		dev_err(&pdev->dev, "Chip model not recognised (%u)\n",
			da9063->model);
			da9063->type);
		return -ENODEV;
		return -ENODEV;
	}
	}


+5 −1
Original line number Original line Diff line number Diff line
@@ -31,6 +31,10 @@


#define PMIC_CHIP_ID_DA9063		0x61
#define PMIC_CHIP_ID_DA9063		0x61


enum da9063_type {
	PMIC_TYPE_DA9063 = 0,
};

enum da9063_variant_codes {
enum da9063_variant_codes {
	PMIC_DA9063_AD = 0x3,
	PMIC_DA9063_AD = 0x3,
	PMIC_DA9063_BB = 0x5,
	PMIC_DA9063_BB = 0x5,
@@ -73,7 +77,7 @@ enum da9063_irqs {
struct da9063 {
struct da9063 {
	/* Device */
	/* Device */
	struct device	*dev;
	struct device	*dev;
	unsigned short	model;
	enum da9063_type type;
	unsigned char	variant_code;
	unsigned char	variant_code;
	unsigned int	flags;
	unsigned int	flags;