Changeset 2070

Show
Ignore:
Timestamp:
11/18/03 03:31:40 (11 years ago)
Author:
mds
Message:

remove initialization of limits in driver

Location:
lm-sensors/trunk/kernel/chips
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/kernel/chips/mtp008.c

    r1705 r2070  
    193193#define PWM_TO_REG(val)         (val) 
    194194#define PWMENABLE_FROM_REG(nr, val)     (((val) >> ((nr) + 3)) & 1) 
    195  
    196 /* Initial limits */ 
    197 #define MTP008_INIT_IN_0        (vid)                           /* VCore 1 */ 
    198 #define MTP008_INIT_IN_1        330                             /* +3.3V */ 
    199 #define MTP008_INIT_IN_2        (1200 * 10 / 38)                /* +12V */ 
    200 #define MTP008_INIT_IN_3        (vid)                           /* VCore 2 */ 
    201 #define MTP008_INIT_IN_5        ((11861 + 7 * (-1200)) / 36)    /* -12V */ 
    202 #define MTP008_INIT_IN_6        150                             /* Vtt */ 
    203  
    204 #define MTP008_INIT_IN_PCT      10 
    205  
    206 #define MTP008_INIT_IN_MIN_0    (MTP008_INIT_IN_0 -                           \ 
    207                                  MTP008_INIT_IN_0 * MTP008_INIT_IN_PCT / 100) 
    208 #define MTP008_INIT_IN_MAX_0    (MTP008_INIT_IN_0 +                           \ 
    209                                  MTP008_INIT_IN_0 * MTP008_INIT_IN_PCT / 100) 
    210 #define MTP008_INIT_IN_MIN_1    (MTP008_INIT_IN_1 -                           \ 
    211                                  MTP008_INIT_IN_1 * MTP008_INIT_IN_PCT / 100) 
    212 #define MTP008_INIT_IN_MAX_1    (MTP008_INIT_IN_1 +                           \ 
    213                                  MTP008_INIT_IN_1 * MTP008_INIT_IN_PCT / 100) 
    214 #define MTP008_INIT_IN_MIN_2    (MTP008_INIT_IN_2 -                           \ 
    215                                  MTP008_INIT_IN_2 * MTP008_INIT_IN_PCT / 100) 
    216 #define MTP008_INIT_IN_MAX_2    (MTP008_INIT_IN_2 +                           \ 
    217                                  MTP008_INIT_IN_2 * MTP008_INIT_IN_PCT / 100) 
    218 #define MTP008_INIT_IN_MIN_3    (MTP008_INIT_IN_3 -                           \ 
    219                                  MTP008_INIT_IN_3 * MTP008_INIT_IN_PCT / 100) 
    220 #define MTP008_INIT_IN_MAX_3    (MTP008_INIT_IN_3 +                           \ 
    221                                  MTP008_INIT_IN_3 * MTP008_INIT_IN_PCT / 100) 
    222  
    223 #define MTP008_INIT_IN_MIN_5    (MTP008_INIT_IN_5 -                           \ 
    224                                  MTP008_INIT_IN_5 * MTP008_INIT_IN_PCT / 100) 
    225 #define MTP008_INIT_IN_MAX_5    (MTP008_INIT_IN_5 +                           \ 
    226                                  MTP008_INIT_IN_5 * MTP008_INIT_IN_PCT / 100) 
    227 #define MTP008_INIT_IN_MIN_6    (MTP008_INIT_IN_6 -                           \ 
    228                                  MTP008_INIT_IN_6 * MTP008_INIT_IN_PCT / 100) 
    229 #define MTP008_INIT_IN_MAX_6    (MTP008_INIT_IN_6 +                           \ 
    230                                  MTP008_INIT_IN_6 * MTP008_INIT_IN_PCT / 100) 
    231  
    232 #define MTP008_INIT_FAN_MIN_1   3000 
    233 #define MTP008_INIT_FAN_MIN_2   3000 
    234 #define MTP008_INIT_FAN_MIN_3   3000 
    235  
    236 #define MTP008_INIT_TEMP_OVER   700                     /* 70 Celsius */ 
    237 #define MTP008_INIT_TEMP_HYST   500                     /* 50 Celsius */ 
    238 #define MTP008_INIT_TEMP2_OVER  700                     /* 70 Celsius */ 
    239 #define MTP008_INIT_TEMP2_HYST  500                     /* 50 Celsius */ 
    240195 
    241196/* 
     
    552507static void mtp008_init_client(struct i2c_client *client) 
    553508{ 
    554         int vid; 
    555509        u8 save1, save2; 
    556510        struct mtp008_data *data; 
     
    571525        mtp008_getsensortype(data, save2); 
    572526 
    573         /* 
    574          * Retrieve the VID setting (needed for the default limits). 
    575          */ 
    576         vid = mtp008_read_value(client, MTP008_REG_VID_FANDIV) & 0x0f; 
    577         vid |= (mtp008_read_value(client, MTP008_REG_RESET_VID4) & 0x01) << 4; 
    578         vid = VID_FROM_REG(vid); 
    579  
    580         /* 
    581          * Set the default limits. 
    582          * 
    583          * Setting temp sensors is done as follows: 
    584          * 
    585          *          Register 0x57: 0 0 0 0 x x x x 
    586          *                                 | \ / +-- AIN5/VT3 
    587          *                                 |  +----- AIN4/VT2/PII 
    588          *                                 +-------- VT1/PII 
    589          */ 
    590  
    591         mtp008_write_value(client, MTP008_REG_IN_MAX(0), 
    592                            IN_TO_REG(MTP008_INIT_IN_MAX_0)); 
    593         mtp008_write_value(client, MTP008_REG_IN_MIN(0), 
    594                            IN_TO_REG(MTP008_INIT_IN_MIN_0)); 
    595         mtp008_write_value(client, MTP008_REG_IN_MAX(1), 
    596                            IN_TO_REG(MTP008_INIT_IN_MAX_1)); 
    597         mtp008_write_value(client, MTP008_REG_IN_MIN(1), 
    598                            IN_TO_REG(MTP008_INIT_IN_MIN_1)); 
    599         mtp008_write_value(client, MTP008_REG_IN_MAX(2), 
    600                            IN_TO_REG(MTP008_INIT_IN_MAX_2)); 
    601         mtp008_write_value(client, MTP008_REG_IN_MIN(2), 
    602                            IN_TO_REG(MTP008_INIT_IN_MIN_2)); 
    603         mtp008_write_value(client, MTP008_REG_IN_MAX(3), 
    604                            IN_TO_REG(MTP008_INIT_IN_MAX_3)); 
    605         mtp008_write_value(client, MTP008_REG_IN_MIN(3), 
    606                            IN_TO_REG(MTP008_INIT_IN_MIN_3)); 
    607  
    608         mtp008_write_value(client, MTP008_REG_IN_MAX(5), 
    609                            IN_TO_REG(MTP008_INIT_IN_MAX_5)); 
    610         mtp008_write_value(client, MTP008_REG_IN_MIN(5), 
    611                            IN_TO_REG(MTP008_INIT_IN_MIN_5)); 
    612         mtp008_write_value(client, MTP008_REG_IN_MAX(6), 
    613                            IN_TO_REG(MTP008_INIT_IN_MAX_6)); 
    614         mtp008_write_value(client, MTP008_REG_IN_MIN(6), 
    615                            IN_TO_REG(MTP008_INIT_IN_MIN_6)); 
    616  
    617         mtp008_write_value(client, MTP008_REG_TEMP_MAX, 
    618                            TEMP_TO_REG(MTP008_INIT_TEMP_OVER)); 
    619         mtp008_write_value(client, MTP008_REG_TEMP_MIN, 
    620                            TEMP_TO_REG(MTP008_INIT_TEMP_HYST)); 
    621         mtp008_write_value(client, MTP008_REG_IN_MAX(4), 
    622                            TEMP_TO_REG(MTP008_INIT_TEMP2_OVER)); 
    623         mtp008_write_value(client, MTP008_REG_IN_MIN(4), 
    624                            TEMP_TO_REG(MTP008_INIT_TEMP2_HYST)); 
    625  
    626         mtp008_write_value(client, MTP008_REG_FAN_MIN(1), 
    627                            FAN_TO_REG(MTP008_INIT_FAN_MIN_1, 2)); 
    628         mtp008_write_value(client, MTP008_REG_FAN_MIN(2), 
    629                            FAN_TO_REG(MTP008_INIT_FAN_MIN_2, 2)); 
    630         mtp008_write_value(client, MTP008_REG_FAN_MIN(3), 
    631                            FAN_TO_REG(MTP008_INIT_FAN_MIN_3, 2)); 
    632527 
    633528        /* 
  • lm-sensors/trunk/kernel/chips/sis5595.c

    r1802 r2070  
    169169#define DIV_FROM_REG(val) (1 << (val)) 
    170170#define DIV_TO_REG(val) ((val)==8?3:(val)==4?2:(val)==1?0:1) 
    171  
    172 /* Initial limits. To keep them sane, we use the 'standard' translation as 
    173    specified in the SIS5595 sheet. Use the config file to set better limits. */ 
    174 #define SIS5595_INIT_IN_0 (((1200)  * 10)/38) 
    175 #define SIS5595_INIT_IN_1 (((500)   * 100)/168) 
    176 #define SIS5595_INIT_IN_2 330 
    177 #define SIS5595_INIT_IN_3 250 
    178 #define SIS5595_INIT_IN_4 250 
    179  
    180 #define SIS5595_INIT_IN_PERCENTAGE 10 
    181  
    182 #define SIS5595_INIT_IN_MIN_0 \ 
    183         (SIS5595_INIT_IN_0 - SIS5595_INIT_IN_0 * SIS5595_INIT_IN_PERCENTAGE / 100) 
    184 #define SIS5595_INIT_IN_MAX_0 \ 
    185         (SIS5595_INIT_IN_0 + SIS5595_INIT_IN_0 * SIS5595_INIT_IN_PERCENTAGE / 100) 
    186 #define SIS5595_INIT_IN_MIN_1 \ 
    187         (SIS5595_INIT_IN_1 - SIS5595_INIT_IN_1 * SIS5595_INIT_IN_PERCENTAGE / 100) 
    188 #define SIS5595_INIT_IN_MAX_1 \ 
    189         (SIS5595_INIT_IN_1 + SIS5595_INIT_IN_1 * SIS5595_INIT_IN_PERCENTAGE / 100) 
    190 #define SIS5595_INIT_IN_MIN_2 \ 
    191         (SIS5595_INIT_IN_2 - SIS5595_INIT_IN_2 * SIS5595_INIT_IN_PERCENTAGE / 100) 
    192 #define SIS5595_INIT_IN_MAX_2 \ 
    193         (SIS5595_INIT_IN_2 + SIS5595_INIT_IN_2 * SIS5595_INIT_IN_PERCENTAGE / 100) 
    194 #define SIS5595_INIT_IN_MIN_3 \ 
    195         (SIS5595_INIT_IN_3 - SIS5595_INIT_IN_3 * SIS5595_INIT_IN_PERCENTAGE / 100) 
    196 #define SIS5595_INIT_IN_MAX_3 \ 
    197         (SIS5595_INIT_IN_3 + SIS5595_INIT_IN_3 * SIS5595_INIT_IN_PERCENTAGE / 100) 
    198 #define SIS5595_INIT_IN_MIN_4 \ 
    199         (SIS5595_INIT_IN_4 - SIS5595_INIT_IN_4 * SIS5595_INIT_IN_PERCENTAGE / 100) 
    200 #define SIS5595_INIT_IN_MAX_4 \ 
    201         (SIS5595_INIT_IN_4 + SIS5595_INIT_IN_4 * SIS5595_INIT_IN_PERCENTAGE / 100) 
    202  
    203 #define SIS5595_INIT_FAN_MIN_1 3000 
    204 #define SIS5595_INIT_FAN_MIN_2 3000 
    205  
    206 #define SIS5595_INIT_TEMP_OVER 600 
    207 #define SIS5595_INIT_TEMP_HYST 100 
    208171 
    209172/* For the SIS5595, we need to keep some data in memory. That 
     
    543506        sis5595_write_value(client, SIS5595_REG_CONFIG, 0x80); 
    544507 
    545         sis5595_write_value(client, SIS5595_REG_IN_MIN(0), 
    546                             IN_TO_REG(SIS5595_INIT_IN_MIN_0)); 
    547         sis5595_write_value(client, SIS5595_REG_IN_MAX(0), 
    548                             IN_TO_REG(SIS5595_INIT_IN_MAX_0)); 
    549         sis5595_write_value(client, SIS5595_REG_IN_MIN(1), 
    550                             IN_TO_REG(SIS5595_INIT_IN_MIN_1)); 
    551         sis5595_write_value(client, SIS5595_REG_IN_MAX(1), 
    552                             IN_TO_REG(SIS5595_INIT_IN_MAX_1)); 
    553         sis5595_write_value(client, SIS5595_REG_IN_MIN(2), 
    554                             IN_TO_REG(SIS5595_INIT_IN_MIN_2)); 
    555         sis5595_write_value(client, SIS5595_REG_IN_MAX(2), 
    556                             IN_TO_REG(SIS5595_INIT_IN_MAX_2)); 
    557         sis5595_write_value(client, SIS5595_REG_IN_MIN(3), 
    558                             IN_TO_REG(SIS5595_INIT_IN_MIN_3)); 
    559         sis5595_write_value(client, SIS5595_REG_IN_MAX(3), 
    560                             IN_TO_REG(SIS5595_INIT_IN_MAX_3)); 
    561         sis5595_write_value(client, SIS5595_REG_FAN_MIN(1), 
    562                             FAN_TO_REG(SIS5595_INIT_FAN_MIN_1, 2)); 
    563         sis5595_write_value(client, SIS5595_REG_FAN_MIN(2), 
    564                             FAN_TO_REG(SIS5595_INIT_FAN_MIN_2, 2)); 
    565         if(data->maxins == 4) { 
    566                 sis5595_write_value(client, SIS5595_REG_IN_MIN(4), 
    567                                     IN_TO_REG(SIS5595_INIT_IN_MIN_4)); 
    568                 sis5595_write_value(client, SIS5595_REG_IN_MAX(4), 
    569                                     IN_TO_REG(SIS5595_INIT_IN_MAX_4)); 
    570         } else { 
    571                 sis5595_write_value(client, SIS5595_REG_TEMP_OVER, 
    572                                     TEMP_TO_REG(SIS5595_INIT_TEMP_OVER)); 
    573                 sis5595_write_value(client, SIS5595_REG_TEMP_HYST, 
    574                                     TEMP_TO_REG(SIS5595_INIT_TEMP_HYST)); 
    575         } 
    576  
    577508        /* Start monitoring */ 
    578509        sis5595_write_value(client, SIS5595_REG_CONFIG, 
  • lm-sensors/trunk/kernel/chips/smsc47m1.c

    r1993 r2070  
    123123#define PWM_FROM_REG(val) ((((val) & 0x7f) * 1005) / 640) 
    124124#define PWM_TO_REG(val) SENSORS_LIMIT((((val) * 645) / 1000), 0, 63) 
    125  
    126 #define SMSC47M1_INIT_FAN_MIN_1 3000 
    127 #define SMSC47M1_INIT_FAN_MIN_2 3000 
    128125 
    129126struct smsc47m1_data { 
     
    347344        smsc47m1_write_value(client, SMSC47M1_REG_TPIN1, 0x05); 
    348345        smsc47m1_write_value(client, SMSC47M1_REG_TPIN2, 0x05); 
    349         smsc47m1_write_value(client, SMSC47M1_REG_FAN_MIN(1), 
    350                             MIN_TO_REG(SMSC47M1_INIT_FAN_MIN_1, 2)); 
    351         smsc47m1_write_value(client, SMSC47M1_REG_FAN_MIN(2), 
    352                             MIN_TO_REG(SMSC47M1_INIT_FAN_MIN_2, 2)); 
    353346} 
    354347 
  • lm-sensors/trunk/kernel/chips/thmc50.c

    r1802 r2070  
    7171#define TEMP_FROM_REG(val) ((val>127)?val - 0x0100:val) 
    7272#define TEMP_TO_REG(val)   ((val<0)?0x0100+val:val) 
    73  
    74 /* Initial values */ 
    75 #define THMC50_INIT_TEMP_OS 60 
    76 #define THMC50_INIT_TEMP_HYST 50 
    7773 
    7874/* Each client has this additional data */ 
     
    309305static void thmc50_init_client(struct i2c_client *client) 
    310306{ 
    311         /* Initialize the THMC50 chip */ 
    312         thmc50_write_value(client, THMC50_REG_TEMP_OS, 
    313                            TEMP_TO_REG(THMC50_INIT_TEMP_OS)); 
    314         thmc50_write_value(client, THMC50_REG_TEMP_HYST, 
    315                            TEMP_TO_REG(THMC50_INIT_TEMP_HYST)); 
    316307        thmc50_write_value(client, THMC50_REG_CONF, 1); 
    317308} 
  • lm-sensors/trunk/kernel/chips/via686a.c

    r1832 r2070  
    331331#define DIV_TO_REG(val) ((val)==8?3:(val)==4?2:(val)==1?0:1) 
    332332 
    333 /* Initial limits */ 
    334 #define VIA686A_INIT_IN_0 200 
    335 #define VIA686A_INIT_IN_1 250 
    336 #define VIA686A_INIT_IN_2 330 
    337 #define VIA686A_INIT_IN_3 500 
    338 #define VIA686A_INIT_IN_4 1200 
    339  
    340 #define VIA686A_INIT_IN_PERCENTAGE 10 
    341  
    342 #define VIA686A_INIT_IN_MIN_0 (VIA686A_INIT_IN_0 - VIA686A_INIT_IN_0 \ 
    343         * VIA686A_INIT_IN_PERCENTAGE / 100) 
    344 #define VIA686A_INIT_IN_MAX_0 (VIA686A_INIT_IN_0 + VIA686A_INIT_IN_0 \ 
    345         * VIA686A_INIT_IN_PERCENTAGE / 100) 
    346 #define VIA686A_INIT_IN_MIN_1 (VIA686A_INIT_IN_1 - VIA686A_INIT_IN_1 \ 
    347         * VIA686A_INIT_IN_PERCENTAGE / 100) 
    348 #define VIA686A_INIT_IN_MAX_1 (VIA686A_INIT_IN_1 + VIA686A_INIT_IN_1 \ 
    349         * VIA686A_INIT_IN_PERCENTAGE / 100) 
    350 #define VIA686A_INIT_IN_MIN_2 (VIA686A_INIT_IN_2 - VIA686A_INIT_IN_2 \ 
    351         * VIA686A_INIT_IN_PERCENTAGE / 100) 
    352 #define VIA686A_INIT_IN_MAX_2 (VIA686A_INIT_IN_2 + VIA686A_INIT_IN_2 \ 
    353         * VIA686A_INIT_IN_PERCENTAGE / 100) 
    354 #define VIA686A_INIT_IN_MIN_3 (VIA686A_INIT_IN_3 - VIA686A_INIT_IN_3 \ 
    355         * VIA686A_INIT_IN_PERCENTAGE / 100) 
    356 #define VIA686A_INIT_IN_MAX_3 (VIA686A_INIT_IN_3 + VIA686A_INIT_IN_3 \ 
    357         * VIA686A_INIT_IN_PERCENTAGE / 100) 
    358 #define VIA686A_INIT_IN_MIN_4 (VIA686A_INIT_IN_4 - VIA686A_INIT_IN_4 \ 
    359         * VIA686A_INIT_IN_PERCENTAGE / 100) 
    360 #define VIA686A_INIT_IN_MAX_4 (VIA686A_INIT_IN_4 + VIA686A_INIT_IN_4 \ 
    361         * VIA686A_INIT_IN_PERCENTAGE / 100) 
    362  
    363 #define VIA686A_INIT_FAN_MIN    3000 
    364  
    365 #define VIA686A_INIT_TEMP_OVER 600 
    366 #define VIA686A_INIT_TEMP_HYST 500 
    367  
    368333/* For the VIA686A, we need to keep some data in memory. That 
    369334   data is pointed to by via686a_list[NR]->data. The structure itself is 
     
    638603        udelay(50); 
    639604 
    640         via686a_write_value(client, VIA686A_REG_IN_MIN(0), 
    641                             IN_TO_REG(VIA686A_INIT_IN_MIN_0, 0)); 
    642         via686a_write_value(client, VIA686A_REG_IN_MAX(0), 
    643                             IN_TO_REG(VIA686A_INIT_IN_MAX_0, 0)); 
    644         via686a_write_value(client, VIA686A_REG_IN_MIN(1), 
    645                             IN_TO_REG(VIA686A_INIT_IN_MIN_1, 1)); 
    646         via686a_write_value(client, VIA686A_REG_IN_MAX(1), 
    647                             IN_TO_REG(VIA686A_INIT_IN_MAX_1, 1)); 
    648         via686a_write_value(client, VIA686A_REG_IN_MIN(2), 
    649                             IN_TO_REG(VIA686A_INIT_IN_MIN_2, 2)); 
    650         via686a_write_value(client, VIA686A_REG_IN_MAX(2), 
    651                             IN_TO_REG(VIA686A_INIT_IN_MAX_2, 2)); 
    652         via686a_write_value(client, VIA686A_REG_IN_MIN(3), 
    653                             IN_TO_REG(VIA686A_INIT_IN_MIN_3, 3)); 
    654         via686a_write_value(client, VIA686A_REG_IN_MAX(3), 
    655                             IN_TO_REG(VIA686A_INIT_IN_MAX_3, 3)); 
    656         via686a_write_value(client, VIA686A_REG_IN_MIN(4), 
    657                             IN_TO_REG(VIA686A_INIT_IN_MIN_4, 4)); 
    658         via686a_write_value(client, VIA686A_REG_IN_MAX(4), 
    659                             IN_TO_REG(VIA686A_INIT_IN_MAX_4, 4)); 
    660         via686a_write_value(client, VIA686A_REG_FAN_MIN(1), 
    661                             FAN_TO_REG(VIA686A_INIT_FAN_MIN, 2)); 
    662         via686a_write_value(client, VIA686A_REG_FAN_MIN(2), 
    663                             FAN_TO_REG(VIA686A_INIT_FAN_MIN, 2)); 
    664         for (i = 1; i <= 3; i++) { 
    665                 via686a_write_value(client, VIA686A_REG_TEMP_OVER(i), 
    666                                     TEMP_TO_REG(VIA686A_INIT_TEMP_OVER)); 
    667                 via686a_write_value(client, VIA686A_REG_TEMP_HYST(i), 
    668                                     TEMP_TO_REG(VIA686A_INIT_TEMP_HYST)); 
    669         } 
    670  
    671605        /* Start monitoring */ 
    672606        via686a_write_value(client, VIA686A_REG_CONFIG, 0x01); 
  • lm-sensors/trunk/kernel/chips/w83627hf.c

    r1985 r2070  
    245245        return ((u8) i); 
    246246} 
    247  
    248 /* Initial limits */ 
    249 #define W83781D_INIT_IN_0 (vid==3500?280:vid/10) 
    250 #define W83781D_INIT_IN_1 (vid==3500?280:vid/10) 
    251 #define W83781D_INIT_IN_2 330 
    252 #define W83781D_INIT_IN_3 (((500)   * 100)/168) 
    253 #define W83781D_INIT_IN_4 (((1200)  * 10)/38) 
    254 #define W83781D_INIT_IN_5 (((-1200) * -604)/2100) 
    255 #define W83781D_INIT_IN_6 (((-500)  * -604)/909) 
    256 #define W83781D_INIT_IN_7 (((500)   * 100)/168) 
    257 #define W83781D_INIT_IN_8 300 
    258 /* Initial limits for 782d/783s negative voltages */ 
    259 /* Note level shift. Change min/max below if you change these. */ 
    260 #define W83782D_INIT_IN_5 ((((-1200) + 1491) * 100)/514) 
    261 #define W83782D_INIT_IN_6 ((( (-500)  + 771) * 100)/314) 
    262  
    263 #define W83781D_INIT_IN_PERCENTAGE 10 
    264  
    265 #define W83781D_INIT_IN_MIN_0 \ 
    266         (W83781D_INIT_IN_0 - W83781D_INIT_IN_0 * W83781D_INIT_IN_PERCENTAGE \ 
    267          / 100) 
    268 #define W83781D_INIT_IN_MAX_0 \ 
    269         (W83781D_INIT_IN_0 + W83781D_INIT_IN_0 * W83781D_INIT_IN_PERCENTAGE \ 
    270          / 100) 
    271 #define W83781D_INIT_IN_MIN_1 \ 
    272         (W83781D_INIT_IN_1 - W83781D_INIT_IN_1 * W83781D_INIT_IN_PERCENTAGE \ 
    273          / 100) 
    274 #define W83781D_INIT_IN_MAX_1 \ 
    275         (W83781D_INIT_IN_1 + W83781D_INIT_IN_1 * W83781D_INIT_IN_PERCENTAGE \ 
    276          / 100) 
    277 #define W83781D_INIT_IN_MIN_2 \ 
    278         (W83781D_INIT_IN_2 - W83781D_INIT_IN_2 * W83781D_INIT_IN_PERCENTAGE \ 
    279          / 100) 
    280 #define W83781D_INIT_IN_MAX_2 \ 
    281         (W83781D_INIT_IN_2 + W83781D_INIT_IN_2 * W83781D_INIT_IN_PERCENTAGE \ 
    282          / 100) 
    283 #define W83781D_INIT_IN_MIN_3 \ 
    284         (W83781D_INIT_IN_3 - W83781D_INIT_IN_3 * W83781D_INIT_IN_PERCENTAGE \ 
    285          / 100) 
    286 #define W83781D_INIT_IN_MAX_3 \ 
    287         (W83781D_INIT_IN_3 + W83781D_INIT_IN_3 * W83781D_INIT_IN_PERCENTAGE \ 
    288          / 100) 
    289 #define W83781D_INIT_IN_MIN_4 \ 
    290         (W83781D_INIT_IN_4 - W83781D_INIT_IN_4 * W83781D_INIT_IN_PERCENTAGE \ 
    291          / 100) 
    292 #define W83781D_INIT_IN_MAX_4 \ 
    293         (W83781D_INIT_IN_4 + W83781D_INIT_IN_4 * W83781D_INIT_IN_PERCENTAGE \ 
    294          / 100) 
    295 #define W83781D_INIT_IN_MIN_5 \ 
    296         (W83781D_INIT_IN_5 - W83781D_INIT_IN_5 * W83781D_INIT_IN_PERCENTAGE \ 
    297          / 100) 
    298 #define W83781D_INIT_IN_MAX_5 \ 
    299         (W83781D_INIT_IN_5 + W83781D_INIT_IN_5 * W83781D_INIT_IN_PERCENTAGE \ 
    300          / 100) 
    301 #define W83781D_INIT_IN_MIN_6 \ 
    302         (W83781D_INIT_IN_6 - W83781D_INIT_IN_6 * W83781D_INIT_IN_PERCENTAGE \ 
    303          / 100) 
    304 #define W83781D_INIT_IN_MAX_6 \ 
    305         (W83781D_INIT_IN_6 + W83781D_INIT_IN_6 * W83781D_INIT_IN_PERCENTAGE \ 
    306          / 100) 
    307 #define W83781D_INIT_IN_MIN_7 \ 
    308         (W83781D_INIT_IN_7 - W83781D_INIT_IN_7 * W83781D_INIT_IN_PERCENTAGE \ 
    309          / 100) 
    310 #define W83781D_INIT_IN_MAX_7 \ 
    311         (W83781D_INIT_IN_7 + W83781D_INIT_IN_7 * W83781D_INIT_IN_PERCENTAGE \ 
    312          / 100) 
    313 #define W83781D_INIT_IN_MIN_8 \ 
    314         (W83781D_INIT_IN_8 - W83781D_INIT_IN_8 * W83781D_INIT_IN_PERCENTAGE \ 
    315          / 100) 
    316 #define W83781D_INIT_IN_MAX_8 \ 
    317         (W83781D_INIT_IN_8 + W83781D_INIT_IN_8 * W83781D_INIT_IN_PERCENTAGE \ 
    318          / 100) 
    319 /* Initial limits for 782d/783s negative voltages */ 
    320 /* These aren't direct multiples because of level shift */ 
    321 /* Beware going negative - check */ 
    322 #define W83782D_INIT_IN_MIN_5_TMP \ 
    323         (((-1200 * (100 + W83781D_INIT_IN_PERCENTAGE)) + (1491 * 100))/514) 
    324 #define W83782D_INIT_IN_MIN_5 \ 
    325         ((W83782D_INIT_IN_MIN_5_TMP > 0) ? W83782D_INIT_IN_MIN_5_TMP : 0) 
    326 #define W83782D_INIT_IN_MAX_5 \ 
    327         (((-1200 * (100 - W83781D_INIT_IN_PERCENTAGE)) + (1491 * 100))/514) 
    328 #define W83782D_INIT_IN_MIN_6_TMP \ 
    329         ((( -500 * (100 + W83781D_INIT_IN_PERCENTAGE)) +  (771 * 100))/314) 
    330 #define W83782D_INIT_IN_MIN_6 \ 
    331         ((W83782D_INIT_IN_MIN_6_TMP > 0) ? W83782D_INIT_IN_MIN_6_TMP : 0) 
    332 #define W83782D_INIT_IN_MAX_6 \ 
    333         ((( -500 * (100 - W83781D_INIT_IN_PERCENTAGE)) +  (771 * 100))/314) 
    334  
    335 #define W83781D_INIT_FAN_MIN_1 3000 
    336 #define W83781D_INIT_FAN_MIN_2 3000 
    337 #define W83781D_INIT_FAN_MIN_3 3000 
    338  
    339 #define W83781D_INIT_TEMP_OVER 600 
    340 #define W83781D_INIT_TEMP_HYST 1270     /* must be 127 for ALARM to work */ 
    341 #define W83781D_INIT_TEMP2_OVER 600 
    342 #define W83781D_INIT_TEMP2_HYST 500 
    343 #define W83781D_INIT_TEMP3_OVER 600 
    344 #define W83781D_INIT_TEMP3_HYST 500 
    345247 
    346248/* There are some complications in a module like this. First off, W83781D chips 
     
    969871 
    970872        if(init) { 
    971                 w83627hf_write_value(client, W83781D_REG_IN_MIN(0), 
    972                                     IN_TO_REG(W83781D_INIT_IN_MIN_0)); 
    973                 w83627hf_write_value(client, W83781D_REG_IN_MAX(0), 
    974                                     IN_TO_REG(W83781D_INIT_IN_MAX_0)); 
    975873                if (type != w83697hf) { 
    976                         w83627hf_write_value(client, W83781D_REG_IN_MIN(1), 
    977                                             IN_TO_REG(W83781D_INIT_IN_MIN_1)); 
    978                         w83627hf_write_value(client, W83781D_REG_IN_MAX(1), 
    979                                             IN_TO_REG(W83781D_INIT_IN_MAX_1)); 
    980                 } 
    981  
    982                 w83627hf_write_value(client, W83781D_REG_IN_MIN(2), 
    983                                     IN_TO_REG(W83781D_INIT_IN_MIN_2)); 
    984                 w83627hf_write_value(client, W83781D_REG_IN_MAX(2), 
    985                                     IN_TO_REG(W83781D_INIT_IN_MAX_2)); 
    986                 w83627hf_write_value(client, W83781D_REG_IN_MIN(3), 
    987                                     IN_TO_REG(W83781D_INIT_IN_MIN_3)); 
    988                 w83627hf_write_value(client, W83781D_REG_IN_MAX(3), 
    989                                     IN_TO_REG(W83781D_INIT_IN_MAX_3)); 
    990                 w83627hf_write_value(client, W83781D_REG_IN_MIN(4), 
    991                                     IN_TO_REG(W83781D_INIT_IN_MIN_4)); 
    992                 w83627hf_write_value(client, W83781D_REG_IN_MAX(4), 
    993                                     IN_TO_REG(W83781D_INIT_IN_MAX_4)); 
    994                 if (type != w83627thf) { 
    995                         w83627hf_write_value(client, W83781D_REG_IN_MIN(5), 
    996                                             IN_TO_REG(W83782D_INIT_IN_MIN_5)); 
    997                         w83627hf_write_value(client, W83781D_REG_IN_MAX(5), 
    998                                             IN_TO_REG(W83782D_INIT_IN_MAX_5)); 
    999                         w83627hf_write_value(client, W83781D_REG_IN_MIN(6), 
    1000                                             IN_TO_REG(W83782D_INIT_IN_MIN_6)); 
    1001                         w83627hf_write_value(client, W83781D_REG_IN_MAX(6), 
    1002                                             IN_TO_REG(W83782D_INIT_IN_MAX_6)); 
    1003                 } 
    1004                 w83627hf_write_value(client, W83781D_REG_IN_MIN(7), 
    1005                                     IN_TO_REG(W83781D_INIT_IN_MIN_7)); 
    1006                 w83627hf_write_value(client, W83781D_REG_IN_MAX(7), 
    1007                                     IN_TO_REG(W83781D_INIT_IN_MAX_7)); 
    1008                 w83627hf_write_value(client, W83781D_REG_IN_MIN(8), 
    1009                                     IN_TO_REG(W83781D_INIT_IN_MIN_8)); 
    1010                 w83627hf_write_value(client, W83781D_REG_IN_MAX(8), 
    1011                                     IN_TO_REG(W83781D_INIT_IN_MAX_8)); 
    1012                 w83627hf_write_value(client, W83781D_REG_VBAT, 
    1013                     (w83627hf_read_value(client, W83781D_REG_VBAT) | 0x01)); 
    1014                 w83627hf_write_value(client, W83781D_REG_FAN_MIN(1), 
    1015                                     FAN_TO_REG(W83781D_INIT_FAN_MIN_1, 2)); 
    1016                 w83627hf_write_value(client, W83781D_REG_FAN_MIN(2), 
    1017                                     FAN_TO_REG(W83781D_INIT_FAN_MIN_2, 2)); 
    1018                 if (type != w83697hf) { 
    1019                         w83627hf_write_value(client, W83781D_REG_FAN_MIN(3), 
    1020                                     FAN_TO_REG(W83781D_INIT_FAN_MIN_3, 2)); 
    1021                 } 
    1022  
    1023                 w83627hf_write_value(client, W83781D_REG_TEMP_OVER, 
    1024                                     TEMP_TO_REG(W83781D_INIT_TEMP_OVER)); 
    1025                 w83627hf_write_value(client, W83781D_REG_TEMP_HYST, 
    1026                                     TEMP_TO_REG(W83781D_INIT_TEMP_HYST)); 
    1027  
    1028                 w83627hf_write_value(client, W83781D_REG_TEMP2_OVER, 
    1029                                     TEMP_ADD_TO_REG 
    1030                                     (W83781D_INIT_TEMP2_OVER)); 
    1031                 w83627hf_write_value(client, W83781D_REG_TEMP2_HYST, 
    1032                                     TEMP_ADD_TO_REG 
    1033                                     (W83781D_INIT_TEMP2_HYST)); 
    1034                 w83627hf_write_value(client, W83781D_REG_TEMP2_CONFIG, 0x00); 
    1035  
    1036                 if (type != w83697hf) { 
    1037                         w83627hf_write_value(client, W83781D_REG_TEMP3_OVER, 
    1038                                             TEMP_ADD_TO_REG 
    1039                                             (W83781D_INIT_TEMP3_OVER)); 
    1040                         w83627hf_write_value(client, W83781D_REG_TEMP3_HYST, 
    1041                                             TEMP_ADD_TO_REG 
    1042                                             (W83781D_INIT_TEMP3_HYST)); 
    1043                         w83627hf_write_value(client, W83781D_REG_TEMP3_CONFIG, 
    1044                                             0x00); 
    1045874                        /* enable PWM2 control (can't hurt since PWM reg 
    1046875                           should have been reset to 0xff) */