Messages in this thread | | | Subject | Re: [PATCH v2 3/5] mfd: palmas: Reset the POWERHOLD mux during power off | From | Keerthy <> | Date | Fri, 24 Mar 2017 15:30:38 +0530 |
| |
On Tuesday 22 November 2016 06:33 PM, Lee Jones wrote: > On Thu, 10 Nov 2016, Keerthy wrote: > >> POWERHOLD signal has higher priority over the DEV_ON bit. >> So power off will not happen if the POWERHOLD is held high. >> Hence reset the MUX to GPIO_7 mode to release the POWERHOLD >> and the DEV_ON bit to take effect to power off the PMIC. >> >> PMIC Power off happens in dire situations like thermal shutdown >> so irrespective of the POWERHOLD setting go ahead and turn off >> the powerhold. Currently poweroff is broken on boards that have >> powerhold enabled. This fixes poweroff on those boards. >> >> Signed-off-by: Keerthy <j-keerthy@ti.com> >> --- >> >> Changes in v2: >> >> * Changed pr_err to dev_err >> * removed redundant boolean variable override-powerhold >> >> drivers/mfd/palmas.c | 14 ++++++++++++++ >> 1 file changed, 14 insertions(+) > > Applied, thanks.
Lee Jones,
For some strange reason this patch is missing! The other patch in the series is applied through mfd tree but somehow this particular patch is missed out.
https://patchwork.kernel.org/patch/9420631/ is applied.
https://patchwork.kernel.org/patch/9420655/ is not.
I tried applying this very patch and it applies cleanly on the next branch. Let me know if you want me to send this again on top of latest next branch.
- Keerthy
> >> diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c >> index ee9e9ea..da90124 100644 >> --- a/drivers/mfd/palmas.c >> +++ b/drivers/mfd/palmas.c >> @@ -430,6 +430,20 @@ static void palmas_power_off(void) >> { >> unsigned int addr; >> int ret, slave; >> + struct device_node *np = palmas_dev->dev->of_node; >> + >> + if (of_property_read_bool(np, "ti,palmas-override-powerhold")) { >> + addr = PALMAS_BASE_TO_REG(PALMAS_PU_PD_OD_BASE, >> + PALMAS_PRIMARY_SECONDARY_PAD2); >> + slave = PALMAS_BASE_TO_SLAVE(PALMAS_PU_PD_OD_BASE); >> + >> + ret = regmap_update_bits(palmas_dev->regmap[slave], addr, >> + PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_7_MASK, 0); >> + if (ret) >> + dev_err(palmas_dev->dev, >> + "Unable to write PRIMARY_SECONDARY_PAD2 %d\n", >> + ret); >> + } >> >> slave = PALMAS_BASE_TO_SLAVE(PALMAS_PMU_CONTROL_BASE); >> addr = PALMAS_BASE_TO_REG(PALMAS_PMU_CONTROL_BASE, PALMAS_DEV_CTRL); >
| |