Add tps65917 PMIC support. tps65917 is a subset of palmas PMIC.[...]
Some of the register definitions and the interrupt mappings
are different.
Signed-off-by: Keerthy <j-keerthy@xxxxxx>
---
drivers/mfd/palmas.c | 176 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 171 insertions(+), 5 deletions(-)
diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c
index d280d78..485d755 100644
--- a/drivers/mfd/palmas.c
+++ b/drivers/mfd/palmas.c
+struct palmas_driver_data {[...]
+ unsigned int *features;
+ struct regmap_irq_chip *irq_chip;
+};
+
+static struct palmas_driver_data palmas_data = {
+ .features = &palmas_features,
+ .irq_chip = &palmas_irq_chip,
+};
+
+static struct palmas_driver_data tps659038_data = {
+ .features = &tps659038_features,
+ .irq_chip = &palmas_irq_chip,
+};
+
+static struct palmas_driver_data tps65917_data = {
+ .features = &tps659038_features,
+ .irq_chip = &tps65917_irq_chip,
+};
+
@@ -375,6 +539,7 @@ static int palmas_i2c_probe(struct i2c_client *i2c,Couple of things a) I don't think the cast is required here and b) you
{
struct palmas *palmas;
struct palmas_platform_data *pdata;
+ struct palmas_driver_data *driver_data;
struct device_node *node = i2c->dev.of_node;
int ret = 0, i;
unsigned int reg, addr, *features;
@@ -408,7 +573,8 @@ static int palmas_i2c_probe(struct i2c_client *i2c,
if (!match)
return -ENODATA;
- features = (unsigned int *)match->data;
+ driver_data = (struct palmas_driver_data *)match->data;
+ features = (unsigned int *)driver_data->features;
palmas->features = *features;
may as well do away with the local features variable here.
Just do:
palmas->features = *driver_data->features;
Once fixed, re-submit with my:
Acked-by: Lee Jones <lee.jones@xxxxxxxxxx>