|
@@ -40,13 +40,6 @@
|
|
|
#include <linux/hwmon-sysfs.h>
|
|
|
#include <linux/err.h>
|
|
|
|
|
|
-/*
|
|
|
- * Addresses to scan. There are four disjoint possibilities, by pin config.
|
|
|
- */
|
|
|
-
|
|
|
-static const unsigned short normal_i2c[] = {0x1b, 0x1f, 0x48, 0x4b,
|
|
|
- I2C_CLIENT_END};
|
|
|
-
|
|
|
/*
|
|
|
* Insmod parameters
|
|
|
*/
|
|
@@ -114,8 +107,6 @@ module_param(clock, int, S_IRUGO);
|
|
|
|
|
|
static int max6650_probe(struct i2c_client *client,
|
|
|
const struct i2c_device_id *id);
|
|
|
-static int max6650_detect(struct i2c_client *client,
|
|
|
- struct i2c_board_info *info);
|
|
|
static int max6650_init_client(struct i2c_client *client);
|
|
|
static int max6650_remove(struct i2c_client *client);
|
|
|
static struct max6650_data *max6650_update_device(struct device *dev);
|
|
@@ -131,15 +122,12 @@ static const struct i2c_device_id max6650_id[] = {
|
|
|
MODULE_DEVICE_TABLE(i2c, max6650_id);
|
|
|
|
|
|
static struct i2c_driver max6650_driver = {
|
|
|
- .class = I2C_CLASS_HWMON,
|
|
|
.driver = {
|
|
|
.name = "max6650",
|
|
|
},
|
|
|
.probe = max6650_probe,
|
|
|
.remove = max6650_remove,
|
|
|
.id_table = max6650_id,
|
|
|
- .detect = max6650_detect,
|
|
|
- .address_list = normal_i2c,
|
|
|
};
|
|
|
|
|
|
/*
|
|
@@ -525,38 +513,6 @@ static struct attribute_group max6650_attr_grp = {
|
|
|
* Real code
|
|
|
*/
|
|
|
|
|
|
-/* Return 0 if detection is successful, -ENODEV otherwise */
|
|
|
-static int max6650_detect(struct i2c_client *client,
|
|
|
- struct i2c_board_info *info)
|
|
|
-{
|
|
|
- struct i2c_adapter *adapter = client->adapter;
|
|
|
- int address = client->addr;
|
|
|
-
|
|
|
- dev_dbg(&adapter->dev, "max6650_detect called\n");
|
|
|
-
|
|
|
- if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) {
|
|
|
- dev_dbg(&adapter->dev, "max6650: I2C bus doesn't support "
|
|
|
- "byte read mode, skipping.\n");
|
|
|
- return -ENODEV;
|
|
|
- }
|
|
|
-
|
|
|
- if (((i2c_smbus_read_byte_data(client, MAX6650_REG_CONFIG) & 0xC0)
|
|
|
- ||(i2c_smbus_read_byte_data(client, MAX6650_REG_GPIO_STAT) & 0xE0)
|
|
|
- ||(i2c_smbus_read_byte_data(client, MAX6650_REG_ALARM_EN) & 0xE0)
|
|
|
- ||(i2c_smbus_read_byte_data(client, MAX6650_REG_ALARM) & 0xE0)
|
|
|
- ||(i2c_smbus_read_byte_data(client, MAX6650_REG_COUNT) & 0xFC))) {
|
|
|
- dev_dbg(&adapter->dev,
|
|
|
- "max6650: detection failed at 0x%02x.\n", address);
|
|
|
- return -ENODEV;
|
|
|
- }
|
|
|
-
|
|
|
- dev_info(&adapter->dev, "max6650: chip found at 0x%02x.\n", address);
|
|
|
-
|
|
|
- strlcpy(info->type, "max6650", I2C_NAME_SIZE);
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
static int max6650_probe(struct i2c_client *client,
|
|
|
const struct i2c_device_id *id)
|
|
|
{
|