Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 326211
b: refs/heads/master
c: 592758b
h: refs/heads/master
i:
  326209: 9283355
  326207: 3e79982
v: v3
  • Loading branch information
Sven Schuchmann authored and Guenter Roeck committed Sep 24, 2012
1 parent 891d703 commit e6b025e
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8b662f38e066d8fc1b73a8655da547c348206904
refs/heads/master: 592758b12f2e327bb5902dabd3d36b2e86049871
23 changes: 15 additions & 8 deletions trunk/Documentation/hwmon/mcp3021
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,25 @@ Supported chips:
* Microchip Technology MCP3021
Prefix: 'mcp3021'
Datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/21805a.pdf
* Microchip Technology MCP3221
Prefix: 'mcp3221'
Datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/21732c.pdf

Author: Mingkai Hu
Authors:
Mingkai Hu
Sven Schuchmann <schuchmann@schleissheimer.de>

Description
-----------

This driver implements support for the Microchip Technology MCP3021 chip.
This driver implements support for the Microchip Technology MCP3021 and
MCP3221 chip.

The Microchip Technology Inc. MCP3021 is a successive approximation A/D
converter (ADC) with 10-bit resolution.
This device provides one single-ended input with very low power consumption.
Communication to the MCP3021 is performed using a 2-wire I2C compatible
interface. Standard (100 kHz) and Fast (400 kHz) I2C modes are available.
The default I2C device address is 0x4d (contact the Microchip factory for
additional address options).
converter (ADC) with 10-bit resolution. The MCP3221 has 12-bit resolution.

These devices provide one single-ended input with very low power consumption.
Communication to the MCP3021/MCP3221 is performed using a 2-wire I2C
compatible interface. Standard (100 kHz) and Fast (400 kHz) I2C modes are
available. The default I2C device address is 0x4d (contact the Microchip
factory for additional address options).
7 changes: 4 additions & 3 deletions trunk/drivers/hwmon/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -855,11 +855,12 @@ config SENSORS_MAX6650
will be called max6650.

config SENSORS_MCP3021
tristate "Microchip MCP3021"
tristate "Microchip MCP3021 and compatibles"
depends on I2C
help
If you say yes here you get support for the MCP3021 chip
that is a A/D converter (ADC) with 10-bit resolution.
If you say yes here you get support for MCP3021 and MCP3221.
The MCP3021 is a A/D converter (ADC) with 10-bit and the MCP3221
with 12-bit resolution.

This driver can also be built as a module. If so, the module
will be called mcp3021.
Expand Down
21 changes: 18 additions & 3 deletions trunk/drivers/hwmon/mcp3021.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* mcp3021.c - driver for the Microchip MCP3021 chip
* mcp3021.c - driver for Microchip MCP3021 and MCP3221
*
* Copyright (C) 2008-2009, 2012 Freescale Semiconductor, Inc.
* Author: Mingkai Hu <Mingkai.hu@freescale.com>
Expand Down Expand Up @@ -35,9 +35,16 @@
#define MCP3021_OUTPUT_RES 10 /* 10-bit resolution */
#define MCP3021_OUTPUT_SCALE 4

#define MCP3221_SAR_SHIFT 0
#define MCP3221_SAR_MASK 0xfff
#define MCP3221_OUTPUT_RES 12 /* 12-bit resolution */
#define MCP3221_OUTPUT_SCALE 1

enum chips {
mcp3021
mcp3021,
mcp3221
};

/*
* Client data (each client gets its own)
*/
Expand Down Expand Up @@ -127,6 +134,13 @@ static int mcp3021_probe(struct i2c_client *client,
data->output_res = MCP3021_OUTPUT_RES;
data->output_scale = MCP3021_OUTPUT_SCALE;
break;

case mcp3221:
data->sar_shift = MCP3221_SAR_SHIFT;
data->sar_mask = MCP3221_SAR_MASK;
data->output_res = MCP3221_OUTPUT_RES;
data->output_scale = MCP3221_OUTPUT_SCALE;
break;
}

if (client->dev.platform_data) {
Expand Down Expand Up @@ -165,6 +179,7 @@ static int mcp3021_remove(struct i2c_client *client)

static const struct i2c_device_id mcp3021_id[] = {
{ "mcp3021", mcp3021 },
{ "mcp3221", mcp3221 },
{ }
};
MODULE_DEVICE_TABLE(i2c, mcp3021_id);
Expand All @@ -181,5 +196,5 @@ static struct i2c_driver mcp3021_driver = {
module_i2c_driver(mcp3021_driver);

MODULE_AUTHOR("Mingkai Hu <Mingkai.hu@freescale.com>");
MODULE_DESCRIPTION("Microchip MCP3021 driver");
MODULE_DESCRIPTION("Microchip MCP3021/MCP3221 driver");
MODULE_LICENSE("GPL");

0 comments on commit e6b025e

Please sign in to comment.