Re: [PATCH v3 2/2] iio:ad5064: Add support for ltc2617 and similar devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <marc.andre@xxxxxxxxxx>
>> Acked-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
> 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, &ltc2617_powerdown_mode_enum),
>> +	IIO_ENUM_AVAILABLE("powerdown_mode", &ltc2617_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@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
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



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux