mfd: max8907c: Natively register pm_power_off
Dan Willemsen [Thu, 1 Dec 2011 23:18:24 +0000 (15:18 -0800)]
Instead of forcing the board files to register this themselves, just add
a bool to the platform data to let the board files opt into this.

Change-Id: I4993275f31b0539c62249830d6a1180fb2719df8
Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>
Reviewed-on: http://git-master/r/83600
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>

drivers/mfd/max8907c.c
include/linux/mfd/max8907c.h

index f87524e..2c57742 100644 (file)
@@ -152,12 +152,12 @@ int max8907c_set_bits(struct i2c_client *i2c, u8 reg, u8 mask, u8 val)
 EXPORT_SYMBOL_GPL(max8907c_set_bits);
 
 static struct i2c_client *max8907c_client = NULL;
-int max8907c_power_off(void)
+static void max8907c_power_off(void)
 {
        if (!max8907c_client)
-               return -EINVAL;
+               return;
 
-       return max8907c_set_bits(max8907c_client, MAX8907C_REG_RESET_CNFG,
+       max8907c_set_bits(max8907c_client, MAX8907C_REG_RESET_CNFG,
                                                MAX8907C_MASK_POWER_OFF, 0x40);
 }
 
index 76dbdcc..48014b0 100644 (file)
@@ -240,6 +240,7 @@ struct max8907c_platform_data {
        struct platform_device **subdevs;
        int irq_base;
        int (*max8907c_setup)(void);
+       bool use_power_off;
 };
 
 int max8907c_reg_read(struct i2c_client *i2c, u8 reg);
@@ -252,7 +253,6 @@ int max8907c_irq_init(struct max8907c *chip, int irq, int irq_base);
 void max8907c_irq_free(struct max8907c *chip);
 int max8907c_suspend(struct i2c_client *i2c, pm_message_t state);
 int max8907c_resume(struct i2c_client *i2c);
-int max8907c_power_off(void);
 void max8907c_deep_sleep(int enter);
 int max8907c_pwr_en_config(void);
 int max8907c_pwr_en_attach(void);