提交 70b2737e 编写于 作者: Y Yong Li 提交者: Jonathan Cameron

staging: iio: hmc5843: Set iio name dynamically

Load the driver using the below command:
echo hmc5983 0x1e > /sys/bus/i2c/devices/i2c-?/new_device

In sysfs, the iio name is hmc5843, however the i2c name is hmc5983,
they are inconsistent.

With this patch, the iio name will be the same as the i2c device name
Signed-off-by: NYong Li <sdliyong@gmail.com>
Reviewed-by: NLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: NJonathan Cameron <jic23@kernel.org>
上级 3f9059b7
...@@ -48,7 +48,7 @@ struct hmc5843_data { ...@@ -48,7 +48,7 @@ struct hmc5843_data {
}; };
int hmc5843_common_probe(struct device *dev, struct regmap *regmap, int hmc5843_common_probe(struct device *dev, struct regmap *regmap,
enum hmc5843_ids id); enum hmc5843_ids id, const char *name);
int hmc5843_common_remove(struct device *dev); int hmc5843_common_remove(struct device *dev);
int hmc5843_common_suspend(struct device *dev); int hmc5843_common_suspend(struct device *dev);
......
...@@ -577,7 +577,7 @@ int hmc5843_common_resume(struct device *dev) ...@@ -577,7 +577,7 @@ int hmc5843_common_resume(struct device *dev)
EXPORT_SYMBOL(hmc5843_common_resume); EXPORT_SYMBOL(hmc5843_common_resume);
int hmc5843_common_probe(struct device *dev, struct regmap *regmap, int hmc5843_common_probe(struct device *dev, struct regmap *regmap,
enum hmc5843_ids id) enum hmc5843_ids id, const char *name)
{ {
struct hmc5843_data *data; struct hmc5843_data *data;
struct iio_dev *indio_dev; struct iio_dev *indio_dev;
...@@ -597,7 +597,7 @@ int hmc5843_common_probe(struct device *dev, struct regmap *regmap, ...@@ -597,7 +597,7 @@ int hmc5843_common_probe(struct device *dev, struct regmap *regmap,
mutex_init(&data->lock); mutex_init(&data->lock);
indio_dev->dev.parent = dev; indio_dev->dev.parent = dev;
indio_dev->name = dev->driver->name; indio_dev->name = name;
indio_dev->info = &hmc5843_info; indio_dev->info = &hmc5843_info;
indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->modes = INDIO_DIRECT_MODE;
indio_dev->channels = data->variant->channels; indio_dev->channels = data->variant->channels;
......
...@@ -61,7 +61,7 @@ static int hmc5843_i2c_probe(struct i2c_client *cli, ...@@ -61,7 +61,7 @@ static int hmc5843_i2c_probe(struct i2c_client *cli,
{ {
return hmc5843_common_probe(&cli->dev, return hmc5843_common_probe(&cli->dev,
devm_regmap_init_i2c(cli, &hmc5843_i2c_regmap_config), devm_regmap_init_i2c(cli, &hmc5843_i2c_regmap_config),
id->driver_data); id->driver_data, id->name);
} }
static int hmc5843_i2c_remove(struct i2c_client *client) static int hmc5843_i2c_remove(struct i2c_client *client)
......
...@@ -59,6 +59,7 @@ static const struct regmap_config hmc5843_spi_regmap_config = { ...@@ -59,6 +59,7 @@ static const struct regmap_config hmc5843_spi_regmap_config = {
static int hmc5843_spi_probe(struct spi_device *spi) static int hmc5843_spi_probe(struct spi_device *spi)
{ {
int ret; int ret;
const struct spi_device_id *id = spi_get_device_id(spi);
spi->mode = SPI_MODE_3; spi->mode = SPI_MODE_3;
spi->max_speed_hz = 8000000; spi->max_speed_hz = 8000000;
...@@ -69,7 +70,7 @@ static int hmc5843_spi_probe(struct spi_device *spi) ...@@ -69,7 +70,7 @@ static int hmc5843_spi_probe(struct spi_device *spi)
return hmc5843_common_probe(&spi->dev, return hmc5843_common_probe(&spi->dev,
devm_regmap_init_spi(spi, &hmc5843_spi_regmap_config), devm_regmap_init_spi(spi, &hmc5843_spi_regmap_config),
HMC5983_ID); id->driver_data, id->name);
} }
static int hmc5843_spi_remove(struct spi_device *spi) static int hmc5843_spi_remove(struct spi_device *spi)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册