Hi, On Thu, Mar 07, 2013 at 04:40:18PM +0200, Aaro Koskinen wrote: > Tahvo is a multi-function device on Nokia 770, implementing USB > transceiver and charge/battery control. > > It's so close to Retu that a single driver can support both. > > Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxx> > Cc: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx> > --- > drivers/mfd/Kconfig | 6 +-- > drivers/mfd/retu-mfd.c | 95 +++++++++++++++++++++++++++++++++++++++------- > include/linux/mfd/retu.h | 8 +++- > 3 files changed, 92 insertions(+), 17 deletions(-) > > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig > index 671f5b1..0c3bdae 100644 > --- a/drivers/mfd/Kconfig > +++ b/drivers/mfd/Kconfig > @@ -1101,13 +1101,13 @@ config MFD_VIPERBOARD > The drivers do not support all features the board exposes. > > config MFD_RETU > - tristate "Support for Retu multi-function device" > + tristate "Support for Retu and Tahvo multi-function devices" > select MFD_CORE > depends on I2C && GENERIC_HARDIRQS > select REGMAP_IRQ > help > - Retu is a multi-function device found on Nokia Internet Tablets > - (770, N800 and N810). > + Retu and Tahvo are multi-function devices found on Nokia > + Internet Tablets (770, N800 and N810). > > config MFD_AS3711 > bool "Support for AS3711" > diff --git a/drivers/mfd/retu-mfd.c b/drivers/mfd/retu-mfd.c > index 3ba0486..fa0204b 100644 > --- a/drivers/mfd/retu-mfd.c > +++ b/drivers/mfd/retu-mfd.c > @@ -1,5 +1,5 @@ > /* > - * Retu MFD driver > + * Retu/Tahvo MFD driver > * > * Copyright (C) 2004, 2005 Nokia Corporation > * > @@ -29,11 +29,15 @@ > #include <linux/interrupt.h> > #include <linux/moduleparam.h> > > +#define RETU_ID 0 > +#define TAHVO_ID 1 do you really need this ? Why didn't you use the i2c address as the device ID ? > @@ -173,9 +233,13 @@ static struct regmap_config retu_config = { > > static int retu_probe(struct i2c_client *i2c, const struct i2c_device_id *id) > { > + int chip = id->driver_data; > struct retu_dev *rdev; > int ret; > > + if (chip >= ARRAY_SIZE(retu_data)) > + return -EINVAL; you can figure this out without using 'chip'. Just use the i2c address. -- balbi
Attachment:
signature.asc
Description: Digital signature