printk("invalid gpio: %d\n", pdata->pmic_sleep_gpio);
}
pdata->pmic_sleep = true;
+
+ pdata->pm_off = of_property_read_bool(rk808_pmic_np,"rk808,system-power-controller");
return pdata;
}
#endif
-int rk808_device_shutdown(void)
+static int rk808_device_shutdown(void)
{
int ret;
int err = -1;
/*********************************************/
g_rk808 = rk808;
+ if (pdev->pm_off && !pm_power_off) {
+ pm_power_off = rk808_device_shutdown;
+ }
#ifdef CONFIG_HAS_EARLYSUSPEND
rk808->rk808_suspend.suspend = rk808_early_suspend,
unsigned int dcdc_slp_voltage[3]; /* buckx_voltage in uV */
bool pmic_sleep;
unsigned int ldo_slp_voltage[7];
+ bool pm_off;
};
struct rk808_regulator_subdev {
int count, u8 *buf);
int rk808_bulk_write(struct rk808 *rk808, u8 reg,
int count, u8 *buf);
-int rk808_device_shutdown(void);
#endif