rk808: fix a err when no sleep pin in dts
authorChris Zhong <zyw@rock-chips.com>
Wed, 26 Aug 2015 09:54:55 +0000 (17:54 +0800)
committerGerrit Code Review <gerrit@rock-chips.com>
Tue, 8 Sep 2015 09:05:42 +0000 (17:05 +0800)
Rk808 will data abort if it has not sleep gpio in dts, and there is no
pmic_sleep_gpio for some board, add a validity checking before
gpio_request can fix this data abort.

Change-Id: Ic2b40f7bfb00e95d283dce72a33dd844cc2c7e27
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
drivers/mfd/rk808.c

index 592bc3de7dce5777aebd12993b674b19da5fc59a..5b22ce0a13cf9f94a107b25ce8cbd299f7c69e07 100755 (executable)
@@ -1399,7 +1399,7 @@ static int rk808_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *i
        /******************************set sleep vol & dcdc mode******************/
        #ifdef CONFIG_OF
        rk808->pmic_sleep_gpio = pdev->pmic_sleep_gpio;
-       if (rk808->pmic_sleep_gpio) {
+       if (gpio_is_valid(rk808->pmic_sleep_gpio)) {
                        ret = gpio_request(rk808->pmic_sleep_gpio, "rk808_pmic_sleep");
                        if (ret < 0) {
                                dev_err(rk808->dev,"Failed to request gpio %d with ret:""%d\n", rk808->pmic_sleep_gpio, ret);