diff options
Diffstat (limited to 'drivers/iio/adc')
79 files changed, 222 insertions, 223 deletions
diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index 1d13bf03c758..ef86296b8b0d 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -477,12 +477,13 @@ config	MAX9611  	  called max9611.  config MCP320X -	tristate "Microchip Technology MCP3x01/02/04/08" +	tristate "Microchip Technology MCP3x01/02/04/08 and MCP3550/1/3"  	depends on SPI  	help  	  Say yes here to build support for Microchip Technology's  	  MCP3001, MCP3002, MCP3004, MCP3008, MCP3201, MCP3202, MCP3204, -	  MCP3208 or MCP3301 analog to digital converter. +	  MCP3208, MCP3301, MCP3550, MCP3551 and MCP3553 analog to digital +	  converters.  	  This driver can also be built as a module. If so, the module will be  	  called mcp320x. @@ -595,7 +596,7 @@ config QCOM_SPMI_VADC  config RCAR_GYRO_ADC  	tristate "Renesas R-Car GyroADC driver" -	depends on ARCH_RCAR_GEN2 || (ARM && COMPILE_TEST) +	depends on ARCH_RCAR_GEN2 || COMPILE_TEST  	help  	  Say yes here to build support for the GyroADC found in Renesas  	  R-Car Gen2 SoCs. This block is a simple SPI offload engine for diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile index 9874e05f52d7..9572c1090f35 100644 --- a/drivers/iio/adc/Makefile +++ b/drivers/iio/adc/Makefile @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0  #  # Makefile for IIO ADC drivers  # diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c index b8d5cfd57ec4..605eb5e7e829 100644 --- a/drivers/iio/adc/ad7266.c +++ b/drivers/iio/adc/ad7266.c @@ -280,7 +280,6 @@ static AD7266_DECLARE_DIFF_CHANNELS_FIXED(u, 'u');  static const struct iio_info ad7266_info = {  	.read_raw = &ad7266_read_raw,  	.update_scan_mode = &ad7266_update_scan_mode, -	.driver_module = THIS_MODULE,  };  static const unsigned long ad7266_available_scan_masks[] = { diff --git a/drivers/iio/adc/ad7291.c b/drivers/iio/adc/ad7291.c index 1d90b02732bb..a862b5d8fb4b 100644 --- a/drivers/iio/adc/ad7291.c +++ b/drivers/iio/adc/ad7291.c @@ -461,7 +461,6 @@ static const struct iio_info ad7291_info = {  	.write_event_config = &ad7291_write_event_config,  	.read_event_value = &ad7291_read_event_value,  	.write_event_value = &ad7291_write_event_value, -	.driver_module = THIS_MODULE,  };  static int ad7291_probe(struct i2c_client *client, diff --git a/drivers/iio/adc/ad7298.c b/drivers/iio/adc/ad7298.c index e399bf04c73a..2b20c6c8ec7f 100644 --- a/drivers/iio/adc/ad7298.c +++ b/drivers/iio/adc/ad7298.c @@ -280,7 +280,6 @@ static int ad7298_read_raw(struct iio_dev *indio_dev,  static const struct iio_info ad7298_info = {  	.read_raw = &ad7298_read_raw,  	.update_scan_mode = ad7298_update_scan_mode, -	.driver_module = THIS_MODULE,  };  static int ad7298_probe(struct spi_device *spi) diff --git a/drivers/iio/adc/ad7476.c b/drivers/iio/adc/ad7476.c index b7ecf9aab90f..b7706bf10ffe 100644 --- a/drivers/iio/adc/ad7476.c +++ b/drivers/iio/adc/ad7476.c @@ -195,7 +195,6 @@ static const struct ad7476_chip_info ad7476_chip_info_tbl[] = {  };  static const struct iio_info ad7476_info = { -	.driver_module = THIS_MODULE,  	.read_raw = &ad7476_read_raw,  }; diff --git a/drivers/iio/adc/ad7766.c b/drivers/iio/adc/ad7766.c index ce45037295d8..3ae14fc8c649 100644 --- a/drivers/iio/adc/ad7766.c +++ b/drivers/iio/adc/ad7766.c @@ -185,7 +185,6 @@ static const struct iio_buffer_setup_ops ad7766_buffer_setup_ops = {  };  static const struct iio_info ad7766_info = { -	.driver_module = THIS_MODULE,  	.read_raw = &ad7766_read_raw,  }; @@ -208,7 +207,6 @@ static int ad7766_set_trigger_state(struct iio_trigger *trig, bool enable)  }  static const struct iio_trigger_ops ad7766_trigger_ops = { -	.owner = THIS_MODULE,  	.set_trigger_state = ad7766_set_trigger_state,  	.validate_device = iio_trigger_validate_own_device,  }; diff --git a/drivers/iio/adc/ad7791.c b/drivers/iio/adc/ad7791.c index 34e353c43ac8..70fbf92f9827 100644 --- a/drivers/iio/adc/ad7791.c +++ b/drivers/iio/adc/ad7791.c @@ -308,13 +308,11 @@ static const struct iio_info ad7791_info = {  	.read_raw = &ad7791_read_raw,  	.attrs = &ad7791_attribute_group,  	.validate_trigger = ad_sd_validate_trigger, -	.driver_module = THIS_MODULE,  };  static const struct iio_info ad7791_no_filter_info = {  	.read_raw = &ad7791_read_raw,  	.validate_trigger = ad_sd_validate_trigger, -	.driver_module = THIS_MODULE,  };  static int ad7791_setup(struct ad7791_state *st, diff --git a/drivers/iio/adc/ad7793.c b/drivers/iio/adc/ad7793.c index 47c3d7f32900..801afb61310b 100644 --- a/drivers/iio/adc/ad7793.c +++ b/drivers/iio/adc/ad7793.c @@ -563,7 +563,6 @@ static const struct iio_info ad7793_info = {  	.write_raw_get_fmt = &ad7793_write_raw_get_fmt,  	.attrs = &ad7793_attribute_group,  	.validate_trigger = ad_sd_validate_trigger, -	.driver_module = THIS_MODULE,  };  static const struct iio_info ad7797_info = { @@ -572,7 +571,6 @@ static const struct iio_info ad7797_info = {  	.write_raw_get_fmt = &ad7793_write_raw_get_fmt,  	.attrs = &ad7793_attribute_group,  	.validate_trigger = ad_sd_validate_trigger, -	.driver_module = THIS_MODULE,  };  #define DECLARE_AD7793_CHANNELS(_name, _b, _sb, _s) \ diff --git a/drivers/iio/adc/ad7887.c b/drivers/iio/adc/ad7887.c index 7a483bfbd70c..205c0f1761aa 100644 --- a/drivers/iio/adc/ad7887.c +++ b/drivers/iio/adc/ad7887.c @@ -229,7 +229,6 @@ static const struct ad7887_chip_info ad7887_chip_info_tbl[] = {  static const struct iio_info ad7887_info = {  	.read_raw = &ad7887_read_raw, -	.driver_module = THIS_MODULE,  };  static int ad7887_probe(struct spi_device *spi) diff --git a/drivers/iio/adc/ad7923.c b/drivers/iio/adc/ad7923.c index 77a675e11ebb..ffb7e089969c 100644 --- a/drivers/iio/adc/ad7923.c +++ b/drivers/iio/adc/ad7923.c @@ -262,7 +262,6 @@ static int ad7923_read_raw(struct iio_dev *indio_dev,  static const struct iio_info ad7923_info = {  	.read_raw = &ad7923_read_raw,  	.update_scan_mode = ad7923_update_scan_mode, -	.driver_module = THIS_MODULE,  };  static int ad7923_probe(struct spi_device *spi) diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c index 22426ae4af97..e1da67d5ee22 100644 --- a/drivers/iio/adc/ad799x.c +++ b/drivers/iio/adc/ad799x.c @@ -526,13 +526,11 @@ static const struct attribute_group ad799x_event_attrs_group = {  static const struct iio_info ad7991_info = {  	.read_raw = &ad799x_read_raw, -	.driver_module = THIS_MODULE,  	.update_scan_mode = ad799x_update_scan_mode,  };  static const struct iio_info ad7993_4_7_8_noirq_info = {  	.read_raw = &ad799x_read_raw, -	.driver_module = THIS_MODULE,  	.update_scan_mode = ad799x_update_scan_mode,  }; @@ -543,7 +541,6 @@ static const struct iio_info ad7993_4_7_8_irq_info = {  	.write_event_config = &ad799x_write_event_config,  	.read_event_value = &ad799x_read_event_value,  	.write_event_value = &ad799x_write_event_value, -	.driver_module = THIS_MODULE,  	.update_scan_mode = ad799x_update_scan_mode,  }; diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c index 22c4c17cd996..cf1b048b0665 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -463,7 +463,6 @@ int ad_sd_validate_trigger(struct iio_dev *indio_dev, struct iio_trigger *trig)  EXPORT_SYMBOL_GPL(ad_sd_validate_trigger);  static const struct iio_trigger_ops ad_sd_trigger_ops = { -	.owner = THIS_MODULE,  };  static int ad_sd_probe_trigger(struct iio_dev *indio_dev) diff --git a/drivers/iio/adc/aspeed_adc.c b/drivers/iio/adc/aspeed_adc.c index c02b23d675cb..8a958d5f1905 100644 --- a/drivers/iio/adc/aspeed_adc.c +++ b/drivers/iio/adc/aspeed_adc.c @@ -165,7 +165,6 @@ static int aspeed_adc_reg_access(struct iio_dev *indio_dev,  }  static const struct iio_info aspeed_adc_iio_info = { -	.driver_module = THIS_MODULE,  	.read_raw = aspeed_adc_read_raw,  	.write_raw = aspeed_adc_write_raw,  	.debugfs_reg_access = aspeed_adc_reg_access, diff --git a/drivers/iio/adc/at91-sama5d2_adc.c b/drivers/iio/adc/at91-sama5d2_adc.c index a70ef7fec95f..755a493c2a2c 100644 --- a/drivers/iio/adc/at91-sama5d2_adc.c +++ b/drivers/iio/adc/at91-sama5d2_adc.c @@ -348,7 +348,6 @@ static int at91_adc_reenable_trigger(struct iio_trigger *trig)  }  static const struct iio_trigger_ops at91_adc_trigger_ops = { -	.owner = THIS_MODULE,  	.set_trigger_state = &at91_adc_configure_trigger,  	.try_reenable = &at91_adc_reenable_trigger,  }; @@ -584,7 +583,6 @@ static int at91_adc_write_raw(struct iio_dev *indio_dev,  static const struct iio_info at91_adc_info = {  	.read_raw = &at91_adc_read_raw,  	.write_raw = &at91_adc_write_raw, -	.driver_module = THIS_MODULE,  };  static void at91_adc_hw_init(struct at91_adc_state *st) diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c index 15109728cae7..3836d4222a3e 100644 --- a/drivers/iio/adc/at91_adc.c +++ b/drivers/iio/adc/at91_adc.c @@ -594,7 +594,6 @@ static int at91_adc_configure_trigger(struct iio_trigger *trig, bool state)  }  static const struct iio_trigger_ops at91_adc_trigger_ops = { -	.owner = THIS_MODULE,  	.set_trigger_state = &at91_adc_configure_trigger,  }; @@ -976,7 +975,6 @@ static int at91_adc_probe_pdata(struct at91_adc_state *st,  }  static const struct iio_info at91_adc_info = { -	.driver_module = THIS_MODULE,  	.read_raw = &at91_adc_read_raw,  }; diff --git a/drivers/iio/adc/axp20x_adc.c b/drivers/iio/adc/axp20x_adc.c index 11e177180ea0..a30a97245e91 100644 --- a/drivers/iio/adc/axp20x_adc.c +++ b/drivers/iio/adc/axp20x_adc.c @@ -464,12 +464,10 @@ static int axp20x_write_raw(struct iio_dev *indio_dev,  static const struct iio_info axp20x_adc_iio_info = {  	.read_raw = axp20x_read_raw,  	.write_raw = axp20x_write_raw, -	.driver_module = THIS_MODULE,  };  static const struct iio_info axp22x_adc_iio_info = {  	.read_raw = axp22x_read_raw, -	.driver_module = THIS_MODULE,  };  static int axp20x_adc_rate(int rate) diff --git a/drivers/iio/adc/axp288_adc.c b/drivers/iio/adc/axp288_adc.c index 462a99c13e7a..60c9e853dd81 100644 --- a/drivers/iio/adc/axp288_adc.c +++ b/drivers/iio/adc/axp288_adc.c @@ -183,7 +183,6 @@ static int axp288_adc_set_state(struct regmap *regmap)  static const struct iio_info axp288_adc_iio_info = {  	.read_raw = &axp288_adc_read_raw, -	.driver_module = THIS_MODULE,  };  static int axp288_adc_probe(struct platform_device *pdev) diff --git a/drivers/iio/adc/bcm_iproc_adc.c b/drivers/iio/adc/bcm_iproc_adc.c index 7f4f9c4150e3..7af59a4bbd8d 100644 --- a/drivers/iio/adc/bcm_iproc_adc.c +++ b/drivers/iio/adc/bcm_iproc_adc.c @@ -492,7 +492,6 @@ static int iproc_adc_read_raw(struct iio_dev *indio_dev,  static const struct iio_info iproc_adc_iio_info = {  	.read_raw = &iproc_adc_read_raw, -	.driver_module = THIS_MODULE,  };  #define IPROC_ADC_CHANNEL(_index, _id) {                \ diff --git a/drivers/iio/adc/berlin2-adc.c b/drivers/iio/adc/berlin2-adc.c index 71c806ecc722..72d8fa94ab31 100644 --- a/drivers/iio/adc/berlin2-adc.c +++ b/drivers/iio/adc/berlin2-adc.c @@ -277,7 +277,6 @@ static irqreturn_t berlin2_adc_tsen_irq(int irq, void *private)  }  static const struct iio_info berlin2_adc_info = { -	.driver_module	= THIS_MODULE,  	.read_raw	= berlin2_adc_read_raw,  }; diff --git a/drivers/iio/adc/cc10001_adc.c b/drivers/iio/adc/cc10001_adc.c index 91636c0ba5b5..707d8b24b072 100644 --- a/drivers/iio/adc/cc10001_adc.c +++ b/drivers/iio/adc/cc10001_adc.c @@ -262,7 +262,6 @@ static int cc10001_update_scan_mode(struct iio_dev *indio_dev,  }  static const struct iio_info cc10001_adc_info = { -	.driver_module = THIS_MODULE,  	.read_raw = &cc10001_adc_read_raw,  	.update_scan_mode = &cc10001_update_scan_mode,  }; diff --git a/drivers/iio/adc/cpcap-adc.c b/drivers/iio/adc/cpcap-adc.c index 6e419d5a7c14..3576ec73ec23 100644 --- a/drivers/iio/adc/cpcap-adc.c +++ b/drivers/iio/adc/cpcap-adc.c @@ -932,7 +932,6 @@ err_unlock:  static const struct iio_info cpcap_adc_info = {  	.read_raw = &cpcap_adc_read, -	.driver_module = THIS_MODULE,  };  /* diff --git a/drivers/iio/adc/da9150-gpadc.c b/drivers/iio/adc/da9150-gpadc.c index 3445107e10b7..0a5d9ce79164 100644 --- a/drivers/iio/adc/da9150-gpadc.c +++ b/drivers/iio/adc/da9150-gpadc.c @@ -249,7 +249,6 @@ static int da9150_gpadc_read_raw(struct iio_dev *indio_dev,  static const struct iio_info da9150_gpadc_info = {  	.read_raw = &da9150_gpadc_read_raw, -	.driver_module = THIS_MODULE,  };  #define DA9150_GPADC_CHANNEL(_id, _hw_id, _type, chan_info,	\ diff --git a/drivers/iio/adc/dln2-adc.c b/drivers/iio/adc/dln2-adc.c index ab8d6aed5085..c64c6675cae6 100644 --- a/drivers/iio/adc/dln2-adc.c +++ b/drivers/iio/adc/dln2-adc.c @@ -479,7 +479,6 @@ static const struct iio_info dln2_adc_info = {  	.read_raw = dln2_adc_read_raw,  	.write_raw = dln2_adc_write_raw,  	.update_scan_mode = dln2_update_scan_mode, -	.driver_module = THIS_MODULE,  };  static irqreturn_t dln2_adc_trigger_h(int irq, void *p) @@ -604,10 +603,6 @@ static void dln2_adc_event(struct platform_device *pdev, u16 echo,  	iio_trigger_poll(dln2->trig);  } -static const struct iio_trigger_ops dln2_adc_trigger_ops = { -	.owner = THIS_MODULE, -}; -  static int dln2_adc_probe(struct platform_device *pdev)  {  	struct device *dev = &pdev->dev; @@ -665,7 +660,6 @@ static int dln2_adc_probe(struct platform_device *pdev)  		dev_err(dev, "failed to allocate trigger\n");  		return -ENOMEM;  	} -	dln2->trig->ops = &dln2_adc_trigger_ops;  	iio_trigger_set_drvdata(dln2->trig, dln2);  	devm_iio_trigger_register(dev, dln2->trig);  	iio_trigger_set_immutable(indio_dev, dln2->trig); diff --git a/drivers/iio/adc/envelope-detector.c b/drivers/iio/adc/envelope-detector.c index fef15c0d7c9c..4ebda8ab54fe 100644 --- a/drivers/iio/adc/envelope-detector.c +++ b/drivers/iio/adc/envelope-detector.c @@ -322,7 +322,6 @@ static const struct iio_chan_spec envelope_detector_iio_channel = {  static const struct iio_info envelope_detector_info = {  	.read_raw = &envelope_detector_read_raw, -	.driver_module = THIS_MODULE,  };  static int envelope_detector_probe(struct platform_device *pdev) diff --git a/drivers/iio/adc/ep93xx_adc.c b/drivers/iio/adc/ep93xx_adc.c index a179ac476c6d..81c901507ad2 100644 --- a/drivers/iio/adc/ep93xx_adc.c +++ b/drivers/iio/adc/ep93xx_adc.c @@ -150,7 +150,6 @@ static int ep93xx_read_raw(struct iio_dev *iiodev,  }  static const struct iio_info ep93xx_adc_info = { -	.driver_module = THIS_MODULE,  	.read_raw = ep93xx_read_raw,  }; diff --git a/drivers/iio/adc/exynos_adc.c b/drivers/iio/adc/exynos_adc.c index 6c5a7be9f8c1..f10443f92e4c 100644 --- a/drivers/iio/adc/exynos_adc.c +++ b/drivers/iio/adc/exynos_adc.c @@ -657,7 +657,6 @@ static int exynos_adc_reg_access(struct iio_dev *indio_dev,  static const struct iio_info exynos_adc_iio_info = {  	.read_raw = &exynos_read_raw,  	.debugfs_reg_access = &exynos_adc_reg_access, -	.driver_module = THIS_MODULE,  };  #define ADC_CHANNEL(_index, _id) {			\ diff --git a/drivers/iio/adc/hi8435.c b/drivers/iio/adc/hi8435.c index adf7dc712937..6f6c9a348158 100644 --- a/drivers/iio/adc/hi8435.c +++ b/drivers/iio/adc/hi8435.c @@ -408,7 +408,6 @@ static const struct iio_chan_spec hi8435_channels[] = {  };  static const struct iio_info hi8435_info = { -	.driver_module = THIS_MODULE,  	.read_raw = hi8435_read_raw,  	.read_event_config = hi8435_read_event_config,  	.write_event_config = hi8435_write_event_config, diff --git a/drivers/iio/adc/hx711.c b/drivers/iio/adc/hx711.c index 27005d84ed73..d10b9f13d557 100644 --- a/drivers/iio/adc/hx711.c +++ b/drivers/iio/adc/hx711.c @@ -374,7 +374,6 @@ static const struct attribute_group hx711_attribute_group = {  };  static const struct iio_info hx711_iio_info = { -	.driver_module		= THIS_MODULE,  	.read_raw		= hx711_read_raw,  	.write_raw		= hx711_write_raw,  	.write_raw_get_fmt	= hx711_write_raw_get_fmt, diff --git a/drivers/iio/adc/imx7d_adc.c b/drivers/iio/adc/imx7d_adc.c index 254b29a68b9d..cfab31162845 100644 --- a/drivers/iio/adc/imx7d_adc.c +++ b/drivers/iio/adc/imx7d_adc.c @@ -412,7 +412,6 @@ static int imx7d_adc_reg_access(struct iio_dev *indio_dev,  }  static const struct iio_info imx7d_adc_iio_info = { -	.driver_module = THIS_MODULE,  	.read_raw = &imx7d_adc_read_raw,  	.debugfs_reg_access = &imx7d_adc_reg_access,  }; diff --git a/drivers/iio/adc/ina2xx-adc.c b/drivers/iio/adc/ina2xx-adc.c index f387b972e4f4..84a43871f7dc 100644 --- a/drivers/iio/adc/ina2xx-adc.c +++ b/drivers/iio/adc/ina2xx-adc.c @@ -123,7 +123,7 @@ struct ina2xx_chip_info {  	struct task_struct *task;  	const struct ina2xx_config *config;  	struct mutex state_lock; -	unsigned int shunt_resistor; +	unsigned int shunt_resistor_uohm;  	int avg;  	int int_time_vbus; /* Bus voltage integration time uS */  	int int_time_vshunt; /* Shunt voltage integration time uS */ @@ -436,7 +436,7 @@ static ssize_t ina2xx_allow_async_readout_store(struct device *dev,  /*   * Set current LSB to 1mA, shunt is in uOhms   * (equation 13 in datasheet). We hardcode a Current_LSB - * of 1.0 x10-6. The only remaining parameter is RShunt. + * of 1.0 x10-3. The only remaining parameter is RShunt.   * There is no need to expose the CALIBRATION register   * to the user for now. But we need to reset this register   * if the user updates RShunt after driver init, e.g upon @@ -445,7 +445,7 @@ static ssize_t ina2xx_allow_async_readout_store(struct device *dev,  static int ina2xx_set_calibration(struct ina2xx_chip_info *chip)  {  	u16 regval = DIV_ROUND_CLOSEST(chip->config->calibration_factor, -				   chip->shunt_resistor); +				   chip->shunt_resistor_uohm);  	return regmap_write(chip->regmap, INA2XX_CALIBRATION, regval);  } @@ -455,7 +455,7 @@ static int set_shunt_resistor(struct ina2xx_chip_info *chip, unsigned int val)  	if (val <= 0 || val > chip->config->calibration_factor)  		return -EINVAL; -	chip->shunt_resistor = val; +	chip->shunt_resistor_uohm = val;  	return 0;  } @@ -465,8 +465,9 @@ static ssize_t ina2xx_shunt_resistor_show(struct device *dev,  					  char *buf)  {  	struct ina2xx_chip_info *chip = iio_priv(dev_to_iio_dev(dev)); +	int vals[2] = { chip->shunt_resistor_uohm, 1000000 }; -	return sprintf(buf, "%d\n", chip->shunt_resistor); +	return iio_format_value(buf, IIO_VAL_FRACTIONAL, 1, vals);  }  static ssize_t ina2xx_shunt_resistor_store(struct device *dev, @@ -474,14 +475,13 @@ static ssize_t ina2xx_shunt_resistor_store(struct device *dev,  					   const char *buf, size_t len)  {  	struct ina2xx_chip_info *chip = iio_priv(dev_to_iio_dev(dev)); -	unsigned long val; -	int ret; +	int val, val_fract, ret; -	ret = kstrtoul((const char *) buf, 10, &val); +	ret = iio_str_to_fixpoint(buf, 100000, &val, &val_fract);  	if (ret)  		return ret; -	ret = set_shunt_resistor(chip, val); +	ret = set_shunt_resistor(chip, val * 1000000 + val_fract);  	if (ret)  		return ret; @@ -778,7 +778,6 @@ static const struct attribute_group ina226_attribute_group = {  };  static const struct iio_info ina219_info = { -	.driver_module = THIS_MODULE,  	.attrs = &ina219_attribute_group,  	.read_raw = ina2xx_read_raw,  	.write_raw = ina2xx_write_raw, @@ -786,7 +785,6 @@ static const struct iio_info ina219_info = {  };  static const struct iio_info ina226_info = { -	.driver_module = THIS_MODULE,  	.attrs = &ina226_attribute_group,  	.read_raw = ina2xx_read_raw,  	.write_raw = ina2xx_write_raw, diff --git a/drivers/iio/adc/lp8788_adc.c b/drivers/iio/adc/lp8788_adc.c index 152cfc8e1c7b..3bc4df916420 100644 --- a/drivers/iio/adc/lp8788_adc.c +++ b/drivers/iio/adc/lp8788_adc.c @@ -125,7 +125,6 @@ static int lp8788_adc_read_raw(struct iio_dev *indio_dev,  static const struct iio_info lp8788_adc_info = {  	.read_raw = &lp8788_adc_read_raw, -	.driver_module = THIS_MODULE,  };  #define LP8788_CHAN(_id, _type) {				\ diff --git a/drivers/iio/adc/lpc18xx_adc.c b/drivers/iio/adc/lpc18xx_adc.c index 3ef18f4b27f0..041dc4a3f66c 100644 --- a/drivers/iio/adc/lpc18xx_adc.c +++ b/drivers/iio/adc/lpc18xx_adc.c @@ -116,7 +116,6 @@ static int lpc18xx_adc_read_raw(struct iio_dev *indio_dev,  static const struct iio_info lpc18xx_adc_info = {  	.read_raw = lpc18xx_adc_read_raw, -	.driver_module = THIS_MODULE,  };  static int lpc18xx_adc_probe(struct platform_device *pdev) diff --git a/drivers/iio/adc/lpc32xx_adc.c b/drivers/iio/adc/lpc32xx_adc.c index 6a5b9a9bc662..20b36690fa4f 100644 --- a/drivers/iio/adc/lpc32xx_adc.c +++ b/drivers/iio/adc/lpc32xx_adc.c @@ -104,7 +104,6 @@ static int lpc32xx_read_raw(struct iio_dev *indio_dev,  static const struct iio_info lpc32xx_adc_iio_info = {  	.read_raw = &lpc32xx_read_raw, -	.driver_module = THIS_MODULE,  };  #define LPC32XX_ADC_CHANNEL(_index) {			\ diff --git a/drivers/iio/adc/ltc2471.c b/drivers/iio/adc/ltc2471.c index 29b7ed60cdb0..b88102b751cf 100644 --- a/drivers/iio/adc/ltc2471.c +++ b/drivers/iio/adc/ltc2471.c @@ -98,7 +98,6 @@ static const struct iio_chan_spec ltc2473_channel[] = {  static const struct iio_info ltc2471_info = {  	.read_raw = ltc2471_read_raw, -	.driver_module = THIS_MODULE,  };  static int ltc2471_i2c_probe(struct i2c_client *client, diff --git a/drivers/iio/adc/ltc2485.c b/drivers/iio/adc/ltc2485.c index eab91f12454a..b24c14037fd4 100644 --- a/drivers/iio/adc/ltc2485.c +++ b/drivers/iio/adc/ltc2485.c @@ -90,7 +90,6 @@ static const struct iio_chan_spec ltc2485_channel[] = {  static const struct iio_info ltc2485_info = {  	.read_raw = ltc2485_read_raw, -	.driver_module = THIS_MODULE,  };  static int ltc2485_probe(struct i2c_client *client, diff --git a/drivers/iio/adc/ltc2497.c b/drivers/iio/adc/ltc2497.c index 5bf8011dcde9..f1f7cdf66fbd 100644 --- a/drivers/iio/adc/ltc2497.c +++ b/drivers/iio/adc/ltc2497.c @@ -186,7 +186,6 @@ static const struct iio_chan_spec ltc2497_channel[] = {  static const struct iio_info ltc2497_info = {  	.read_raw = ltc2497_read_raw, -	.driver_module = THIS_MODULE,  };  static int ltc2497_probe(struct i2c_client *client, diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c index ebc715927e63..375da6491499 100644 --- a/drivers/iio/adc/max1027.c +++ b/drivers/iio/adc/max1027.c @@ -381,13 +381,11 @@ static irqreturn_t max1027_trigger_handler(int irq, void *private)  }  static const struct iio_trigger_ops max1027_trigger_ops = { -	.owner = THIS_MODULE,  	.validate_device = &iio_trigger_validate_own_device,  	.set_trigger_state = &max1027_set_trigger_state,  };  static const struct iio_info max1027_info = { -	.driver_module = THIS_MODULE,  	.read_raw = &max1027_read_raw,  	.validate_trigger = &max1027_validate_trigger,  	.debugfs_reg_access = &max1027_debugfs_reg_access, diff --git a/drivers/iio/adc/max11100.c b/drivers/iio/adc/max11100.c index 1180bcc22ff1..af59ab2e650c 100644 --- a/drivers/iio/adc/max11100.c +++ b/drivers/iio/adc/max11100.c @@ -100,7 +100,6 @@ static int max11100_read_raw(struct iio_dev *indio_dev,  }  static const struct iio_info max11100_info = { -	.driver_module = THIS_MODULE,  	.read_raw = max11100_read_raw,  }; diff --git a/drivers/iio/adc/max1118.c b/drivers/iio/adc/max1118.c index 2e9648a078c4..49db9e9ae625 100644 --- a/drivers/iio/adc/max1118.c +++ b/drivers/iio/adc/max1118.c @@ -155,7 +155,6 @@ static int max1118_read_raw(struct iio_dev *indio_dev,  static const struct iio_info max1118_info = {  	.read_raw = max1118_read_raw, -	.driver_module = THIS_MODULE,  };  static irqreturn_t max1118_trigger_handler(int irq, void *p) diff --git a/drivers/iio/adc/max1363.c b/drivers/iio/adc/max1363.c index 80eada4886b3..7f1848dac9bf 100644 --- a/drivers/iio/adc/max1363.c +++ b/drivers/iio/adc/max1363.c @@ -1029,7 +1029,6 @@ static int max1363_update_scan_mode(struct iio_dev *indio_dev,  static const struct iio_info max1238_info = {  	.read_raw = &max1363_read_raw, -	.driver_module = THIS_MODULE,  	.update_scan_mode = &max1363_update_scan_mode,  }; @@ -1040,7 +1039,6 @@ static const struct iio_info max1363_info = {  	.write_event_config = &max1363_write_event_config,  	.read_raw = &max1363_read_raw,  	.update_scan_mode = &max1363_update_scan_mode, -	.driver_module = THIS_MODULE,  	.event_attrs = &max1363_event_attribute_group,  }; diff --git a/drivers/iio/adc/max9611.c b/drivers/iio/adc/max9611.c index b1dd17cbce58..0538ff8c4ac1 100644 --- a/drivers/iio/adc/max9611.c +++ b/drivers/iio/adc/max9611.c @@ -460,7 +460,6 @@ static const struct attribute_group max9611_attribute_group = {  };  static const struct iio_info indio_info = { -	.driver_module	= THIS_MODULE,  	.read_raw	= max9611_read_raw,  	.attrs		= &max9611_attribute_group,  }; @@ -573,7 +572,6 @@ static int max9611_probe(struct i2c_client *client,  static struct i2c_driver max9611_driver = {  	.driver = {  		   .name = DRIVER_NAME, -		   .owner = THIS_MODULE,  		   .of_match_table = max9611_of_table,  	},  	.probe = max9611_probe, diff --git a/drivers/iio/adc/mcp320x.c b/drivers/iio/adc/mcp320x.c index 071dd23a33d9..a04856d8afdb 100644 --- a/drivers/iio/adc/mcp320x.c +++ b/drivers/iio/adc/mcp320x.c @@ -19,6 +19,11 @@   * ------------   * 13 bit converter   * MCP3301 + * ------------ + * 22 bit converter + * MCP3550 + * MCP3551 + * MCP3553   *   * Datasheet can be found here:   * http://ww1.microchip.com/downloads/en/DeviceDoc/21293C.pdf  mcp3001 @@ -28,6 +33,7 @@   * http://ww1.microchip.com/downloads/en/DeviceDoc/21034D.pdf  mcp3202   * http://ww1.microchip.com/downloads/en/DeviceDoc/21298c.pdf  mcp3204/08   * http://ww1.microchip.com/downloads/en/DeviceDoc/21700E.pdf  mcp3301 + * http://ww1.microchip.com/downloads/en/DeviceDoc/21950D.pdf  mcp3550/1/3   *   * This program is free software; you can redistribute it and/or modify   * it under the terms of the GNU General Public License version 2 as @@ -51,25 +57,45 @@ enum {  	mcp3204,  	mcp3208,  	mcp3301, +	mcp3550_50, +	mcp3550_60, +	mcp3551, +	mcp3553,  };  struct mcp320x_chip_info {  	const struct iio_chan_spec *channels;  	unsigned int num_channels;  	unsigned int resolution; +	unsigned int conv_time; /* usec */  }; +/** + * struct mcp320x - Microchip SPI ADC instance + * @spi: SPI slave (parent of the IIO device) + * @msg: SPI message to select a channel and receive a value from the ADC + * @transfer: SPI transfers used by @msg + * @start_conv_msg: SPI message to start a conversion by briefly asserting CS + * @start_conv_transfer: SPI transfer used by @start_conv_msg + * @reg: regulator generating Vref + * @lock: protects read sequences + * @chip_info: ADC properties + * @tx_buf: buffer for @transfer[0] (not used on single-channel converters) + * @rx_buf: buffer for @transfer[1] + */  struct mcp320x {  	struct spi_device *spi;  	struct spi_message msg;  	struct spi_transfer transfer[2]; +	struct spi_message start_conv_msg; +	struct spi_transfer start_conv_transfer;  	struct regulator *reg;  	struct mutex lock;  	const struct mcp320x_chip_info *chip_info;  	u8 tx_buf ____cacheline_aligned; -	u8 rx_buf[2]; +	u8 rx_buf[4];  };  static int mcp320x_channel_to_tx_data(int device_index, @@ -78,10 +104,6 @@ static int mcp320x_channel_to_tx_data(int device_index,  	int start_bit = 1;  	switch (device_index) { -	case mcp3001: -	case mcp3201: -	case mcp3301: -		return 0;  	case mcp3002:  	case mcp3202:  		return ((start_bit << 4) | (!differential << 3) | @@ -102,21 +124,24 @@ static int mcp320x_adc_conversion(struct mcp320x *adc, u8 channel,  {  	int ret; -	adc->rx_buf[0] = 0; -	adc->rx_buf[1] = 0; -	adc->tx_buf = mcp320x_channel_to_tx_data(device_index, -						channel, differential); - -	if (device_index != mcp3001 && device_index != mcp3201 && device_index != mcp3301) { -		ret = spi_sync(adc->spi, &adc->msg); -		if (ret < 0) -			return ret; -	} else { -		ret = spi_read(adc->spi, &adc->rx_buf, sizeof(adc->rx_buf)); +	if (adc->chip_info->conv_time) { +		ret = spi_sync(adc->spi, &adc->start_conv_msg);  		if (ret < 0)  			return ret; + +		usleep_range(adc->chip_info->conv_time, +			     adc->chip_info->conv_time + 100);  	} +	memset(&adc->rx_buf, 0, sizeof(adc->rx_buf)); +	if (adc->chip_info->num_channels > 1) +		adc->tx_buf = mcp320x_channel_to_tx_data(device_index, channel, +							 differential); + +	ret = spi_sync(adc->spi, &adc->msg); +	if (ret < 0) +		return ret; +  	switch (device_index) {  	case mcp3001:  		*val = (adc->rx_buf[0] << 5 | adc->rx_buf[1] >> 3); @@ -138,6 +163,31 @@ static int mcp320x_adc_conversion(struct mcp320x *adc, u8 channel,  		*val = sign_extend32((adc->rx_buf[0] & 0x1f) << 8  				    | adc->rx_buf[1], 12);  		return 0; +	case mcp3550_50: +	case mcp3550_60: +	case mcp3551: +	case mcp3553: { +		u32 raw = be32_to_cpup((u32 *)adc->rx_buf); + +		if (!(adc->spi->mode & SPI_CPOL)) +			raw <<= 1; /* strip Data Ready bit in SPI mode 0,0 */ + +		/* +		 * If the input is within -vref and vref, bit 21 is the sign. +		 * Up to 12% overrange or underrange are allowed, in which case +		 * bit 23 is the sign and bit 0 to 21 is the value. +		 */ +		raw >>= 8; +		if (raw & BIT(22) && raw & BIT(23)) +			return -EIO; /* cannot have overrange AND underrange */ +		else if (raw & BIT(22)) +			raw &= ~BIT(22); /* overrange */ +		else if (raw & BIT(23) || raw & BIT(21)) +			raw |= GENMASK(31, 22); /* underrange or negative */ + +		*val = (s32)raw; +		return 0; +		}  	default:  		return -EINVAL;  	} @@ -248,7 +298,6 @@ static const struct iio_chan_spec mcp3208_channels[] = {  static const struct iio_info mcp320x_info = {  	.read_raw = mcp320x_read_raw, -	.driver_module = THIS_MODULE,  };  static const struct mcp320x_chip_info mcp320x_chip_infos[] = { @@ -297,6 +346,31 @@ static const struct mcp320x_chip_info mcp320x_chip_infos[] = {  		.num_channels = ARRAY_SIZE(mcp3201_channels),  		.resolution = 13  	}, +	[mcp3550_50] = { +		.channels = mcp3201_channels, +		.num_channels = ARRAY_SIZE(mcp3201_channels), +		.resolution = 21, +		/* 2% max deviation + 144 clock periods to exit shutdown */ +		.conv_time = 80000 * 1.02 + 144000 / 102.4, +	}, +	[mcp3550_60] = { +		.channels = mcp3201_channels, +		.num_channels = ARRAY_SIZE(mcp3201_channels), +		.resolution = 21, +		.conv_time = 66670 * 1.02 + 144000 / 122.88, +	}, +	[mcp3551] = { +		.channels = mcp3201_channels, +		.num_channels = ARRAY_SIZE(mcp3201_channels), +		.resolution = 21, +		.conv_time = 73100 * 1.02 + 144000 / 112.64, +	}, +	[mcp3553] = { +		.channels = mcp3201_channels, +		.num_channels = ARRAY_SIZE(mcp3201_channels), +		.resolution = 21, +		.conv_time = 16670 * 1.02 + 144000 / 122.88, +	},  };  static int mcp320x_probe(struct spi_device *spi) @@ -304,7 +378,7 @@ static int mcp320x_probe(struct spi_device *spi)  	struct iio_dev *indio_dev;  	struct mcp320x *adc;  	const struct mcp320x_chip_info *chip_info; -	int ret; +	int ret, device_index;  	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*adc));  	if (!indio_dev) @@ -320,7 +394,8 @@ static int mcp320x_probe(struct spi_device *spi)  	indio_dev->info = &mcp320x_info;  	spi_set_drvdata(spi, indio_dev); -	chip_info = &mcp320x_chip_infos[spi_get_device_id(spi)->driver_data]; +	device_index = spi_get_device_id(spi)->driver_data; +	chip_info = &mcp320x_chip_infos[device_index];  	indio_dev->channels = chip_info->channels;  	indio_dev->num_channels = chip_info->num_channels; @@ -329,10 +404,41 @@ static int mcp320x_probe(struct spi_device *spi)  	adc->transfer[0].tx_buf = &adc->tx_buf;  	adc->transfer[0].len = sizeof(adc->tx_buf);  	adc->transfer[1].rx_buf = adc->rx_buf; -	adc->transfer[1].len = sizeof(adc->rx_buf); +	adc->transfer[1].len = DIV_ROUND_UP(chip_info->resolution, 8); + +	if (chip_info->num_channels == 1) +		/* single-channel converters are rx only (no MOSI pin) */ +		spi_message_init_with_transfers(&adc->msg, +						&adc->transfer[1], 1); +	else +		spi_message_init_with_transfers(&adc->msg, adc->transfer, +						ARRAY_SIZE(adc->transfer)); -	spi_message_init_with_transfers(&adc->msg, adc->transfer, -					ARRAY_SIZE(adc->transfer)); +	switch (device_index) { +	case mcp3550_50: +	case mcp3550_60: +	case mcp3551: +	case mcp3553: +		/* rx len increases from 24 to 25 bit in SPI mode 0,0 */ +		if (!(spi->mode & SPI_CPOL)) +			adc->transfer[1].len++; + +		/* conversions are started by asserting CS pin for 8 usec */ +		adc->start_conv_transfer.delay_usecs = 8; +		spi_message_init_with_transfers(&adc->start_conv_msg, +						&adc->start_conv_transfer, 1); + +		/* +		 * If CS was previously kept low (continuous conversion mode) +		 * and then changed to high, the chip is in shutdown. +		 * Sometimes it fails to wake from shutdown and clocks out +		 * only 0xffffff.  The magic sequence of performing two +		 * conversions without delay between them resets the chip +		 * and ensures all subsequent conversions succeed. +		 */ +		mcp320x_adc_conversion(adc, 0, 1, device_index, &ret); +		mcp320x_adc_conversion(adc, 0, 1, device_index, &ret); +	}  	adc->reg = devm_regulator_get(&spi->dev, "vref");  	if (IS_ERR(adc->reg)) @@ -370,62 +476,29 @@ static int mcp320x_remove(struct spi_device *spi)  #if defined(CONFIG_OF)  static const struct of_device_id mcp320x_dt_ids[] = {  	/* NOTE: The use of compatibles with no vendor prefix is deprecated. */ -	{ -		.compatible = "mcp3001", -		.data = &mcp320x_chip_infos[mcp3001], -	}, { -		.compatible = "mcp3002", -		.data = &mcp320x_chip_infos[mcp3002], -	}, { -		.compatible = "mcp3004", -		.data = &mcp320x_chip_infos[mcp3004], -	}, { -		.compatible = "mcp3008", -		.data = &mcp320x_chip_infos[mcp3008], -	}, { -		.compatible = "mcp3201", -		.data = &mcp320x_chip_infos[mcp3201], -	}, { -		.compatible = "mcp3202", -		.data = &mcp320x_chip_infos[mcp3202], -	}, { -		.compatible = "mcp3204", -		.data = &mcp320x_chip_infos[mcp3204], -	}, { -		.compatible = "mcp3208", -		.data = &mcp320x_chip_infos[mcp3208], -	}, { -		.compatible = "mcp3301", -		.data = &mcp320x_chip_infos[mcp3301], -	}, { -		.compatible = "microchip,mcp3001", -		.data = &mcp320x_chip_infos[mcp3001], -	}, { -		.compatible = "microchip,mcp3002", -		.data = &mcp320x_chip_infos[mcp3002], -	}, { -		.compatible = "microchip,mcp3004", -		.data = &mcp320x_chip_infos[mcp3004], -	}, { -		.compatible = "microchip,mcp3008", -		.data = &mcp320x_chip_infos[mcp3008], -	}, { -		.compatible = "microchip,mcp3201", -		.data = &mcp320x_chip_infos[mcp3201], -	}, { -		.compatible = "microchip,mcp3202", -		.data = &mcp320x_chip_infos[mcp3202], -	}, { -		.compatible = "microchip,mcp3204", -		.data = &mcp320x_chip_infos[mcp3204], -	}, { -		.compatible = "microchip,mcp3208", -		.data = &mcp320x_chip_infos[mcp3208], -	}, { -		.compatible = "microchip,mcp3301", -		.data = &mcp320x_chip_infos[mcp3301], -	}, { -	} +	{ .compatible = "mcp3001" }, +	{ .compatible = "mcp3002" }, +	{ .compatible = "mcp3004" }, +	{ .compatible = "mcp3008" }, +	{ .compatible = "mcp3201" }, +	{ .compatible = "mcp3202" }, +	{ .compatible = "mcp3204" }, +	{ .compatible = "mcp3208" }, +	{ .compatible = "mcp3301" }, +	{ .compatible = "microchip,mcp3001" }, +	{ .compatible = "microchip,mcp3002" }, +	{ .compatible = "microchip,mcp3004" }, +	{ .compatible = "microchip,mcp3008" }, +	{ .compatible = "microchip,mcp3201" }, +	{ .compatible = "microchip,mcp3202" }, +	{ .compatible = "microchip,mcp3204" }, +	{ .compatible = "microchip,mcp3208" }, +	{ .compatible = "microchip,mcp3301" }, +	{ .compatible = "microchip,mcp3550-50" }, +	{ .compatible = "microchip,mcp3550-60" }, +	{ .compatible = "microchip,mcp3551" }, +	{ .compatible = "microchip,mcp3553" }, +	{ }  };  MODULE_DEVICE_TABLE(of, mcp320x_dt_ids);  #endif @@ -440,6 +513,10 @@ static const struct spi_device_id mcp320x_id[] = {  	{ "mcp3204", mcp3204 },  	{ "mcp3208", mcp3208 },  	{ "mcp3301", mcp3301 }, +	{ "mcp3550-50", mcp3550_50 }, +	{ "mcp3550-60", mcp3550_60 }, +	{ "mcp3551", mcp3551 }, +	{ "mcp3553", mcp3553 },  	{ }  };  MODULE_DEVICE_TABLE(spi, mcp320x_id); @@ -456,5 +533,5 @@ static struct spi_driver mcp320x_driver = {  module_spi_driver(mcp320x_driver);  MODULE_AUTHOR("Oskar Andero <oskar.andero@gmail.com>"); -MODULE_DESCRIPTION("Microchip Technology MCP3x01/02/04/08"); +MODULE_DESCRIPTION("Microchip Technology MCP3x01/02/04/08 and MCP3550/1/3");  MODULE_LICENSE("GPL v2"); diff --git a/drivers/iio/adc/mcp3422.c b/drivers/iio/adc/mcp3422.c index 63de705086ed..819f26011500 100644 --- a/drivers/iio/adc/mcp3422.c +++ b/drivers/iio/adc/mcp3422.c @@ -327,7 +327,6 @@ static const struct iio_info mcp3422_info = {  	.write_raw = mcp3422_write_raw,  	.write_raw_get_fmt = mcp3422_write_raw_get_fmt,  	.attrs = &mcp3422_attribute_group, -	.driver_module = THIS_MODULE,  };  static int mcp3422_probe(struct i2c_client *client, diff --git a/drivers/iio/adc/men_z188_adc.c b/drivers/iio/adc/men_z188_adc.c index 8f3606de4eaf..c80261748d8f 100644 --- a/drivers/iio/adc/men_z188_adc.c +++ b/drivers/iio/adc/men_z188_adc.c @@ -80,7 +80,6 @@ static int z188_iio_read_raw(struct iio_dev *iio_dev,  static const struct iio_info z188_adc_info = {  	.read_raw = &z188_iio_read_raw, -	.driver_module = THIS_MODULE,  };  static void men_z188_config_channels(void __iomem *addr) diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c index 2e8dbb89c8c9..9c6932ffc0af 100644 --- a/drivers/iio/adc/meson_saradc.c +++ b/drivers/iio/adc/meson_saradc.c @@ -840,7 +840,6 @@ out:  static const struct iio_info meson_sar_adc_iio_info = {  	.read_raw = meson_sar_adc_iio_info_read_raw, -	.driver_module = THIS_MODULE,  };  static const struct meson_sar_adc_data meson_sar_adc_meson8_data = { diff --git a/drivers/iio/adc/mt6577_auxadc.c b/drivers/iio/adc/mt6577_auxadc.c index 414cf44bf19d..95d76abb64ec 100644 --- a/drivers/iio/adc/mt6577_auxadc.c +++ b/drivers/iio/adc/mt6577_auxadc.c @@ -180,7 +180,6 @@ static int mt6577_auxadc_read_raw(struct iio_dev *indio_dev,  }  static const struct iio_info mt6577_auxadc_info = { -	.driver_module = THIS_MODULE,  	.read_raw = &mt6577_auxadc_read_raw,  }; @@ -306,6 +305,7 @@ static SIMPLE_DEV_PM_OPS(mt6577_auxadc_pm_ops,  static const struct of_device_id mt6577_auxadc_of_match[] = {  	{ .compatible = "mediatek,mt2701-auxadc", }, +	{ .compatible = "mediatek,mt2712-auxadc", },  	{ .compatible = "mediatek,mt7622-auxadc", },  	{ .compatible = "mediatek,mt8173-auxadc", },  	{ } diff --git a/drivers/iio/adc/mxs-lradc-adc.c b/drivers/iio/adc/mxs-lradc-adc.c index d32b34638c2f..c627513d9f0f 100644 --- a/drivers/iio/adc/mxs-lradc-adc.c +++ b/drivers/iio/adc/mxs-lradc-adc.c @@ -382,7 +382,6 @@ static const struct attribute_group mxs_lradc_adc_attribute_group = {  };  static const struct iio_info mxs_lradc_adc_iio_info = { -	.driver_module		= THIS_MODULE,  	.read_raw		= mxs_lradc_adc_read_raw,  	.write_raw		= mxs_lradc_adc_write_raw,  	.write_raw_get_fmt	= mxs_lradc_adc_write_raw_get_fmt, @@ -455,7 +454,6 @@ static int mxs_lradc_adc_configure_trigger(struct iio_trigger *trig, bool state)  }  static const struct iio_trigger_ops mxs_lradc_adc_trigger_ops = { -	.owner = THIS_MODULE,  	.set_trigger_state = &mxs_lradc_adc_configure_trigger,  }; diff --git a/drivers/iio/adc/nau7802.c b/drivers/iio/adc/nau7802.c index 08f446695f97..8997e74a8847 100644 --- a/drivers/iio/adc/nau7802.c +++ b/drivers/iio/adc/nau7802.c @@ -402,7 +402,6 @@ static int nau7802_write_raw_get_fmt(struct iio_dev *indio_dev,  }  static const struct iio_info nau7802_info = { -	.driver_module = THIS_MODULE,  	.read_raw = &nau7802_read_raw,  	.write_raw = &nau7802_write_raw,  	.write_raw_get_fmt = nau7802_write_raw_get_fmt, diff --git a/drivers/iio/adc/palmas_gpadc.c b/drivers/iio/adc/palmas_gpadc.c index 7d61b566e148..69b9affeef1e 100644 --- a/drivers/iio/adc/palmas_gpadc.c +++ b/drivers/iio/adc/palmas_gpadc.c @@ -430,7 +430,6 @@ out:  static const struct iio_info palmas_gpadc_iio_info = {  	.read_raw = palmas_gpadc_read_raw, -	.driver_module = THIS_MODULE,  };  #define PALMAS_ADC_CHAN_IIO(chan, _type, chan_info)	\ diff --git a/drivers/iio/adc/qcom-pm8xxx-xoadc.c b/drivers/iio/adc/qcom-pm8xxx-xoadc.c index cea8f1fb444a..b093ecddf1a8 100644 --- a/drivers/iio/adc/qcom-pm8xxx-xoadc.c +++ b/drivers/iio/adc/qcom-pm8xxx-xoadc.c @@ -728,7 +728,6 @@ static int pm8xxx_of_xlate(struct iio_dev *indio_dev,  }  static const struct iio_info pm8xxx_xoadc_info = { -	.driver_module = THIS_MODULE,  	.of_xlate = pm8xxx_of_xlate,  	.read_raw = pm8xxx_read_raw,  }; diff --git a/drivers/iio/adc/qcom-spmi-iadc.c b/drivers/iio/adc/qcom-spmi-iadc.c index fabd24edc2a1..3f062cd61aba 100644 --- a/drivers/iio/adc/qcom-spmi-iadc.c +++ b/drivers/iio/adc/qcom-spmi-iadc.c @@ -356,7 +356,6 @@ static int iadc_read_raw(struct iio_dev *indio_dev,  static const struct iio_info iadc_info = {  	.read_raw = iadc_read_raw, -	.driver_module = THIS_MODULE,  };  static irqreturn_t iadc_isr(int irq, void *dev_id) diff --git a/drivers/iio/adc/qcom-spmi-vadc.c b/drivers/iio/adc/qcom-spmi-vadc.c index 9e600bfd1765..3680e0d47412 100644 --- a/drivers/iio/adc/qcom-spmi-vadc.c +++ b/drivers/iio/adc/qcom-spmi-vadc.c @@ -506,7 +506,6 @@ static int vadc_of_xlate(struct iio_dev *indio_dev,  static const struct iio_info vadc_info = {  	.read_raw = vadc_read_raw,  	.of_xlate = vadc_of_xlate, -	.driver_module = THIS_MODULE,  };  struct vadc_channels { diff --git a/drivers/iio/adc/qcom-vadc-common.c b/drivers/iio/adc/qcom-vadc-common.c index 102fc51b10aa..47d24ae5462f 100644 --- a/drivers/iio/adc/qcom-vadc-common.c +++ b/drivers/iio/adc/qcom-vadc-common.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/bug.h>  #include <linux/kernel.h>  #include <linux/bitops.h> diff --git a/drivers/iio/adc/qcom-vadc-common.h b/drivers/iio/adc/qcom-vadc-common.h index 63c872a70adc..1d5354ff5c72 100644 --- a/drivers/iio/adc/qcom-vadc-common.h +++ b/drivers/iio/adc/qcom-vadc-common.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  /*   * Code shared between the different Qualcomm PMIC voltage ADCs   */ diff --git a/drivers/iio/adc/rcar-gyroadc.c b/drivers/iio/adc/rcar-gyroadc.c index 27a318164619..dcb50172186f 100644 --- a/drivers/iio/adc/rcar-gyroadc.c +++ b/drivers/iio/adc/rcar-gyroadc.c @@ -277,7 +277,6 @@ static int rcar_gyroadc_reg_access(struct iio_dev *indio_dev,  }  static const struct iio_info rcar_gyroadc_iio_info = { -	.driver_module		= THIS_MODULE,  	.read_raw		= rcar_gyroadc_read_raw,  	.debugfs_reg_access	= rcar_gyroadc_reg_access,  }; @@ -349,7 +348,7 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)  			continue;  		} -		childmode = (unsigned int)of_id->data; +		childmode = (uintptr_t)of_id->data;  		switch (childmode) {  		case RCAR_GYROADC_MODE_SELECT_1_MB88101A:  			sample_width = 12; @@ -488,8 +487,6 @@ err:  static int rcar_gyroadc_probe(struct platform_device *pdev)  { -	const struct of_device_id *of_id = -		of_match_device(rcar_gyroadc_match, &pdev->dev);  	struct device *dev = &pdev->dev;  	struct rcar_gyroadc *priv;  	struct iio_dev *indio_dev; @@ -526,7 +523,8 @@ static int rcar_gyroadc_probe(struct platform_device *pdev)  	if (ret)  		return ret; -	priv->model = (enum rcar_gyroadc_model)of_id->data; +	priv->model = (enum rcar_gyroadc_model) +		of_device_get_match_data(&pdev->dev);  	platform_set_drvdata(pdev, indio_dev); diff --git a/drivers/iio/adc/rockchip_saradc.c b/drivers/iio/adc/rockchip_saradc.c index 5f612d694b33..1f98566d5b3c 100644 --- a/drivers/iio/adc/rockchip_saradc.c +++ b/drivers/iio/adc/rockchip_saradc.c @@ -125,7 +125,6 @@ static irqreturn_t rockchip_saradc_isr(int irq, void *dev_id)  static const struct iio_info rockchip_saradc_iio_info = {  	.read_raw = rockchip_saradc_read_raw, -	.driver_module = THIS_MODULE,  };  #define ADC_CHANNEL(_index, _id) {				\ diff --git a/drivers/iio/adc/spear_adc.c b/drivers/iio/adc/spear_adc.c index 5dd61f6a57b9..b1da2c46107c 100644 --- a/drivers/iio/adc/spear_adc.c +++ b/drivers/iio/adc/spear_adc.c @@ -254,7 +254,6 @@ static int spear_adc_configure(struct spear_adc_state *st)  static const struct iio_info spear_adc_info = {  	.read_raw = &spear_adc_read_raw,  	.write_raw = &spear_adc_write_raw, -	.driver_module = THIS_MODULE,  };  static int spear_adc_probe(struct platform_device *pdev) diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-core.c index 804198eb0eef..6aefef99f935 100644 --- a/drivers/iio/adc/stm32-adc-core.c +++ b/drivers/iio/adc/stm32-adc-core.c @@ -139,6 +139,11 @@ static int stm32f4_adc_clk_sel(struct platform_device *pdev,  	}  	rate = clk_get_rate(priv->aclk); +	if (!rate) { +		dev_err(&pdev->dev, "Invalid clock rate: 0\n"); +		return -EINVAL; +	} +  	for (i = 0; i < ARRAY_SIZE(stm32f4_pclk_div); i++) {  		if ((rate / stm32f4_pclk_div[i]) <= STM32F4_ADC_MAX_CLK_RATE)  			break; @@ -216,6 +221,10 @@ static int stm32h7_adc_clk_sel(struct platform_device *pdev,  		 * From spec: PLL output musn't exceed max rate  		 */  		rate = clk_get_rate(priv->aclk); +		if (!rate) { +			dev_err(&pdev->dev, "Invalid adc clock rate: 0\n"); +			return -EINVAL; +		}  		for (i = 0; i < ARRAY_SIZE(stm32h7_adc_ckmodes_spec); i++) {  			ckmode = stm32h7_adc_ckmodes_spec[i].ckmode; @@ -232,6 +241,10 @@ static int stm32h7_adc_clk_sel(struct platform_device *pdev,  	/* Synchronous clock modes (e.g. ckmode is 1, 2 or 3) */  	rate = clk_get_rate(priv->bclk); +	if (!rate) { +		dev_err(&pdev->dev, "Invalid bus clock rate: 0\n"); +		return -EINVAL; +	}  	for (i = 0; i < ARRAY_SIZE(stm32h7_adc_ckmodes_spec); i++) {  		ckmode = stm32h7_adc_ckmodes_spec[i].ckmode; diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index 4df32cf1650e..c9d96f935dba 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -531,6 +531,7 @@ static struct stm32_adc_trig_info stm32h7_adc_trigs[] = {  	{ TIM2_TRGO, STM32_EXT11 },  	{ TIM4_TRGO, STM32_EXT12 },  	{ TIM6_TRGO, STM32_EXT13 }, +	{ TIM15_TRGO, STM32_EXT14 },  	{ TIM3_CH4, STM32_EXT15 },  	{ LPTIM1_OUT, STM32_EXT18 },  	{ LPTIM2_OUT, STM32_EXT19 }, @@ -1385,7 +1386,6 @@ static const struct iio_info stm32_adc_iio_info = {  	.update_scan_mode = stm32_adc_update_scan_mode,  	.debugfs_reg_access = stm32_adc_debugfs_reg_access,  	.of_xlate = stm32_adc_of_xlate, -	.driver_module = THIS_MODULE,  };  static unsigned int stm32_adc_dma_residue(struct stm32_adc *adc) diff --git a/drivers/iio/adc/stx104.c b/drivers/iio/adc/stx104.c index 2da741d27540..17b021f33180 100644 --- a/drivers/iio/adc/stx104.c +++ b/drivers/iio/adc/stx104.c @@ -172,7 +172,6 @@ static int stx104_write_raw(struct iio_dev *indio_dev,  }  static const struct iio_info stx104_info = { -	.driver_module = THIS_MODULE,  	.read_raw = stx104_read_raw,  	.write_raw = stx104_write_raw  }; diff --git a/drivers/iio/adc/sun4i-gpadc-iio.c b/drivers/iio/adc/sun4i-gpadc-iio.c index 137f577d9432..04d7147e0110 100644 --- a/drivers/iio/adc/sun4i-gpadc-iio.c +++ b/drivers/iio/adc/sun4i-gpadc-iio.c @@ -352,7 +352,6 @@ static int sun4i_gpadc_read_raw(struct iio_dev *indio_dev,  static const struct iio_info sun4i_gpadc_iio_info = {  	.read_raw = sun4i_gpadc_read_raw, -	.driver_module = THIS_MODULE,  };  static irqreturn_t sun4i_gpadc_temp_data_irq_handler(int irq, void *dev_id) @@ -502,17 +501,15 @@ static int sun4i_gpadc_probe_dt(struct platform_device *pdev,  				struct iio_dev *indio_dev)  {  	struct sun4i_gpadc_iio *info = iio_priv(indio_dev); -	const struct of_device_id *of_dev;  	struct resource *mem;  	void __iomem *base;  	int ret; -	of_dev = of_match_device(sun4i_gpadc_of_id, &pdev->dev); -	if (!of_dev) +	info->data = of_device_get_match_data(&pdev->dev); +	if (!info->data)  		return -ENODEV;  	info->no_irq = true; -	info->data = (struct gpadc_data *)of_dev->data;  	indio_dev->num_channels = ARRAY_SIZE(sun8i_a33_gpadc_channels);  	indio_dev->channels = sun8i_a33_gpadc_channels; @@ -529,17 +526,10 @@ static int sun4i_gpadc_probe_dt(struct platform_device *pdev,  		return ret;  	} -	if (!IS_ENABLED(CONFIG_THERMAL_OF)) -		return 0; +	if (IS_ENABLED(CONFIG_THERMAL_OF)) +		info->sensor_device = &pdev->dev; -	info->sensor_device = &pdev->dev; -	info->tzd = thermal_zone_of_sensor_register(info->sensor_device, 0, -						    info, &sun4i_ts_tz_ops); -	if (IS_ERR(info->tzd)) -		dev_err(&pdev->dev, "could not register thermal sensor: %ld\n", -			PTR_ERR(info->tzd)); - -	return PTR_ERR_OR_ZERO(info->tzd); +	return 0;  }  static int sun4i_gpadc_probe_mfd(struct platform_device *pdev, @@ -586,15 +576,6 @@ static int sun4i_gpadc_probe_mfd(struct platform_device *pdev,  		 * return the temperature.  		 */  		info->sensor_device = pdev->dev.parent; -		info->tzd = thermal_zone_of_sensor_register(info->sensor_device, -							    0, info, -							    &sun4i_ts_tz_ops); -		if (IS_ERR(info->tzd)) { -			dev_err(&pdev->dev, -				"could not register thermal sensor: %ld\n", -				PTR_ERR(info->tzd)); -			return PTR_ERR(info->tzd); -		}  	} else {  		indio_dev->num_channels =  			ARRAY_SIZE(sun4i_gpadc_channels_no_temp); @@ -664,6 +645,22 @@ static int sun4i_gpadc_probe(struct platform_device *pdev)  	pm_runtime_set_suspended(&pdev->dev);  	pm_runtime_enable(&pdev->dev); +	if (IS_ENABLED(CONFIG_THERMAL_OF)) { +		info->tzd = thermal_zone_of_sensor_register(info->sensor_device, +							    0, info, +							    &sun4i_ts_tz_ops); +		/* +		 * Do not fail driver probing when failing to register in +		 * thermal because no thermal DT node is found. +		 */ +		if (IS_ERR(info->tzd) && PTR_ERR(info->tzd) != -ENODEV) { +			dev_err(&pdev->dev, +				"could not register thermal sensor: %ld\n", +				PTR_ERR(info->tzd)); +			return PTR_ERR(info->tzd); +		} +	} +  	ret = devm_iio_device_register(&pdev->dev, indio_dev);  	if (ret < 0) {  		dev_err(&pdev->dev, "could not register the device\n"); diff --git a/drivers/iio/adc/ti-adc081c.c b/drivers/iio/adc/ti-adc081c.c index 319172cf7da8..405e3779c0c5 100644 --- a/drivers/iio/adc/ti-adc081c.c +++ b/drivers/iio/adc/ti-adc081c.c @@ -124,7 +124,6 @@ static struct adcxx1c_model adcxx1c_models[] = {  static const struct iio_info adc081c_info = {  	.read_raw = adc081c_read_raw, -	.driver_module = THIS_MODULE,  };  static irqreturn_t adc081c_trigger_handler(int irq, void *p) diff --git a/drivers/iio/adc/ti-adc0832.c b/drivers/iio/adc/ti-adc0832.c index e952e94a14af..188dae705bf7 100644 --- a/drivers/iio/adc/ti-adc0832.c +++ b/drivers/iio/adc/ti-adc0832.c @@ -195,7 +195,6 @@ static int adc0832_read_raw(struct iio_dev *iio,  static const struct iio_info adc0832_info = {  	.read_raw = adc0832_read_raw, -	.driver_module = THIS_MODULE,  };  static irqreturn_t adc0832_trigger_handler(int irq, void *p) diff --git a/drivers/iio/adc/ti-adc084s021.c b/drivers/iio/adc/ti-adc084s021.c index a355121c11a4..25504640e126 100644 --- a/drivers/iio/adc/ti-adc084s021.c +++ b/drivers/iio/adc/ti-adc084s021.c @@ -186,7 +186,6 @@ static int adc084s021_buffer_postdisable(struct iio_dev *indio_dev)  static const struct iio_info adc084s021_info = {  	.read_raw = adc084s021_read_raw, -	.driver_module = THIS_MODULE,  };  static const struct iio_buffer_setup_ops adc084s021_buffer_setup_ops = { diff --git a/drivers/iio/adc/ti-adc108s102.c b/drivers/iio/adc/ti-adc108s102.c index de4e5ac98c6e..841203edaac5 100644 --- a/drivers/iio/adc/ti-adc108s102.c +++ b/drivers/iio/adc/ti-adc108s102.c @@ -220,7 +220,6 @@ static int adc108s102_read_raw(struct iio_dev *indio_dev,  static const struct iio_info adc108s102_info = {  	.read_raw		= &adc108s102_read_raw,  	.update_scan_mode	= &adc108s102_update_scan_mode, -	.driver_module		= THIS_MODULE,  };  static int adc108s102_probe(struct spi_device *spi) diff --git a/drivers/iio/adc/ti-adc12138.c b/drivers/iio/adc/ti-adc12138.c index 072f03bfe6a0..703d68ae96b7 100644 --- a/drivers/iio/adc/ti-adc12138.c +++ b/drivers/iio/adc/ti-adc12138.c @@ -164,7 +164,7 @@ static int __adc12138_start_conv(struct adc12138 *adc,  				 void *data, int len)  { -	const u8 ch_to_mux[] = { 0, 4, 1, 5, 2, 6, 3, 7 }; +	static const u8 ch_to_mux[] = { 0, 4, 1, 5, 2, 6, 3, 7 };  	u8 mode = (ch_to_mux[channel->channel] << 4) |  		  (channel->differential ? 0 : 0x80); @@ -277,7 +277,6 @@ static int adc12138_read_raw(struct iio_dev *iio,  static const struct iio_info adc12138_info = {  	.read_raw = adc12138_read_raw, -	.driver_module = THIS_MODULE,  };  static int adc12138_init(struct adc12138 *adc) diff --git a/drivers/iio/adc/ti-adc128s052.c b/drivers/iio/adc/ti-adc128s052.c index 89dfbd31be5c..7cf39b3e2416 100644 --- a/drivers/iio/adc/ti-adc128s052.c +++ b/drivers/iio/adc/ti-adc128s052.c @@ -130,7 +130,6 @@ static const struct adc128_configuration adc128_config[] = {  static const struct iio_info adc128_info = {  	.read_raw = adc128_read_raw, -	.driver_module = THIS_MODULE,  };  static int adc128_probe(struct spi_device *spi) diff --git a/drivers/iio/adc/ti-adc161s626.c b/drivers/iio/adc/ti-adc161s626.c index 4836a0d7aef5..10fa7677ac4b 100644 --- a/drivers/iio/adc/ti-adc161s626.c +++ b/drivers/iio/adc/ti-adc161s626.c @@ -173,7 +173,6 @@ static int ti_adc_read_raw(struct iio_dev *indio_dev,  }  static const struct iio_info ti_adc_info = { -	.driver_module = THIS_MODULE,  	.read_raw = ti_adc_read_raw,  }; diff --git a/drivers/iio/adc/ti-ads1015.c b/drivers/iio/adc/ti-ads1015.c index e0dc20488335..6a114dcb4a3a 100644 --- a/drivers/iio/adc/ti-ads1015.c +++ b/drivers/iio/adc/ti-ads1015.c @@ -332,7 +332,7 @@ static int ads1015_set_power_state(struct ads1015_data *data, bool on)  static  int ads1015_get_adc_result(struct ads1015_data *data, int chan, int *val)  { -	int ret, pga, dr, conv_time; +	int ret, pga, dr, dr_old, conv_time;  	unsigned int old, mask, cfg;  	if (chan < 0 || chan >= ADS1015_CHANNELS) @@ -358,17 +358,17 @@ int ads1015_get_adc_result(struct ads1015_data *data, int chan, int *val)  	}  	cfg = (old & ~mask) | (cfg & mask); - -	ret = regmap_write(data->regmap, ADS1015_CFG_REG, cfg); -	if (ret) -		return ret; - -	if (old != cfg || data->conv_invalid) { -		int dr_old = (old & ADS1015_CFG_DR_MASK) >> -				ADS1015_CFG_DR_SHIFT; - +	if (old != cfg) { +		ret = regmap_write(data->regmap, ADS1015_CFG_REG, cfg); +		if (ret) +			return ret; +		data->conv_invalid = true; +	} +	if (data->conv_invalid) { +		dr_old = (old & ADS1015_CFG_DR_MASK) >> ADS1015_CFG_DR_SHIFT;  		conv_time = DIV_ROUND_UP(USEC_PER_SEC, data->data_rate[dr_old]);  		conv_time += DIV_ROUND_UP(USEC_PER_SEC, data->data_rate[dr]); +		conv_time += conv_time / 10; /* 10% internal clock inaccuracy */  		usleep_range(conv_time, conv_time + 1);  		data->conv_invalid = false;  	} @@ -821,7 +821,6 @@ static const struct attribute_group ads1115_attribute_group = {  };  static const struct iio_info ads1015_info = { -	.driver_module	= THIS_MODULE,  	.read_raw	= ads1015_read_raw,  	.write_raw	= ads1015_write_raw,  	.read_event_value = ads1015_read_event, @@ -832,7 +831,6 @@ static const struct iio_info ads1015_info = {  };  static const struct iio_info ads1115_info = { -	.driver_module	= THIS_MODULE,  	.read_raw	= ads1015_read_raw,  	.write_raw	= ads1015_write_raw,  	.read_event_value = ads1015_read_event, diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index a376190914ad..0225c1b333ab 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -372,7 +372,6 @@ static int ti_ads7950_read_raw(struct iio_dev *indio_dev,  static const struct iio_info ti_ads7950_info = {  	.read_raw		= &ti_ads7950_read_raw,  	.update_scan_mode	= ti_ads7950_update_scan_mode, -	.driver_module		= THIS_MODULE,  };  static int ti_ads7950_probe(struct spi_device *spi) diff --git a/drivers/iio/adc/ti-ads8688.c b/drivers/iio/adc/ti-ads8688.c index 4a163496d9e4..079f133144b0 100644 --- a/drivers/iio/adc/ti-ads8688.c +++ b/drivers/iio/adc/ti-ads8688.c @@ -369,7 +369,6 @@ static const struct iio_info ads8688_info = {  	.write_raw = &ads8688_write_raw,  	.write_raw_get_fmt = &ads8688_write_raw_get_fmt,  	.attrs = &ads8688_attribute_group, -	.driver_module = THIS_MODULE,  };  static const struct ads8688_chip_info ads8688_chip_info_tbl[] = { @@ -474,7 +473,6 @@ MODULE_DEVICE_TABLE(of, ads8688_of_match);  static struct spi_driver ads8688_driver = {  	.driver = {  		.name	= "ads8688", -		.owner	= THIS_MODULE,  	},  	.probe		= ads8688_probe,  	.remove		= ads8688_remove, diff --git a/drivers/iio/adc/ti-tlc4541.c b/drivers/iio/adc/ti-tlc4541.c index 78d91a069ea4..2290024c89fc 100644 --- a/drivers/iio/adc/ti-tlc4541.c +++ b/drivers/iio/adc/ti-tlc4541.c @@ -157,7 +157,6 @@ static int tlc4541_read_raw(struct iio_dev *indio_dev,  static const struct iio_info tlc4541_info = {  	.read_raw = &tlc4541_read_raw, -	.driver_module = THIS_MODULE,  };  static int tlc4541_probe(struct spi_device *spi) diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c index 6cbed7eb118a..b3e573cc6f5f 100644 --- a/drivers/iio/adc/ti_am335x_adc.c +++ b/drivers/iio/adc/ti_am335x_adc.c @@ -533,7 +533,6 @@ err_unlock:  static const struct iio_info tiadc_info = {  	.read_raw = &tiadc_read_raw, -	.driver_module = THIS_MODULE,  };  static int tiadc_request_dma(struct platform_device *pdev, diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c index e3cfb91bffc6..8c019bb6625f 100644 --- a/drivers/iio/adc/twl4030-madc.c +++ b/drivers/iio/adc/twl4030-madc.c @@ -212,7 +212,6 @@ static int twl4030_madc_read(struct iio_dev *iio_dev,  static const struct iio_info twl4030_madc_iio_info = {  	.read_raw = &twl4030_madc_read, -	.driver_module = THIS_MODULE,  };  #define TWL4030_ADC_CHANNEL(_channel, _type, _name) {	\ diff --git a/drivers/iio/adc/twl6030-gpadc.c b/drivers/iio/adc/twl6030-gpadc.c index bc0e60b9da45..dc83f8f6c3d3 100644 --- a/drivers/iio/adc/twl6030-gpadc.c +++ b/drivers/iio/adc/twl6030-gpadc.c @@ -843,7 +843,6 @@ static const struct iio_chan_spec twl6032_gpadc_iio_channels[] = {  static const struct iio_info twl6030_gpadc_iio_info = {  	.read_raw = &twl6030_gpadc_read_raw, -	.driver_module = THIS_MODULE,  };  static const struct twl6030_gpadc_platform_data twl6030_pdata = { diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c index c168e0db329a..bbcb7a4d7edf 100644 --- a/drivers/iio/adc/vf610_adc.c +++ b/drivers/iio/adc/vf610_adc.c @@ -799,7 +799,6 @@ static int vf610_adc_reg_access(struct iio_dev *indio_dev,  }  static const struct iio_info vf610_adc_iio_info = { -	.driver_module = THIS_MODULE,  	.read_raw = &vf610_read_raw,  	.write_raw = &vf610_write_raw,  	.debugfs_reg_access = &vf610_adc_reg_access, diff --git a/drivers/iio/adc/viperboard_adc.c b/drivers/iio/adc/viperboard_adc.c index 3be2e35721cc..53eb5a4136fe 100644 --- a/drivers/iio/adc/viperboard_adc.c +++ b/drivers/iio/adc/viperboard_adc.c @@ -107,7 +107,6 @@ error:  static const struct iio_info vprbrd_adc_iio_info = {  	.read_raw = &vprbrd_iio_read_raw, -	.driver_module = THIS_MODULE,  };  static int vprbrd_adc_probe(struct platform_device *pdev) diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c index 4a60497a1f19..d4f21d1be6c8 100644 --- a/drivers/iio/adc/xilinx-xadc-core.c +++ b/drivers/iio/adc/xilinx-xadc-core.c @@ -675,7 +675,6 @@ err_out:  }  static const struct iio_trigger_ops xadc_trigger_ops = { -	.owner = THIS_MODULE,  	.set_trigger_state = &xadc_trigger_set_state,  }; @@ -1028,7 +1027,6 @@ static const struct iio_info xadc_info = {  	.read_event_value = &xadc_read_event_value,  	.write_event_value = &xadc_write_event_value,  	.update_scan_mode = &xadc_update_scan_mode, -	.driver_module = THIS_MODULE,  };  static const struct of_device_id xadc_of_match_table[] = {  | 

