Commit 58c26300 authored by Fabio Estevam's avatar Fabio Estevam Committed by Jonathan Cameron

iio: dac: ad5686: Add support for AD5337

AD5337 belongs to the same family as the AD5338.

The difference is that the AD5337 has 8-bit precision instead of 10-bit.

Add support for the AD5337 chip in the driver.
Signed-off-by: default avatarFabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20221130182632.3856675-2-festevam@gmail.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 611370fe
...@@ -162,10 +162,10 @@ config AD5696_I2C ...@@ -162,10 +162,10 @@ config AD5696_I2C
depends on I2C depends on I2C
select AD5686 select AD5686
help help
Say yes here to build support for Analog Devices AD5311R, AD5338R, Say yes here to build support for Analog Devices AD5311R, AD5337,
AD5671R, AD5673R, AD5675R, AD5677R, AD5691R, AD5692R, AD5693, AD5693R, AD5338R, AD5671R, AD5673R, AD5675R, AD5677R, AD5691R, AD5692R, AD5693,
AD5694, AD5694R, AD5695R, AD5696, and AD5696R Digital to Analog AD5693R, AD5694, AD5694R, AD5695R, AD5696, and AD5696R Digital to
converters. Analog converters.
To compile this driver as a module, choose M here: the module will be To compile this driver as a module, choose M here: the module will be
called ad5696. called ad5696.
......
...@@ -258,6 +258,7 @@ static const struct iio_chan_spec name[] = { \ ...@@ -258,6 +258,7 @@ static const struct iio_chan_spec name[] = { \
DECLARE_AD5693_CHANNELS(ad5310r_channels, 10, 2); DECLARE_AD5693_CHANNELS(ad5310r_channels, 10, 2);
DECLARE_AD5693_CHANNELS(ad5311r_channels, 10, 6); DECLARE_AD5693_CHANNELS(ad5311r_channels, 10, 6);
DECLARE_AD5338_CHANNELS(ad5337r_channels, 8, 8);
DECLARE_AD5338_CHANNELS(ad5338r_channels, 10, 6); DECLARE_AD5338_CHANNELS(ad5338r_channels, 10, 6);
DECLARE_AD5676_CHANNELS(ad5672_channels, 12, 4); DECLARE_AD5676_CHANNELS(ad5672_channels, 12, 4);
DECLARE_AD5679_CHANNELS(ad5674r_channels, 12, 4); DECLARE_AD5679_CHANNELS(ad5674r_channels, 12, 4);
...@@ -283,6 +284,12 @@ static const struct ad5686_chip_info ad5686_chip_info_tbl[] = { ...@@ -283,6 +284,12 @@ static const struct ad5686_chip_info ad5686_chip_info_tbl[] = {
.num_channels = 1, .num_channels = 1,
.regmap_type = AD5693_REGMAP, .regmap_type = AD5693_REGMAP,
}, },
[ID_AD5337R] = {
.channels = ad5337r_channels,
.int_vref_mv = 2500,
.num_channels = 2,
.regmap_type = AD5686_REGMAP,
},
[ID_AD5338R] = { [ID_AD5338R] = {
.channels = ad5338r_channels, .channels = ad5338r_channels,
.int_vref_mv = 2500, .int_vref_mv = 2500,
......
...@@ -54,6 +54,7 @@ ...@@ -54,6 +54,7 @@
enum ad5686_supported_device_ids { enum ad5686_supported_device_ids {
ID_AD5310R, ID_AD5310R,
ID_AD5311R, ID_AD5311R,
ID_AD5337R,
ID_AD5338R, ID_AD5338R,
ID_AD5671R, ID_AD5671R,
ID_AD5672R, ID_AD5672R,
......
...@@ -72,6 +72,7 @@ static void ad5686_i2c_remove(struct i2c_client *i2c) ...@@ -72,6 +72,7 @@ static void ad5686_i2c_remove(struct i2c_client *i2c)
static const struct i2c_device_id ad5686_i2c_id[] = { static const struct i2c_device_id ad5686_i2c_id[] = {
{"ad5311r", ID_AD5311R}, {"ad5311r", ID_AD5311R},
{"ad5337r", ID_AD5337R},
{"ad5338r", ID_AD5338R}, {"ad5338r", ID_AD5338R},
{"ad5671r", ID_AD5671R}, {"ad5671r", ID_AD5671R},
{"ad5673r", ID_AD5673R}, {"ad5673r", ID_AD5673R},
...@@ -92,6 +93,7 @@ MODULE_DEVICE_TABLE(i2c, ad5686_i2c_id); ...@@ -92,6 +93,7 @@ MODULE_DEVICE_TABLE(i2c, ad5686_i2c_id);
static const struct of_device_id ad5686_of_match[] = { static const struct of_device_id ad5686_of_match[] = {
{ .compatible = "adi,ad5311r" }, { .compatible = "adi,ad5311r" },
{ .compatible = "adi,ad5337r" },
{ .compatible = "adi,ad5338r" }, { .compatible = "adi,ad5338r" },
{ .compatible = "adi,ad5671r" }, { .compatible = "adi,ad5671r" },
{ .compatible = "adi,ad5675r" }, { .compatible = "adi,ad5675r" },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment