tindex = 8;
 
                info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT |
-                       PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT;
+                       PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
+                       PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
 
-               /* Enable VOUT if not enabled (it is disabled by default) */
-               if (!(config & ADM1278_VOUT_EN)) {
-                       config |= ADM1278_VOUT_EN;
+               /* Enable VOUT & TEMP1 if not enabled (disabled by default) */
+               if ((config & (ADM1278_VOUT_EN | ADM1278_TEMP1_EN)) !=
+                   (ADM1278_VOUT_EN | ADM1278_TEMP1_EN)) {
+                       config |= ADM1278_VOUT_EN | ADM1278_TEMP1_EN;
                        ret = i2c_smbus_write_byte_data(client,
                                                        ADM1275_PMON_CONFIG,
                                                        config);
                                return -ENODEV;
                        }
                }
-
-               if (config & ADM1278_TEMP1_EN)
-                       info->func[0] |=
-                               PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP;
                if (config & ADM1278_VIN_EN)
                        info->func[0] |= PMBUS_HAVE_VIN;
                break;