mirror of
https://github.com/torvalds/linux.git
synced 2026-09-26 01:52:03 +02:00
iio: light: opt3001: use local struct device and i2c_client variables
Switch the driver to use local variables for struct device and struct i2c_client and remove struct device member from struct opt3001, as the former can be derived from struct client. No functional change. Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Joshua Crofts <joshua.crofts1@gmail.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
a3ed4362d3
commit
c9439c1de8
|
|
@ -101,7 +101,6 @@ struct opt3001_chip_info {
|
|||
|
||||
struct opt3001 {
|
||||
struct i2c_client *client;
|
||||
struct device *dev;
|
||||
|
||||
struct mutex lock;
|
||||
bool ok_to_ignore_lock;
|
||||
|
|
@ -313,6 +312,8 @@ static const struct iio_chan_spec opt3002_channels[] = {
|
|||
|
||||
static int opt3001_get_processed(struct opt3001 *opt, int *val, int *val2)
|
||||
{
|
||||
struct i2c_client *client = opt->client;
|
||||
struct device *dev = &client->dev;
|
||||
int ret;
|
||||
u16 mantissa;
|
||||
u16 reg;
|
||||
|
|
@ -326,12 +327,12 @@ static int opt3001_get_processed(struct opt3001 *opt, int *val, int *val2)
|
|||
* doing so will overwrite the low-level limit value however we
|
||||
* will restore this value later on.
|
||||
*/
|
||||
ret = i2c_smbus_write_word_swapped(opt->client,
|
||||
OPT3001_LOW_LIMIT,
|
||||
OPT3001_LOW_LIMIT_EOC_ENABLE);
|
||||
ret = i2c_smbus_write_word_swapped(client,
|
||||
OPT3001_LOW_LIMIT,
|
||||
OPT3001_LOW_LIMIT_EOC_ENABLE);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to write register %02x\n",
|
||||
OPT3001_LOW_LIMIT);
|
||||
dev_err(dev, "failed to write register %02x\n",
|
||||
OPT3001_LOW_LIMIT);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -343,21 +344,20 @@ static int opt3001_get_processed(struct opt3001 *opt, int *val, int *val2)
|
|||
opt->result_ready = false;
|
||||
|
||||
/* Configure for single-conversion mode and start a new conversion */
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
goto err;
|
||||
}
|
||||
|
||||
reg = ret;
|
||||
opt3001_set_mode(opt, ®, OPT3001_CONFIGURATION_M_SINGLE);
|
||||
|
||||
ret = i2c_smbus_write_word_swapped(opt->client, OPT3001_CONFIGURATION,
|
||||
reg);
|
||||
ret = i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to write register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
dev_err(dev, "failed to write register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
|
@ -377,10 +377,9 @@ static int opt3001_get_processed(struct opt3001 *opt, int *val, int *val2)
|
|||
msleep(timeout);
|
||||
|
||||
/* Check result ready flag */
|
||||
ret = i2c_smbus_read_word_swapped(opt->client,
|
||||
OPT3001_CONFIGURATION);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
goto err;
|
||||
}
|
||||
|
|
@ -391,9 +390,9 @@ static int opt3001_get_processed(struct opt3001 *opt, int *val, int *val2)
|
|||
}
|
||||
|
||||
/* Obtain value */
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_RESULT);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_RESULT);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_RESULT);
|
||||
goto err;
|
||||
}
|
||||
|
|
@ -418,12 +417,12 @@ static int opt3001_get_processed(struct opt3001 *opt, int *val, int *val2)
|
|||
* bit-overlap and therefore can't be done.
|
||||
*/
|
||||
value = (opt->low_thresh_exp << 12) | opt->low_thresh_mantissa;
|
||||
ret = i2c_smbus_write_word_swapped(opt->client,
|
||||
ret = i2c_smbus_write_word_swapped(client,
|
||||
OPT3001_LOW_LIMIT,
|
||||
value);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to write register %02x\n",
|
||||
OPT3001_LOW_LIMIT);
|
||||
dev_err(dev, "failed to write register %02x\n",
|
||||
OPT3001_LOW_LIMIT);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -446,13 +445,15 @@ static int opt3001_get_int_time(struct opt3001 *opt, int *val, int *val2)
|
|||
|
||||
static int opt3001_set_int_time(struct opt3001 *opt, int time)
|
||||
{
|
||||
struct i2c_client *client = opt->client;
|
||||
struct device *dev = &client->dev;
|
||||
int ret;
|
||||
u16 reg;
|
||||
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -471,8 +472,7 @@ static int opt3001_set_int_time(struct opt3001 *opt, int time)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
return i2c_smbus_write_word_swapped(opt->client, OPT3001_CONFIGURATION,
|
||||
reg);
|
||||
return i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg);
|
||||
}
|
||||
|
||||
static int opt3001_read_raw(struct iio_dev *iio,
|
||||
|
|
@ -567,6 +567,8 @@ static int opt3001_write_event_value(struct iio_dev *iio,
|
|||
int val, int val2)
|
||||
{
|
||||
struct opt3001 *opt = iio_priv(iio);
|
||||
struct i2c_client *client = opt->client;
|
||||
struct device *dev = &client->dev;
|
||||
int ret;
|
||||
int whole;
|
||||
int integer;
|
||||
|
|
@ -585,7 +587,7 @@ static int opt3001_write_event_value(struct iio_dev *iio,
|
|||
|
||||
ret = opt3001_find_scale(opt, val, val2, &exponent);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "can't find scale for %d.%06u\n", val, val2);
|
||||
dev_err(dev, "can't find scale for %d.%06u\n", val, val2);
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
|
@ -613,9 +615,9 @@ static int opt3001_write_event_value(struct iio_dev *iio,
|
|||
goto err;
|
||||
}
|
||||
|
||||
ret = i2c_smbus_write_word_swapped(opt->client, reg, value);
|
||||
ret = i2c_smbus_write_word_swapped(client, reg, value);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to write register %02x\n", reg);
|
||||
dev_err(dev, "failed to write register %02x\n", reg);
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
|
@ -639,6 +641,8 @@ static int opt3001_write_event_config(struct iio_dev *iio,
|
|||
enum iio_event_direction dir, bool state)
|
||||
{
|
||||
struct opt3001 *opt = iio_priv(iio);
|
||||
struct i2c_client *client = opt->client;
|
||||
struct device *dev = &client->dev;
|
||||
int ret;
|
||||
u16 mode;
|
||||
u16 reg;
|
||||
|
|
@ -654,21 +658,20 @@ static int opt3001_write_event_config(struct iio_dev *iio,
|
|||
mode = state ? OPT3001_CONFIGURATION_M_CONTINUOUS
|
||||
: OPT3001_CONFIGURATION_M_SHUTDOWN;
|
||||
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
goto err;
|
||||
}
|
||||
|
||||
reg = ret;
|
||||
opt3001_set_mode(opt, ®, mode);
|
||||
|
||||
ret = i2c_smbus_write_word_swapped(opt->client, OPT3001_CONFIGURATION,
|
||||
reg);
|
||||
ret = i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to write register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
dev_err(dev, "failed to write register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
|
@ -690,13 +693,15 @@ static const struct iio_info opt3001_info = {
|
|||
|
||||
static int opt3001_read_id(struct opt3001 *opt)
|
||||
{
|
||||
struct i2c_client *client = opt->client;
|
||||
struct device *dev = &client->dev;
|
||||
char manufacturer[2];
|
||||
u16 device_id;
|
||||
int ret;
|
||||
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_MANUFACTURER_ID);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_MANUFACTURER_ID);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_MANUFACTURER_ID);
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -704,29 +709,31 @@ static int opt3001_read_id(struct opt3001 *opt)
|
|||
manufacturer[0] = ret >> 8;
|
||||
manufacturer[1] = ret & 0xff;
|
||||
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_DEVICE_ID);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_DEVICE_ID);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_DEVICE_ID);
|
||||
return ret;
|
||||
}
|
||||
|
||||
device_id = ret;
|
||||
|
||||
dev_info(opt->dev, "Found %c%c OPT%04x\n", manufacturer[0],
|
||||
manufacturer[1], device_id);
|
||||
dev_info(dev, "Found %c%c OPT%04x\n", manufacturer[0], manufacturer[1],
|
||||
device_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int opt3001_configure(struct opt3001 *opt)
|
||||
{
|
||||
struct i2c_client *client = opt->client;
|
||||
struct device *dev = &client->dev;
|
||||
int ret;
|
||||
u16 reg;
|
||||
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -752,17 +759,16 @@ static int opt3001_configure(struct opt3001 *opt)
|
|||
reg &= ~OPT3001_CONFIGURATION_ME;
|
||||
reg &= ~OPT3001_CONFIGURATION_FC_MASK;
|
||||
|
||||
ret = i2c_smbus_write_word_swapped(opt->client, OPT3001_CONFIGURATION,
|
||||
reg);
|
||||
ret = i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to write register %02x\n",
|
||||
dev_err(dev, "failed to write register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_LOW_LIMIT);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_LOW_LIMIT);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_LOW_LIMIT);
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -770,9 +776,9 @@ static int opt3001_configure(struct opt3001 *opt)
|
|||
opt->low_thresh_mantissa = OPT3001_REG_MANTISSA(ret);
|
||||
opt->low_thresh_exp = OPT3001_REG_EXPONENT(ret);
|
||||
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_HIGH_LIMIT);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_HIGH_LIMIT);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_HIGH_LIMIT);
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -787,6 +793,8 @@ static irqreturn_t opt3001_irq(int irq, void *_iio)
|
|||
{
|
||||
struct iio_dev *iio = _iio;
|
||||
struct opt3001 *opt = iio_priv(iio);
|
||||
struct i2c_client *client = opt->client;
|
||||
struct device *dev = &client->dev;
|
||||
int ret;
|
||||
bool wake_result_ready_queue = false;
|
||||
enum iio_chan_type chan_type = opt->chip_info->chan_type;
|
||||
|
|
@ -795,10 +803,10 @@ static irqreturn_t opt3001_irq(int irq, void *_iio)
|
|||
if (!ok_to_ignore_lock)
|
||||
mutex_lock(&opt->lock);
|
||||
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
@ -817,10 +825,10 @@ static irqreturn_t opt3001_irq(int irq, void *_iio)
|
|||
IIO_EV_DIR_FALLING),
|
||||
iio_get_time_ns(iio));
|
||||
} else if (ret & OPT3001_CONFIGURATION_CRF) {
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_RESULT);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_RESULT);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
OPT3001_RESULT);
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_RESULT);
|
||||
goto out;
|
||||
}
|
||||
opt->result = ret;
|
||||
|
|
@ -853,7 +861,6 @@ static int opt3001_probe(struct i2c_client *client)
|
|||
|
||||
opt = iio_priv(iio);
|
||||
opt->client = client;
|
||||
opt->dev = dev;
|
||||
opt->chip_info = i2c_get_match_data(client);
|
||||
|
||||
mutex_init(&opt->lock);
|
||||
|
|
@ -887,7 +894,7 @@ static int opt3001_probe(struct i2c_client *client)
|
|||
}
|
||||
opt->use_irq = true;
|
||||
} else {
|
||||
dev_dbg(opt->dev, "enabling interrupt-less operation\n");
|
||||
dev_dbg(dev, "enabling interrupt-less operation\n");
|
||||
}
|
||||
|
||||
ret = iio_device_register(iio);
|
||||
|
|
@ -907,6 +914,7 @@ static void opt3001_remove(struct i2c_client *client)
|
|||
{
|
||||
struct iio_dev *iio = i2c_get_clientdata(client);
|
||||
struct opt3001 *opt = iio_priv(iio);
|
||||
struct device *dev = &client->dev;
|
||||
int ret;
|
||||
u16 reg;
|
||||
|
||||
|
|
@ -915,21 +923,20 @@ static void opt3001_remove(struct i2c_client *client)
|
|||
if (opt->use_irq)
|
||||
free_irq(client->irq, iio);
|
||||
|
||||
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION);
|
||||
ret = i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
dev_err(dev, "failed to read register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
return;
|
||||
}
|
||||
|
||||
reg = ret;
|
||||
opt3001_set_mode(opt, ®, OPT3001_CONFIGURATION_M_SHUTDOWN);
|
||||
|
||||
ret = i2c_smbus_write_word_swapped(opt->client, OPT3001_CONFIGURATION,
|
||||
reg);
|
||||
ret = i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg);
|
||||
if (ret < 0) {
|
||||
dev_err(opt->dev, "failed to write register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
dev_err(dev, "failed to write register %02x\n",
|
||||
OPT3001_CONFIGURATION);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user