On 26/04/17 10:44, Mike Looijmans wrote: > The Linear Technology LTC2631, LTC2633 and LTC2635 are very similar > to the AD5064 device, in particular the LTC2627. > > This patch adds support for those devices. Only the LTC2633 has been > tested, which is the 2-channel variant. The LTC2631 is the 1-channel, > and the LTC2635 the 4-channel version. The actual DAC resolution depends > on the exact chip type and can be 12, 10 or 8 bits, using the upper bits > so this has no effect on the register map. The internal reference is set > to 2.5V on "L" versions, and it's 4.096V for "H" versions. > > Datasheets: > LTC2631: http://www.linear.com/docs/26553 > LTC2633: http://www.linear.com/docs/39529 > LTC2635: http://www.linear.com/docs/28754 > > Signed-off-by: Mike Looijmans <mike.looijmans@xxxxxxxx> Looks fine to me, but I'd like to give time for Lars to take a look as it is his driver. Jonathan > --- > drivers/iio/dac/Kconfig | 3 ++- > drivers/iio/dac/ad5064.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++-- > 2 files changed, 58 insertions(+), 3 deletions(-) > > diff --git a/drivers/iio/dac/Kconfig b/drivers/iio/dac/Kconfig > index d3084028..31ffb67 100644 > --- a/drivers/iio/dac/Kconfig > +++ b/drivers/iio/dac/Kconfig > @@ -13,7 +13,8 @@ config AD5064 > AD5045, AD5064, AD5064-1, AD5065, AD5625, AD5625R, AD5627, AD5627R, > AD5628, AD5629R, AD5645R, AD5647R, AD5648, AD5665, AD5665R, AD5666, > AD5667, AD5667R, AD5668, AD5669R, LTC2606, LTC2607, LTC2609, LTC2616, > - LTC2617, LTC2619, LTC2626, LTC2627, LTC2629 Digital to Analog Converter. > + LTC2617, LTC2619, LTC2626, LTC2627, LTC2629, LTC2631, LTC2633, LTC2635 > + Digital to Analog Converter. > > To compile this driver as a module, choose M here: the > module will be called ad5064. > diff --git a/drivers/iio/dac/ad5064.c b/drivers/iio/dac/ad5064.c > index 6803e4a..b440180 100644 > --- a/drivers/iio/dac/ad5064.c > +++ b/drivers/iio/dac/ad5064.c > @@ -2,8 +2,8 @@ > * AD5024, AD5025, AD5044, AD5045, AD5064, AD5064-1, AD5065, AD5625, AD5625R, > * AD5627, AD5627R, AD5628, AD5629R, AD5645R, AD5647R, AD5648, AD5665, AD5665R, > * AD5666, AD5667, AD5667R, AD5668, AD5669R, LTC2606, LTC2607, LTC2609, LTC2616, > - * LTC2617, LTC2619, LTC2626, LTC2627, LTC2629 Digital to analog converters > - * driver > + * LTC2617, LTC2619, LTC2626, LTC2627, LTC2629, LTC2631, LTC2633, LTC2635 > + * Digital to analog converters driver > * > * Copyright 2011 Analog Devices Inc. > * > @@ -168,6 +168,12 @@ enum ad5064_type { > ID_LTC2626, > ID_LTC2627, > ID_LTC2629, > + ID_LTC2631_L, > + ID_LTC2631_H, > + ID_LTC2633_L, > + ID_LTC2633_H, > + ID_LTC2635_L, > + ID_LTC2635_H, > }; > > static int ad5064_write(struct ad5064_state *st, unsigned int cmd, > @@ -724,6 +730,48 @@ static int ad5064_write_raw(struct iio_dev *indio_dev, > .num_channels = 4, > .regmap_type = AD5064_REGMAP_LTC, > }, > + [ID_LTC2631_L] = { > + .shared_vref = true, > + .internal_vref = 2500000, > + .channels = ltc2627_channels, > + .num_channels = 1, > + .regmap_type = AD5064_REGMAP_LTC, > + }, > + [ID_LTC2631_H] = { > + .shared_vref = true, > + .internal_vref = 4096000, > + .channels = ltc2627_channels, > + .num_channels = 1, > + .regmap_type = AD5064_REGMAP_LTC, > + }, > + [ID_LTC2633_L] = { > + .shared_vref = true, > + .internal_vref = 2500000, > + .channels = ltc2627_channels, > + .num_channels = 2, > + .regmap_type = AD5064_REGMAP_LTC, > + }, > + [ID_LTC2633_H] = { > + .shared_vref = true, > + .internal_vref = 4096000, > + .channels = ltc2627_channels, > + .num_channels = 2, > + .regmap_type = AD5064_REGMAP_LTC, > + }, > + [ID_LTC2635_L] = { > + .shared_vref = true, > + .internal_vref = 2500000, > + .channels = ltc2627_channels, > + .num_channels = 4, > + .regmap_type = AD5064_REGMAP_LTC, > + }, > + [ID_LTC2635_H] = { > + .shared_vref = true, > + .internal_vref = 4096000, > + .channels = ltc2627_channels, > + .num_channels = 4, > + .regmap_type = AD5064_REGMAP_LTC, > + }, > }; > > static inline unsigned int ad5064_num_vref(struct ad5064_state *st) > @@ -982,6 +1030,12 @@ static int ad5064_i2c_remove(struct i2c_client *i2c) > {"ltc2626", ID_LTC2626}, > {"ltc2627", ID_LTC2627}, > {"ltc2629", ID_LTC2629}, > + {"ltc2631-l", ID_LTC2631_L}, > + {"ltc2631-h", ID_LTC2631_H}, > + {"ltc2633-l", ID_LTC2633_L}, > + {"ltc2633-h", ID_LTC2633_H}, > + {"ltc2635-l", ID_LTC2635_L}, > + {"ltc2635-h", ID_LTC2635_H}, > {} > }; > MODULE_DEVICE_TABLE(i2c, ad5064_i2c_ids); > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html