mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 12:03:54 +02:00
iio: frequency: adf4371: make use of spi_get_device_match_data()
To use spi_get_device_match_data(), add the chip_info structure to the of_device_id table which is always a good thing to do. While at it, added dedicated variables for each chip (instead of the harder to maintain array) and added a new string variable for the part name. Signed-off-by: Nuno Sa <nuno.sa@analog.com> Link: https://patch.msgid.link/20241009-dev-adf4371-minor-improv-v1-1-97f4f22ed941@analog.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
3eb27cf141
commit
f1a5d7795f
|
|
@ -150,6 +150,7 @@ static const struct regmap_config adf4371_regmap_config = {
|
|||
};
|
||||
|
||||
struct adf4371_chip_info {
|
||||
const char *name;
|
||||
unsigned int num_channels;
|
||||
const struct iio_chan_spec *channels;
|
||||
};
|
||||
|
|
@ -444,15 +445,16 @@ static const struct iio_chan_spec adf4371_chan[] = {
|
|||
ADF4371_CHANNEL(ADF4371_CH_RF32),
|
||||
};
|
||||
|
||||
static const struct adf4371_chip_info adf4371_chip_info[] = {
|
||||
[ADF4371] = {
|
||||
.channels = adf4371_chan,
|
||||
.num_channels = 4,
|
||||
},
|
||||
[ADF4372] = {
|
||||
.channels = adf4371_chan,
|
||||
.num_channels = 3,
|
||||
}
|
||||
static const struct adf4371_chip_info adf4371_chip_info = {
|
||||
.name = "adf4371",
|
||||
.channels = adf4371_chan,
|
||||
.num_channels = 4,
|
||||
};
|
||||
|
||||
static const struct adf4371_chip_info adf4372_chip_info = {
|
||||
.name = "adf4372",
|
||||
.channels = adf4371_chan,
|
||||
.num_channels = 3,
|
||||
};
|
||||
|
||||
static int adf4371_reg_access(struct iio_dev *indio_dev,
|
||||
|
|
@ -542,7 +544,6 @@ static int adf4371_setup(struct adf4371_state *st)
|
|||
|
||||
static int adf4371_probe(struct spi_device *spi)
|
||||
{
|
||||
const struct spi_device_id *id = spi_get_device_id(spi);
|
||||
struct iio_dev *indio_dev;
|
||||
struct adf4371_state *st;
|
||||
struct regmap *regmap;
|
||||
|
|
@ -565,8 +566,11 @@ static int adf4371_probe(struct spi_device *spi)
|
|||
st->regmap = regmap;
|
||||
mutex_init(&st->lock);
|
||||
|
||||
st->chip_info = &adf4371_chip_info[id->driver_data];
|
||||
indio_dev->name = id->name;
|
||||
st->chip_info = spi_get_device_match_data(spi);
|
||||
if (!st->chip_info)
|
||||
return -ENODEV;
|
||||
|
||||
indio_dev->name = st->chip_info->name;
|
||||
indio_dev->info = &adf4371_info;
|
||||
indio_dev->modes = INDIO_DIRECT_MODE;
|
||||
indio_dev->channels = st->chip_info->channels;
|
||||
|
|
@ -588,15 +592,15 @@ static int adf4371_probe(struct spi_device *spi)
|
|||
}
|
||||
|
||||
static const struct spi_device_id adf4371_id_table[] = {
|
||||
{ "adf4371", ADF4371 },
|
||||
{ "adf4372", ADF4372 },
|
||||
{ "adf4371", (kernel_ulong_t)&adf4371_chip_info },
|
||||
{ "adf4372", (kernel_ulong_t)&adf4372_chip_info },
|
||||
{}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(spi, adf4371_id_table);
|
||||
|
||||
static const struct of_device_id adf4371_of_match[] = {
|
||||
{ .compatible = "adi,adf4371" },
|
||||
{ .compatible = "adi,adf4372" },
|
||||
{ .compatible = "adi,adf4371", .data = &adf4371_chip_info },
|
||||
{ .compatible = "adi,adf4372", .data = &adf4372_chip_info},
|
||||
{ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, adf4371_of_match);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user