On 04/12/16 02:19, Brian Masney wrote: > isl29028_chip_init() contains the device driver defaults and > two I2C calls that detect the presence of the chip. This patch > moves these into isl29028_probe() so that this function can > be used by the power management runtinme in a followup patch. This > patch also renames isl29028_chip_init() to > isl29028_chip_init_and_power_on(). > > Signed-off-by: Brian Masney <masneyb@xxxxxxxxxxxxx> I've skipped patch 2 for now but will carry on applying until they stop going in cleanly. Applied to the togreg branch of iio.git. Thanks, Jonathan > --- > drivers/staging/iio/light/isl29028.c | 42 +++++++++++++++++++----------------- > 1 file changed, 22 insertions(+), 20 deletions(-) > > diff --git a/drivers/staging/iio/light/isl29028.c b/drivers/staging/iio/light/isl29028.c > index c8e234d..4f819a8 100644 > --- a/drivers/staging/iio/light/isl29028.c > +++ b/drivers/staging/iio/light/isl29028.c > @@ -416,29 +416,11 @@ static const struct iio_info isl29028_info = { > .write_raw = isl29028_write_raw, > }; > > -static int isl29028_chip_init(struct isl29028_chip *chip) > +static int isl29028_chip_init_and_power_on(struct isl29028_chip *chip) > { > struct device *dev = regmap_get_device(chip->regmap); > int ret; > > - chip->enable_prox = false; > - chip->prox_sampling = 20; > - chip->lux_scale = 2000; > - chip->als_ir_mode = ISL29028_MODE_NONE; > - > - ret = regmap_write(chip->regmap, ISL29028_REG_TEST1_MODE, 0x0); > - if (ret < 0) { > - dev_err(dev, "%s(): write to reg %d failed, err = %d\n", > - __func__, ISL29028_REG_TEST1_MODE, ret); > - return ret; > - } > - ret = regmap_write(chip->regmap, ISL29028_REG_TEST2_MODE, 0x0); > - if (ret < 0) { > - dev_err(dev, "%s(): write to reg %d failed, err = %d\n", > - __func__, ISL29028_REG_TEST2_MODE, ret); > - return ret; > - } > - > ret = regmap_write(chip->regmap, ISL29028_REG_CONFIGURE, 0x0); > if (ret < 0) { > dev_err(dev, "%s(): write to reg %d failed, err = %d\n", > @@ -506,7 +488,27 @@ static int isl29028_probe(struct i2c_client *client, > return ret; > } > > - ret = isl29028_chip_init(chip); > + chip->enable_prox = false; > + chip->prox_sampling = 20; > + chip->lux_scale = 2000; > + chip->als_ir_mode = ISL29028_MODE_NONE; > + > + ret = regmap_write(chip->regmap, ISL29028_REG_TEST1_MODE, 0x0); > + if (ret < 0) { > + dev_err(&client->dev, > + "%s(): write to reg %d failed, err = %d\n", __func__, > + ISL29028_REG_TEST1_MODE, ret); > + return ret; > + } > + ret = regmap_write(chip->regmap, ISL29028_REG_TEST2_MODE, 0x0); > + if (ret < 0) { > + dev_err(&client->dev, > + "%s(): write to reg %d failed, err = %d\n", __func__, > + ISL29028_REG_TEST2_MODE, ret); > + return ret; > + } > + > + ret = isl29028_chip_init_and_power_on(chip); > if (ret < 0) { > dev_err(&client->dev, "chip initialization failed: %d\n", ret); > return ret; > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel