Loading Documentation/hwmon/mcp3021 +15 −8 Original line number Diff line number Diff line Loading @@ -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). drivers/hwmon/Kconfig +4 −3 Original line number Diff line number Diff line Loading @@ -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. Loading drivers/hwmon/mcp3021.c +18 −3 Original line number Diff line number Diff line /* * 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> Loading Loading @@ -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) */ Loading Loading @@ -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) { Loading Loading @@ -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); Loading @@ -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"); Loading
Documentation/hwmon/mcp3021 +15 −8 Original line number Diff line number Diff line Loading @@ -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).
drivers/hwmon/Kconfig +4 −3 Original line number Diff line number Diff line Loading @@ -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. Loading
drivers/hwmon/mcp3021.c +18 −3 Original line number Diff line number Diff line /* * 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> Loading Loading @@ -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) */ Loading Loading @@ -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) { Loading Loading @@ -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); Loading @@ -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");