diff options
Diffstat (limited to 'drivers/iio/adc/ti-adc081c.c')
| -rw-r--r-- | drivers/iio/adc/ti-adc081c.c | 22 | 
1 files changed, 17 insertions, 5 deletions
| diff --git a/drivers/iio/adc/ti-adc081c.c b/drivers/iio/adc/ti-adc081c.c index 16fc608db36a..bd48b073e720 100644 --- a/drivers/iio/adc/ti-adc081c.c +++ b/drivers/iio/adc/ti-adc081c.c @@ -19,6 +19,7 @@  #include <linux/i2c.h>  #include <linux/module.h>  #include <linux/mod_devicetable.h> +#include <linux/property.h>  #include <linux/iio/iio.h>  #include <linux/iio/buffer.h> @@ -156,13 +157,16 @@ static int adc081c_probe(struct i2c_client *client,  {  	struct iio_dev *iio;  	struct adc081c *adc; -	struct adcxx1c_model *model; +	const struct adcxx1c_model *model;  	int err;  	if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA))  		return -EOPNOTSUPP; -	model = &adcxx1c_models[id->driver_data]; +	if (dev_fwnode(&client->dev)) +		model = device_get_match_data(&client->dev); +	else +		model = &adcxx1c_models[id->driver_data];  	iio = devm_iio_device_alloc(&client->dev, sizeof(*adc));  	if (!iio) @@ -210,10 +214,17 @@ static const struct i2c_device_id adc081c_id[] = {  };  MODULE_DEVICE_TABLE(i2c, adc081c_id); +static const struct acpi_device_id adc081c_acpi_match[] = { +	/* Used on some AAEON boards */ +	{ "ADC081C", (kernel_ulong_t)&adcxx1c_models[ADC081C] }, +	{ } +}; +MODULE_DEVICE_TABLE(acpi, adc081c_acpi_match); +  static const struct of_device_id adc081c_of_match[] = { -	{ .compatible = "ti,adc081c" }, -	{ .compatible = "ti,adc101c" }, -	{ .compatible = "ti,adc121c" }, +	{ .compatible = "ti,adc081c", .data = &adcxx1c_models[ADC081C] }, +	{ .compatible = "ti,adc101c", .data = &adcxx1c_models[ADC101C] }, +	{ .compatible = "ti,adc121c", .data = &adcxx1c_models[ADC121C] },  	{ }  };  MODULE_DEVICE_TABLE(of, adc081c_of_match); @@ -222,6 +233,7 @@ static struct i2c_driver adc081c_driver = {  	.driver = {  		.name = "adc081c",  		.of_match_table = adc081c_of_match, +		.acpi_match_table = adc081c_acpi_match,  	},  	.probe = adc081c_probe,  	.id_table = adc081c_id, |