diff options
Diffstat (limited to 'drivers/hwmon/amc6821.c')
-rw-r--r-- | drivers/hwmon/amc6821.c | 74 |
1 files changed, 32 insertions, 42 deletions
diff --git a/drivers/hwmon/amc6821.c b/drivers/hwmon/amc6821.c index 89a6b9da0ec3..f600fa1f92e3 100644 --- a/drivers/hwmon/amc6821.c +++ b/drivers/hwmon/amc6821.c | |||
@@ -1,25 +1,25 @@ | |||
1 | /* | 1 | /* |
2 | amc6821.c - Part of lm_sensors, Linux kernel modules for hardware | 2 | * amc6821.c - Part of lm_sensors, Linux kernel modules for hardware |
3 | monitoring | 3 | * monitoring |
4 | Copyright (C) 2009 T. Mertelj <tomaz.mertelj@guest.arnes.si> | 4 | * Copyright (C) 2009 T. Mertelj <tomaz.mertelj@guest.arnes.si> |
5 | 5 | * | |
6 | Based on max6650.c: | 6 | * Based on max6650.c: |
7 | Copyright (C) 2007 Hans J. Koch <hjk@hansjkoch.de> | 7 | * Copyright (C) 2007 Hans J. Koch <hjk@hansjkoch.de> |
8 | 8 | * | |
9 | This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | it under the terms of the GNU General Public License as published by | 10 | * it under the terms of the GNU General Public License as published by |
11 | the Free Software Foundation; either version 2 of the License, or | 11 | * the Free Software Foundation; either version 2 of the License, or |
12 | (at your option) any later version. | 12 | * (at your option) any later version. |
13 | 13 | * | |
14 | This program is distributed in the hope that it will be useful, | 14 | * This program is distributed in the hope that it will be useful, |
15 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
17 | GNU General Public License for more details. | 17 | * GNU General Public License for more details. |
18 | 18 | * | |
19 | You should have received a copy of the GNU General Public License | 19 | * You should have received a copy of the GNU General Public License |
20 | along with this program; if not, write to the Free Software | 20 | * along with this program; if not, write to the Free Software |
21 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 21 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | 24 | ||
25 | #include <linux/kernel.h> /* Needed for KERN_INFO */ | 25 | #include <linux/kernel.h> /* Needed for KERN_INFO */ |
@@ -47,7 +47,7 @@ static const unsigned short normal_i2c[] = {0x18, 0x19, 0x1a, 0x2c, 0x2d, 0x2e, | |||
47 | * Insmod parameters | 47 | * Insmod parameters |
48 | */ | 48 | */ |
49 | 49 | ||
50 | static int pwminv = 0; /*Inverted PWM output. */ | 50 | static int pwminv; /*Inverted PWM output. */ |
51 | module_param(pwminv, int, S_IRUGO); | 51 | module_param(pwminv, int, S_IRUGO); |
52 | 52 | ||
53 | static int init = 1; /*Power-on initialization.*/ | 53 | static int init = 1; /*Power-on initialization.*/ |
@@ -188,7 +188,7 @@ static struct i2c_driver amc6821_driver = { | |||
188 | 188 | ||
189 | /* | 189 | /* |
190 | * Client data (each client gets its own) | 190 | * Client data (each client gets its own) |
191 | */ | 191 | */ |
192 | 192 | ||
193 | struct amc6821_data { | 193 | struct amc6821_data { |
194 | struct device *hwmon_dev; | 194 | struct device *hwmon_dev; |
@@ -836,8 +836,10 @@ static int amc6821_detect( | |||
836 | return -ENODEV; | 836 | return -ENODEV; |
837 | } | 837 | } |
838 | 838 | ||
839 | /* Bit 7 of the address register is ignored, so we can check the | 839 | /* |
840 | ID registers again */ | 840 | * Bit 7 of the address register is ignored, so we can check the |
841 | * ID registers again | ||
842 | */ | ||
841 | dev_id = i2c_smbus_read_byte_data(client, 0x80 | AMC6821_REG_DEV_ID); | 843 | dev_id = i2c_smbus_read_byte_data(client, 0x80 | AMC6821_REG_DEV_ID); |
842 | comp_id = i2c_smbus_read_byte_data(client, 0x80 | AMC6821_REG_COMP_ID); | 844 | comp_id = i2c_smbus_read_byte_data(client, 0x80 | AMC6821_REG_COMP_ID); |
843 | if (dev_id != 0x21 || comp_id != 0x49) { | 845 | if (dev_id != 0x21 || comp_id != 0x49) { |
@@ -1080,9 +1082,10 @@ static struct amc6821_data *amc6821_update_device(struct device *dev) | |||
1080 | data->pwm1_auto_channels_temp = 3; | 1082 | data->pwm1_auto_channels_temp = 3; |
1081 | data->pwm1_enable = 3; | 1083 | data->pwm1_enable = 3; |
1082 | break; | 1084 | break; |
1083 | case 1: /*semi-open loop: software sets rpm, chip controls pwm1, | 1085 | case 1: /* |
1084 | *currently not implemented | 1086 | * semi-open loop: software sets rpm, chip controls |
1085 | */ | 1087 | * pwm1, currently not implemented |
1088 | */ | ||
1086 | data->pwm1_auto_channels_temp = 0; | 1089 | data->pwm1_auto_channels_temp = 0; |
1087 | data->pwm1_enable = 0; | 1090 | data->pwm1_enable = 0; |
1088 | break; | 1091 | break; |
@@ -1095,20 +1098,7 @@ static struct amc6821_data *amc6821_update_device(struct device *dev) | |||
1095 | return data; | 1098 | return data; |
1096 | } | 1099 | } |
1097 | 1100 | ||
1098 | 1101 | module_i2c_driver(amc6821_driver); | |
1099 | static int __init amc6821_init(void) | ||
1100 | { | ||
1101 | return i2c_add_driver(&amc6821_driver); | ||
1102 | } | ||
1103 | |||
1104 | static void __exit amc6821_exit(void) | ||
1105 | { | ||
1106 | i2c_del_driver(&amc6821_driver); | ||
1107 | } | ||
1108 | |||
1109 | module_init(amc6821_init); | ||
1110 | module_exit(amc6821_exit); | ||
1111 | |||
1112 | 1102 | ||
1113 | MODULE_LICENSE("GPL"); | 1103 | MODULE_LICENSE("GPL"); |
1114 | MODULE_AUTHOR("T. Mertelj <tomaz.mertelj@guest.arnes.si>"); | 1104 | MODULE_AUTHOR("T. Mertelj <tomaz.mertelj@guest.arnes.si>"); |