summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBrian Masney <masneyb@onstation.org>2016-12-03 21:19:27 -0500
committerJonathan Cameron <jic23@kernel.org>2016-12-04 11:23:00 +0000
commit58f643669e872b9293603bd4ae19df796cb4b78a (patch)
treeb8d1faa40a541ae7ac7a39642139b61b006aac44 /drivers
parentf40531d1e7848cf49f323f91a653d16caac27431 (diff)
downloadlinux-58f643669e872b9293603bd4ae19df796cb4b78a.tar.bz2
staging: iio: isl29028: remove chip test and defaults from isl29028_chip_init()
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@onstation.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/iio/light/isl29028.c42
1 files changed, 22 insertions, 20 deletions
diff --git a/drivers/staging/iio/light/isl29028.c b/drivers/staging/iio/light/isl29028.c
index 4e35d00a3e56..426e8911a5ee 100644
--- a/drivers/staging/iio/light/isl29028.c
+++ b/drivers/staging/iio/light/isl29028.c
@@ -418,29 +418,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",
@@ -508,7 +490,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;