hwmon: (pmbus/ibm-cffps) Fix the LED behavior when turned off
authorEddie James <eajames@linux.ibm.com>
Thu, 19 Dec 2019 20:50:07 +0000 (14:50 -0600)
committerGuenter Roeck <linux@roeck-us.net>
Thu, 23 Jan 2020 21:15:10 +0000 (13:15 -0800)
The driver should remain in control of the LED on the PSU, even while
off, not the PSU firmware as previously indicated.

Signed-off-by: Eddie James <eajames@linux.ibm.com>
Link: https://lore.kernel.org/r/1576788607-13567-4-git-send-email-eajames@linux.ibm.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/pmbus/ibm-cffps.c

index b37faf1..1c91ee1 100644 (file)
 #define CFFPS_MFR_VAUX_FAULT                   BIT(6)
 #define CFFPS_MFR_CURRENT_SHARE_WARNING                BIT(7)
 
-/*
- * LED off state actually relinquishes LED control to PSU firmware, so it can
- * turn on the LED for faults.
- */
-#define CFFPS_LED_OFF                          0
 #define CFFPS_LED_BLINK                                BIT(0)
 #define CFFPS_LED_ON                           BIT(1)
+#define CFFPS_LED_OFF                          BIT(2)
 #define CFFPS_BLINK_RATE_MS                    250
 
 enum {
@@ -436,6 +432,9 @@ static void ibm_cffps_create_led_class(struct ibm_cffps *psu)
        rc = devm_led_classdev_register(dev, &psu->led);
        if (rc)
                dev_warn(dev, "failed to register led class: %d\n", rc);
+       else
+               i2c_smbus_write_byte_data(client, CFFPS_SYS_CONFIG_CMD,
+                                         CFFPS_LED_OFF);
 }
 
 static struct pmbus_driver_info ibm_cffps_info[] = {