diff mbox

Applied "regulator: tps65218: do not disable DCDC3 during poweroff on broken PMICs" to the regulator tree

Message ID E1bXZja-0000XE-A6@debutante (mailing list archive)
State New, archived
Headers show

Commit Message

Mark Brown Aug. 10, 2016, 8:04 p.m. UTC
The patch

   regulator: tps65218: do not disable DCDC3 during poweroff on broken PMICs

has been applied to the regulator tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

From 23a34f9d03a5d40a6234855bc069da370708cc9e Mon Sep 17 00:00:00 2001
From: Tero Kristo <t-kristo@ti.com>
Date: Wed, 10 Aug 2016 17:53:55 +0530
Subject: [PATCH] regulator: tps65218: do not disable DCDC3 during poweroff on
 broken PMICs

Some versions of tps65218 do not seem to support poweroff modes properly
if DCDC3 regulator is shut-down. Thus, keep it enabled even during
poweroff if the version info matches the broken silicon revision.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 drivers/regulator/tps65218-regulator.c | 8 ++++++++
 include/linux/mfd/tps65218.h           | 5 +++++
 2 files changed, 13 insertions(+)

Comments

Lee Jones Aug. 31, 2016, 3:01 p.m. UTC | #1
On Wed, 10 Aug 2016, Mark Brown wrote:

> The patch
> 
>    regulator: tps65218: do not disable DCDC3 during poweroff on broken PMICs

Looks like I also need this patch.

Would you be kind enough to shoot me a pull-request please?

> has been applied to the regulator tree at
> 
>    git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git 
> 
> All being well this means that it will be integrated into the linux-next
> tree (usually sometime in the next 24 hours) and sent to Linus during
> the next merge window (or sooner if it is a bug fix), however if
> problems are discovered then the patch may be dropped or reverted.  
> 
> You may get further e-mails resulting from automated or manual testing
> and review of the tree, please engage with people reporting problems and
> send followup patches addressing any issues that are reported if needed.
> 
> If any updates are required or you are submitting further changes they
> should be sent as incremental updates against current git, existing
> patches will not be replaced.
> 
> Please add any relevant lists and maintainers to the CCs when replying
> to this mail.
> 
> Thanks,
> Mark
> 
> From 23a34f9d03a5d40a6234855bc069da370708cc9e Mon Sep 17 00:00:00 2001
> From: Tero Kristo <t-kristo@ti.com>
> Date: Wed, 10 Aug 2016 17:53:55 +0530
> Subject: [PATCH] regulator: tps65218: do not disable DCDC3 during poweroff on
>  broken PMICs
> 
> Some versions of tps65218 do not seem to support poweroff modes properly
> if DCDC3 regulator is shut-down. Thus, keep it enabled even during
> poweroff if the version info matches the broken silicon revision.
> 
> Signed-off-by: Tero Kristo <t-kristo@ti.com>
> Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
> Signed-off-by: Keerthy <j-keerthy@ti.com>
> Acked-by: Lee Jones <lee.jones@linaro.org>
> Signed-off-by: Mark Brown <broonie@kernel.org>
> ---
>  drivers/regulator/tps65218-regulator.c | 8 ++++++++
>  include/linux/mfd/tps65218.h           | 5 +++++
>  2 files changed, 13 insertions(+)
> 
> diff --git a/drivers/regulator/tps65218-regulator.c b/drivers/regulator/tps65218-regulator.c
> index d1e631d64a20..eb0f5b13841a 100644
> --- a/drivers/regulator/tps65218-regulator.c
> +++ b/drivers/regulator/tps65218-regulator.c
> @@ -180,6 +180,14 @@ static int tps65218_pmic_set_suspend_disable(struct regulator_dev *dev)
>  	if (rid < TPS65218_DCDC_1 || rid > TPS65218_LDO_1)
>  		return -EINVAL;
>  
> +	/*
> +	 * Certain revisions of TPS65218 will need to have DCDC3 regulator
> +	 * enabled always, otherwise an immediate system reboot will occur
> +	 * during poweroff.
> +	 */
> +	if (rid == TPS65218_DCDC_3 && tps->rev == TPS65218_REV_2_1)
> +		return 0;
> +
>  	if (!tps->info[rid]->strobe) {
>  		if (rid == TPS65218_DCDC_3)
>  			tps->info[rid]->strobe = 3;
> diff --git a/include/linux/mfd/tps65218.h b/include/linux/mfd/tps65218.h
> index 85e464e32c43..d1db9527fab5 100644
> --- a/include/linux/mfd/tps65218.h
> +++ b/include/linux/mfd/tps65218.h
> @@ -63,6 +63,11 @@
>  #define TPS65218_CHIPID_CHIP_MASK	0xF8
>  #define TPS65218_CHIPID_REV_MASK	0x07
>  
> +#define TPS65218_REV_1_0		0x0
> +#define TPS65218_REV_1_1		0x1
> +#define TPS65218_REV_2_0		0x2
> +#define TPS65218_REV_2_1		0x3
> +
>  #define TPS65218_INT1_VPRG		BIT(5)
>  #define TPS65218_INT1_AC		BIT(4)
>  #define TPS65218_INT1_PB		BIT(3)
diff mbox

Patch

diff --git a/drivers/regulator/tps65218-regulator.c b/drivers/regulator/tps65218-regulator.c
index d1e631d64a20..eb0f5b13841a 100644
--- a/drivers/regulator/tps65218-regulator.c
+++ b/drivers/regulator/tps65218-regulator.c
@@ -180,6 +180,14 @@  static int tps65218_pmic_set_suspend_disable(struct regulator_dev *dev)
 	if (rid < TPS65218_DCDC_1 || rid > TPS65218_LDO_1)
 		return -EINVAL;
 
+	/*
+	 * Certain revisions of TPS65218 will need to have DCDC3 regulator
+	 * enabled always, otherwise an immediate system reboot will occur
+	 * during poweroff.
+	 */
+	if (rid == TPS65218_DCDC_3 && tps->rev == TPS65218_REV_2_1)
+		return 0;
+
 	if (!tps->info[rid]->strobe) {
 		if (rid == TPS65218_DCDC_3)
 			tps->info[rid]->strobe = 3;
diff --git a/include/linux/mfd/tps65218.h b/include/linux/mfd/tps65218.h
index 85e464e32c43..d1db9527fab5 100644
--- a/include/linux/mfd/tps65218.h
+++ b/include/linux/mfd/tps65218.h
@@ -63,6 +63,11 @@ 
 #define TPS65218_CHIPID_CHIP_MASK	0xF8
 #define TPS65218_CHIPID_REV_MASK	0x07
 
+#define TPS65218_REV_1_0		0x0
+#define TPS65218_REV_1_1		0x1
+#define TPS65218_REV_2_0		0x2
+#define TPS65218_REV_2_1		0x3
+
 #define TPS65218_INT1_VPRG		BIT(5)
 #define TPS65218_INT1_AC		BIT(4)
 #define TPS65218_INT1_PB		BIT(3)