From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [212.40.180.161] ([212.40.180.161]:42089 "EHLO smtp-out-039.synserver.de" rhost-flags-FAIL-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1753452AbcBHPni (ORCPT ); Mon, 8 Feb 2016 10:43:38 -0500 Subject: Re: [PATCH v3 2/2] iio:ad5064: Add support for ltc2617 and similar devices To: Jonathan Cameron , Marc Andre References: <1445488471-16568-1-git-send-email-marc.andre@netline.ch> <1445488471-16568-3-git-send-email-marc.andre@netline.ch> <562CBAB6.7020806@kernel.org> Cc: knaack.h@gmx.de, pmeerw@pmeerw.net, linux-iio@vger.kernel.org From: Lars-Peter Clausen Message-ID: <56B8B57C.5050008@metafoo.de> Date: Mon, 8 Feb 2016 16:34:20 +0100 MIME-Version: 1.0 In-Reply-To: <562CBAB6.7020806@kernel.org> Content-Type: text/plain; charset=windows-1252 Sender: linux-iio-owner@vger.kernel.org List-Id: linux-iio@vger.kernel.org On 10/25/2015 12:19 PM, Jonathan Cameron wrote: > On 22/10/15 05:34, Marc Andre wrote: >> The Linear Technology LTC2606, LTC2607, LTC2609, LTC2616, LTC2617, >> LTC2619, LTC2626, LTC2627 and LTC2629 devices are very similar >> to the AD5064 device. >> >> This patch adds support for those devices. >> >> Datasheet for LTC devices: >> LTC2606, LTC2616, LTC2626: http://www.linear.com/docs/6398 >> LTC2607, LTC2617, LTC2627: http://www.linear.com/docs/8977 >> LTC2709, LTC2619, LTC2629: http://www.linear.com/docs/8477 >> >> Signed-off-by: Marc Andre >> Acked-by: Lars-Peter Clausen > Queued up for when the prerequisits make it in. I think this got somehow lost. Can you take a look at it again, thanks. >> --- >> Documentation/ABI/testing/sysfs-bus-iio | 1 + >> drivers/iio/dac/ad5064.c | 112 +++++++++++++++++++++++++++++++- >> 2 files changed, 112 insertions(+), 1 deletion(-) >> >> diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio >> index 42d360f..3e8b778 100644 >> --- a/Documentation/ABI/testing/sysfs-bus-iio >> +++ b/Documentation/ABI/testing/sysfs-bus-iio >> @@ -496,6 +496,7 @@ Description: >> 1kohm_to_gnd: connected to ground via an 1kOhm resistor, >> 6kohm_to_gnd: connected to ground via a 6kOhm resistor, >> 20kohm_to_gnd: connected to ground via a 20kOhm resistor, >> + 90kohm_to_gnd: connected to ground via a 90kOhm resistor, >> 100kohm_to_gnd: connected to ground via an 100kOhm resistor, >> 500kohm_to_gnd: connected to ground via a 500kOhm resistor, >> three_state: left floating. >> diff --git a/drivers/iio/dac/ad5064.c b/drivers/iio/dac/ad5064.c >> index 3bb0312..1b89625 100644 >> --- a/drivers/iio/dac/ad5064.c >> +++ b/drivers/iio/dac/ad5064.c >> @@ -1,6 +1,8 @@ >> /* >> * AD5024, AD5025, AD5044, AD5045, AD5064, AD5064-1, AD5065, AD5628, AD5629R, >> - * AD5648, AD5666, AD5668, AD5669R Digital to analog converters driver >> + * AD5648, AD5666, AD5668, AD5669R, LTC2606, LTC2607, LTC2609, LTC2616, >> + * LTC2617, LTC2619, LTC2626, LTC2627, LTC2629 Digital to analog converters >> + * driver >> * >> * Copyright 2011 Analog Devices Inc. >> * >> @@ -126,6 +128,15 @@ enum ad5064_type { >> ID_AD5668_2, >> ID_AD5669_1, >> ID_AD5669_2, >> + ID_LTC2606, >> + ID_LTC2607, >> + ID_LTC2609, >> + ID_LTC2616, >> + ID_LTC2617, >> + ID_LTC2619, >> + ID_LTC2626, >> + ID_LTC2627, >> + ID_LTC2629, >> }; >> >> static int ad5064_write(struct ad5064_state *st, unsigned int cmd, >> @@ -164,6 +175,10 @@ static const char * const ad5064_powerdown_modes[] = { >> "three_state", >> }; >> >> +static const char * const ltc2617_powerdown_modes[] = { >> + "90kohm_to_gnd", >> +}; >> + >> static int ad5064_get_powerdown_mode(struct iio_dev *indio_dev, >> const struct iio_chan_spec *chan) >> { >> @@ -194,6 +209,13 @@ static const struct iio_enum ad5064_powerdown_mode_enum = { >> .set = ad5064_set_powerdown_mode, >> }; >> >> +static const struct iio_enum ltc2617_powerdown_mode_enum = { >> + .items = ltc2617_powerdown_modes, >> + .num_items = ARRAY_SIZE(ltc2617_powerdown_modes), >> + .get = ad5064_get_powerdown_mode, >> + .set = ad5064_set_powerdown_mode, >> +}; >> + >> static ssize_t ad5064_read_dac_powerdown(struct iio_dev *indio_dev, >> uintptr_t private, const struct iio_chan_spec *chan, char *buf) >> { >> @@ -304,6 +326,18 @@ static const struct iio_chan_spec_ext_info ad5064_ext_info[] = { >> { }, >> }; >> >> +static const struct iio_chan_spec_ext_info ltc2617_ext_info[] = { >> + { >> + .name = "powerdown", >> + .read = ad5064_read_dac_powerdown, >> + .write = ad5064_write_dac_powerdown, >> + .shared = IIO_SEPARATE, >> + }, >> + IIO_ENUM("powerdown_mode", IIO_SEPARATE, <c2617_powerdown_mode_enum), >> + IIO_ENUM_AVAILABLE("powerdown_mode", <c2617_powerdown_mode_enum), >> + { }, >> +}; >> + >> #define AD5064_CHANNEL(chan, addr, bits, _shift, _ext_info) { \ >> .type = IIO_VOLTAGE, \ >> .indexed = 1, \ >> @@ -350,6 +384,10 @@ static DECLARE_AD5065_CHANNELS(ad5065_channels, 16, 4, ad5064_ext_info); >> static DECLARE_AD5064_CHANNELS(ad5629_channels, 12, 4, ad5064_ext_info); >> static DECLARE_AD5064_CHANNELS(ad5669_channels, 16, 0, ad5064_ext_info); >> >> +static DECLARE_AD5064_CHANNELS(ltc2607_channels, 16, 0, ltc2617_ext_info); >> +static DECLARE_AD5064_CHANNELS(ltc2617_channels, 14, 2, ltc2617_ext_info); >> +static DECLARE_AD5064_CHANNELS(ltc2627_channels, 12, 4, ltc2617_ext_info); >> + >> static const struct ad5064_chip_info ad5064_chip_info_tbl[] = { >> [ID_AD5024] = { >> .shared_vref = false, >> @@ -458,6 +496,69 @@ static const struct ad5064_chip_info ad5064_chip_info_tbl[] = { >> .channels = ad5669_channels, >> .num_channels = 8, >> }, >> + [ID_LTC2606] = { >> + .shared_vref = true, >> + .internal_vref = 0, >> + .channels = ltc2607_channels, >> + .num_channels = 1, >> + .powerdown_ltc = true, >> + }, >> + [ID_LTC2607] = { >> + .shared_vref = true, >> + .internal_vref = 0, >> + .channels = ltc2607_channels, >> + .num_channels = 2, >> + .powerdown_ltc = true, >> + }, >> + [ID_LTC2609] = { >> + .shared_vref = false, >> + .internal_vref = 0, >> + .channels = ltc2607_channels, >> + .num_channels = 4, >> + .powerdown_ltc = true, >> + }, >> + [ID_LTC2616] = { >> + .shared_vref = true, >> + .internal_vref = 0, >> + .channels = ltc2617_channels, >> + .num_channels = 1, >> + .powerdown_ltc = true, >> + }, >> + [ID_LTC2617] = { >> + .shared_vref = true, >> + .internal_vref = 0, >> + .channels = ltc2617_channels, >> + .num_channels = 2, >> + .powerdown_ltc = true, >> + }, >> + [ID_LTC2619] = { >> + .shared_vref = false, >> + .internal_vref = 0, >> + .channels = ltc2617_channels, >> + .num_channels = 4, >> + .powerdown_ltc = true, >> + }, >> + [ID_LTC2626] = { >> + .shared_vref = true, >> + .internal_vref = 0, >> + .channels = ltc2627_channels, >> + .num_channels = 1, >> + .powerdown_ltc = true, >> + }, >> + [ID_LTC2627] = { >> + .shared_vref = true, >> + .internal_vref = 0, >> + .channels = ltc2627_channels, >> + .num_channels = 2, >> + .powerdown_ltc = true, >> + }, >> + [ID_LTC2629] = { >> + .shared_vref = false, >> + .internal_vref = 0, >> + .channels = ltc2627_channels, >> + .num_channels = 4, >> + .powerdown_ltc = true, >> + }, >> }; >> >> static inline unsigned int ad5064_num_vref(struct ad5064_state *st) >> @@ -669,6 +770,15 @@ static const struct i2c_device_id ad5064_i2c_ids[] = { >> {"ad5669-1", ID_AD5669_1}, >> {"ad5669-2", ID_AD5669_2}, >> {"ad5669-3", ID_AD5669_2}, /* similar enough to ad5669-2 */ >> + {"ltc2606", ID_LTC2606}, >> + {"ltc2607", ID_LTC2607}, >> + {"ltc2609", ID_LTC2609}, >> + {"ltc2616", ID_LTC2616}, >> + {"ltc2617", ID_LTC2617}, >> + {"ltc2619", ID_LTC2619}, >> + {"ltc2626", ID_LTC2626}, >> + {"ltc2627", ID_LTC2627}, >> + {"ltc2629", ID_LTC2629}, >> {} >> }; >> 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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >