summaryrefslogtreecommitdiff
path: root/drivers/mfd/rn5t618.c
diff options
context:
space:
mode:
authorAndreas Kemnade <andreas@kemnade.info>2020-03-20 09:11:02 +0100
committerLee Jones <lee.jones@linaro.org>2020-03-27 09:42:25 +0000
commitbc61676617d3d8da0eec3979a4922e7371ce48af (patch)
treec9e1a6af0c3b1a493e2935aac55253304a3488f4 /drivers/mfd/rn5t618.c
parent11027ce6f1d2a20af16b0eae3d21d3ab78089262 (diff)
mfd: rn5t618: Add more subdevices
Since the RC5T619 has a RTC, use a separate subdevice list for that. The ADC should be the same as in the RN5T618, according to drivers in the wild, but since it is not tested, the ADC is only added for the RC5T619. Signed-off-by: Andreas Kemnade <andreas@kemnade.info> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd/rn5t618.c')
-rw-r--r--drivers/mfd/rn5t618.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/drivers/mfd/rn5t618.c b/drivers/mfd/rn5t618.c
index 7686cc36e8c0..bc117adede4c 100644
--- a/drivers/mfd/rn5t618.c
+++ b/drivers/mfd/rn5t618.c
@@ -14,6 +14,7 @@
#include <linux/mfd/rn5t618.h>
#include <linux/module.h>
#include <linux/of_device.h>
+#include <linux/platform_device.h>
#include <linux/reboot.h>
#include <linux/regmap.h>
@@ -22,6 +23,13 @@ static const struct mfd_cell rn5t618_cells[] = {
{ .name = "rn5t618-wdt" },
};
+static const struct mfd_cell rc5t619_cells[] = {
+ { .name = "rn5t618-adc" },
+ { .name = "rn5t618-regulator" },
+ { .name = "rc5t619-rtc" },
+ { .name = "rn5t618-wdt" },
+};
+
static bool rn5t618_volatile_reg(struct device *dev, unsigned int reg)
{
switch (reg) {
@@ -167,8 +175,16 @@ static int rn5t618_i2c_probe(struct i2c_client *i2c,
return ret;
}
- ret = devm_mfd_add_devices(&i2c->dev, -1, rn5t618_cells,
- ARRAY_SIZE(rn5t618_cells), NULL, 0, NULL);
+ if (priv->variant == RC5T619)
+ ret = devm_mfd_add_devices(&i2c->dev, PLATFORM_DEVID_NONE,
+ rc5t619_cells,
+ ARRAY_SIZE(rc5t619_cells),
+ NULL, 0, NULL);
+ else
+ ret = devm_mfd_add_devices(&i2c->dev, PLATFORM_DEVID_NONE,
+ rn5t618_cells,
+ ARRAY_SIZE(rn5t618_cells),
+ NULL, 0, NULL);
if (ret) {
dev_err(&i2c->dev, "failed to add sub-devices: %d\n", ret);
return ret;