Patch "regulator: tps65910: Work around silicon erratum SWCZ010" has been added to the 4.8-stable tree
This is a note to let you know that I've just added the patch titled
regulator: tps65910: Work around silicon erratum SWCZ010
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
regulator-tps65910-work-around-silicon-erratum-swcz010.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
8f9165c981fed187bb483de84caf9adf835aefdaMon Sep 17 00:00:00 2001
From: Jan Remmet <[email protected]>
Date: Fri, 23 Sep 2016 10:52:00 +0200
Subject: regulator: tps65910: Work around silicon erratum SWCZ010
From: Jan Remmet <[email protected]>
commit 8f9165c981fed187bb483de84caf9adf835aefda upstream.
http://www.ti.com/lit/pdf/SWCZ010:
DCDC o/p voltage can go higher than programmed value
Impact:
VDDI, VDD2, and VIO output programmed voltage level can go higher than expected or crash, when coming out of PFM to PWM mode or using DVFS.
Description:
When DCDC CLK SYNC bits are 11/01:
* VIO 3-MHz oscillator is the source clock of the digital core and input clock of VDD1 and VDD2
* Turn-on of VDD1 and VDD2 HSD PFETis synchronized or at a constant phase shift
* Current pulled though VCC1+VCC2 is Iload(VDD1) + Iload(VDD2)
* The 3 HSD PFET will be turned-on at the same time, causing the highest possible switching noise on the application. This noise level depends on the layout, the VBAT level, and the load current. The noise level increases with improper layout.
When DCDC CLK SYNC bits are 00:
* VIO 3-MHz oscillator is the source clock of digital core
* VDD1 and VDD2 are running on their own 3-MHz oscillator
* Current pulled though VCC1+VCC2 average of Iload(VDD1) + Iload(VDD2)
* The switching noise of the 3 SMPS will be randomly spread over time, causing lower overall switching noise.
Workaround:
Set DCDCCTRL_REG[1:0]= 00.
--- drivers/regulator/tps65910-regulator.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/regulator/tps65910-regulator.c +6 -0
@@ -1111,6 +1111,12 @@ static int tps65910_probe(struct platfor pmic->num_regulators =ARRAY_SIZE (tps65910_regs); pmic->ext_sleep_control = tps65910_ext_sleep_control; info = tps65910_regs; +/* Work around silicon erratum SWCZ010: output programmed +* voltage level can go higher than expected or crash +* Workaround: use no synchronization of DCDC clocks +*/ +tps65910_reg_clear_bits (pmic->mfd,TPS65910_DCDCCTRL , +DCDCCTRL_DCDCCKSYNC_MASK );break ;case TPS65911 : pmic->get_ctrl_reg = &tps65911_get_ctrl_register;
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/regulator-tps65910-work-around-silicon-erratum-swcz010.patch