Skip to content

Commit

Permalink
iio: accel: adxl345: Make use of device properties
Browse files Browse the repository at this point in the history
Convert the module to be property provider agnostic and allow
it to be used on non-OF platforms.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Link: https://lore.kernel.org/r/20220222090009.2060-4-andriy.shevchenko@linux.intel.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
  • Loading branch information
Andy Shevchenko authored and Jonathan Cameron committed Feb 26, 2022
1 parent c1db3d5 commit 266be7c
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 11 deletions.
2 changes: 1 addition & 1 deletion drivers/iio/accel/adxl345.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ enum adxl345_device_type {
ADXL375 = 2,
};

int adxl345_core_probe(struct device *dev, struct regmap *regmap, enum adxl345_device_type type);
int adxl345_core_probe(struct device *dev, struct regmap *regmap);

#endif /* _ADXL345_H_ */
5 changes: 4 additions & 1 deletion drivers/iio/accel/adxl345_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
*/

#include <linux/module.h>
#include <linux/property.h>
#include <linux/regmap.h>

#include <linux/iio/iio.h>
Expand Down Expand Up @@ -213,14 +214,16 @@ static void adxl345_powerdown(void *regmap)
regmap_write(regmap, ADXL345_REG_POWER_CTL, ADXL345_POWER_CTL_STANDBY);
}

int adxl345_core_probe(struct device *dev, struct regmap *regmap, enum adxl345_device_type type)
int adxl345_core_probe(struct device *dev, struct regmap *regmap)
{
enum adxl345_device_type type;
struct adxl345_data *data;
struct iio_dev *indio_dev;
const char *name;
u32 regval;
int ret;

type = (uintptr_t)device_get_match_data(dev);
switch (type) {
case ADXL345:
name = "adxl345";
Expand Down
10 changes: 3 additions & 7 deletions drivers/iio/accel/adxl345_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,15 @@ static const struct regmap_config adxl345_i2c_regmap_config = {
.val_bits = 8,
};

static int adxl345_i2c_probe(struct i2c_client *client,
const struct i2c_device_id *id)
static int adxl345_i2c_probe(struct i2c_client *client)
{
struct regmap *regmap;

if (!id)
return -ENODEV;

regmap = devm_regmap_init_i2c(client, &adxl345_i2c_regmap_config);
if (IS_ERR(regmap))
return dev_err_probe(&client->dev, PTR_ERR(regmap), "Error initializing regmap\n");

return adxl345_core_probe(&client->dev, regmap, id->driver_data);
return adxl345_core_probe(&client->dev, regmap);
}

static const struct i2c_device_id adxl345_i2c_id[] = {
Expand All @@ -55,7 +51,7 @@ static struct i2c_driver adxl345_i2c_driver = {
.name = "adxl345_i2c",
.of_match_table = adxl345_of_match,
},
.probe = adxl345_i2c_probe,
.probe_new = adxl345_i2c_probe,
.id_table = adxl345_i2c_id,
};

Expand Down
3 changes: 1 addition & 2 deletions drivers/iio/accel/adxl345_spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ static const struct regmap_config adxl345_spi_regmap_config = {

static int adxl345_spi_probe(struct spi_device *spi)
{
const struct spi_device_id *id = spi_get_device_id(spi);
struct regmap *regmap;

/* Bail out if max_speed_hz exceeds 5 MHz */
Expand All @@ -34,7 +33,7 @@ static int adxl345_spi_probe(struct spi_device *spi)
if (IS_ERR(regmap))
return dev_err_probe(&spi->dev, PTR_ERR(regmap), "Error initializing regmap\n");

return adxl345_core_probe(&spi->dev, regmap, id->driver_data);
return adxl345_core_probe(&spi->dev, regmap);
}

static const struct spi_device_id adxl345_spi_id[] = {
Expand Down

0 comments on commit 266be7c

Please sign in to comment.