Commit 505abf99 authored by Akinobu Mita's avatar Akinobu Mita Committed by Jonathan Cameron

iio: adc: mcp3422: Add support for MCP3425

The MCP3425 is a single channel up to 16-bit A/D converter which has
features:

- On-Board Programmable Gain Amplifier (PGA):
 - Gains of 1, 2, 4 or 8
- Programmable Data Rate Options:
 - 15 SPS (16 bits), 60 SPS (14 bits), 240 SPS (12 bits)

The mcp3422 driver also supports the MCP3421 which is a single channel.
So we can support MCP3425 with a little changes to mcp3422 driver.
Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Angelo Compagnucci <angelo.compagnucci@gmail.com>
Cc: Peter Meerwald <pmeerw@pmeerw.net>
Cc: linux-iio@vger.kernel.org
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 02c34ccc
...@@ -6,6 +6,7 @@ Required properties: ...@@ -6,6 +6,7 @@ Required properties:
"microchip,mcp3422" or "microchip,mcp3422" or
"microchip,mcp3423" or "microchip,mcp3423" or
"microchip,mcp3424" or "microchip,mcp3424" or
"microchip,mcp3425" or
"microchip,mcp3426" or "microchip,mcp3426" or
"microchip,mcp3427" or "microchip,mcp3427" or
"microchip,mcp3428" "microchip,mcp3428"
......
...@@ -265,11 +265,11 @@ config MCP320X ...@@ -265,11 +265,11 @@ config MCP320X
called mcp320x. called mcp320x.
config MCP3422 config MCP3422
tristate "Microchip Technology MCP3422/3/4/6/7/8 driver" tristate "Microchip Technology MCP3421/2/3/4/5/6/7/8 driver"
depends on I2C depends on I2C
help help
Say yes here to build support for Microchip Technology's Say yes here to build support for Microchip Technology's MCP3421
MCP3422, MCP3423, MCP3424, MCP3426, MCP3427 or MCP3428 MCP3422, MCP3423, MCP3424, MCP3425, MCP3426, MCP3427 or MCP3428
analog to digital converters. analog to digital converters.
This driver can also be built as a module. If so, the module will be This driver can also be built as a module. If so, the module will be
......
/* /*
* mcp3422.c - driver for the Microchip mcp3422/3/4/6/7/8 chip family * mcp3422.c - driver for the Microchip mcp3421/2/3/4/5/6/7/8 chip family
* *
* Copyright (C) 2013, Angelo Compagnucci * Copyright (C) 2013, Angelo Compagnucci
* Author: Angelo Compagnucci <angelo.compagnucci@gmail.com> * Author: Angelo Compagnucci <angelo.compagnucci@gmail.com>
* *
* Datasheet: http://ww1.microchip.com/downloads/en/devicedoc/22088b.pdf * Datasheet: http://ww1.microchip.com/downloads/en/devicedoc/22088b.pdf
* http://ww1.microchip.com/downloads/en/DeviceDoc/22226a.pdf * http://ww1.microchip.com/downloads/en/DeviceDoc/22226a.pdf
* http://ww1.microchip.com/downloads/en/DeviceDoc/22072b.pdf
* *
* This driver exports the value of analog input voltage to sysfs, the * This driver exports the value of analog input voltage to sysfs, the
* voltage unit is nV. * voltage unit is nV.
...@@ -357,6 +358,7 @@ static int mcp3422_probe(struct i2c_client *client, ...@@ -357,6 +358,7 @@ static int mcp3422_probe(struct i2c_client *client,
switch (adc->id) { switch (adc->id) {
case 1: case 1:
case 5:
indio_dev->channels = mcp3421_channels; indio_dev->channels = mcp3421_channels;
indio_dev->num_channels = ARRAY_SIZE(mcp3421_channels); indio_dev->num_channels = ARRAY_SIZE(mcp3421_channels);
break; break;
...@@ -395,6 +397,7 @@ static const struct i2c_device_id mcp3422_id[] = { ...@@ -395,6 +397,7 @@ static const struct i2c_device_id mcp3422_id[] = {
{ "mcp3422", 2 }, { "mcp3422", 2 },
{ "mcp3423", 3 }, { "mcp3423", 3 },
{ "mcp3424", 4 }, { "mcp3424", 4 },
{ "mcp3425", 5 },
{ "mcp3426", 6 }, { "mcp3426", 6 },
{ "mcp3427", 7 }, { "mcp3427", 7 },
{ "mcp3428", 8 }, { "mcp3428", 8 },
...@@ -421,5 +424,5 @@ static struct i2c_driver mcp3422_driver = { ...@@ -421,5 +424,5 @@ static struct i2c_driver mcp3422_driver = {
module_i2c_driver(mcp3422_driver); module_i2c_driver(mcp3422_driver);
MODULE_AUTHOR("Angelo Compagnucci <angelo.compagnucci@gmail.com>"); MODULE_AUTHOR("Angelo Compagnucci <angelo.compagnucci@gmail.com>");
MODULE_DESCRIPTION("Microchip mcp3422/3/4/6/7/8 driver"); MODULE_DESCRIPTION("Microchip mcp3421/2/3/4/5/6/7/8 driver");
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
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