int ret;
struct jbt6k74_platform_data *pdata = jbt->spi->dev.platform_data;
- gpio_set_value_cansleep(pdata->gpio_reset, 1);
ret = regulator_bulk_enable(ARRAY_SIZE(jbt->supplies), jbt->supplies);
+ if (ret)
+ return ret;
+
+ gpio_set_value_cansleep(pdata->gpio_reset, 1);
+ mdelay(100);
/* three times command zero */
ret |= jbt_reg_write_nodata(jbt, 0x00);
ret = jbt_reg_write(jbt, JBT_REG_POWER_ON_OFF, 0x00);
- if (!ret)
- ret = regulator_bulk_disable(ARRAY_SIZE(jbt->supplies), jbt->supplies);
-
- if (!ret)
+ if (!ret) {
gpio_set_value_cansleep(pdata->gpio_reset, 0);
+ ret = regulator_bulk_disable(ARRAY_SIZE(jbt->supplies), jbt->supplies);
+ }
return ret;
}