From 49b3f87496a7c646da3f900fd502f68a687457ad Mon Sep 17 00:00:00 2001 From: Lukas Wunner Date: Tue, 5 Sep 2017 11:44:00 +0200 Subject: drivers: misc: ti_dac7512: Remove duplicate driver The Texas Instruments DAC7512 has the exact same pinout, programming interface and power-down modes as the Texas Instruments DAC121S101 and Analog Devices AD5320, which are already supported by the IIO driver ad5446.c. Remove the duplicate misc driver. This requires user space to migrate to the standardized IIO sysfs ABI. (In other words, it needs to change a filename.) The IIO driver supports the chip's features more fully, e.g. the ability to power down the output or choose one of the available powerdown modes. There is an oddity with the misc driver in that it initializes the SPI slave to SPI_MODE_0, in contradiction to the datasheet which specifies that data is latched in on the falling edge, implying that SPI_MODE_1 or SPI_MODE_2 must be used. Another oddity is that Kconfig and the MODULE_DESCRIPTION() claim the chip has 16-bit resolution although it actually has 12-bit. Datasheets: http://www.ti.com/lit/ds/symlink/dac7512.pdf http://www.ti.com/lit/ds/symlink/dac121s101.pdf http://www.analog.com/media/en/technical-documentation/data-sheets/AD5320.pdf Signed-off-by: Lukas Wunner Acked-by: Daniel Mack Acked-by: Arnd Bergmann Signed-off-by: Jonathan Cameron --- drivers/iio/dac/ad5446.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'drivers/iio/dac') diff --git a/drivers/iio/dac/ad5446.c b/drivers/iio/dac/ad5446.c index 3f6465de39de..fd26a4272fc5 100644 --- a/drivers/iio/dac/ad5446.c +++ b/drivers/iio/dac/ad5446.c @@ -463,10 +463,19 @@ static const struct spi_device_id ad5446_spi_ids[] = { {"dac081s101", ID_AD5300}, /* compatible Texas Instruments chips */ {"dac101s101", ID_AD5310}, {"dac121s101", ID_AD5320}, + {"dac7512", ID_AD5320}, {} }; MODULE_DEVICE_TABLE(spi, ad5446_spi_ids); +#ifdef CONFIG_OF +static const struct of_device_id ad5446_of_ids[] = { + { .compatible = "ti,dac7512" }, + { } +}; +MODULE_DEVICE_TABLE(of, ad5446_of_ids); +#endif + static int ad5446_spi_probe(struct spi_device *spi) { const struct spi_device_id *id = spi_get_device_id(spi); @@ -483,6 +492,7 @@ static int ad5446_spi_remove(struct spi_device *spi) static struct spi_driver ad5446_spi_driver = { .driver = { .name = "ad5446", + .of_match_table = of_match_ptr(ad5446_of_ids), }, .probe = ad5446_spi_probe, .remove = ad5446_spi_remove, -- cgit v1.2.3