From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932612AbdKFJwk (ORCPT ); Mon, 6 Nov 2017 04:52:40 -0500 Received: from lelnx194.ext.ti.com ([198.47.27.80]:22864 "EHLO lelnx194.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932481AbdKFJwg (ORCPT ); Mon, 6 Nov 2017 04:52:36 -0500 Subject: Re: [PATCH] mfd: palmas: Assign the right powerhold mask for tps65917 To: Lee Jones CC: , , , References: <1508833296-20702-1-git-send-email-j-keerthy@ti.com> <20171031104800.sedywmkgf4kp6ych@dell> From: Keerthy Message-ID: Date: Mon, 6 Nov 2017 15:22:29 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171031104800.sedywmkgf4kp6ych@dell> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tuesday 31 October 2017 04:18 PM, Lee Jones wrote: > On Tue, 24 Oct 2017, Keerthy wrote: > >> The powerhold mask for TPS65917 is different when comapred to >> the other palmas versions. Hence assign the right mask that enables >> power off of tps65917 pmic correctly. >> >> Signed-off-by: Keerthy >> --- >> drivers/mfd/palmas.c | 10 +++++++++- >> include/linux/mfd/palmas.h | 3 +++ >> 2 files changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c >> index 3922a93..663a239 100644 >> --- a/drivers/mfd/palmas.c >> +++ b/drivers/mfd/palmas.c >> @@ -430,6 +430,7 @@ static void palmas_power_off(void) >> { >> unsigned int addr; >> int ret, slave; >> + u8 powerhold_mask; >> struct device_node *np = palmas_dev->dev->of_node; >> >> if (of_property_read_bool(np, "ti,palmas-override-powerhold")) { >> @@ -437,8 +438,15 @@ static void palmas_power_off(void) >> PALMAS_PRIMARY_SECONDARY_PAD2); >> slave = PALMAS_BASE_TO_SLAVE(PALMAS_PU_PD_OD_BASE); >> >> + if (of_device_is_compatible(np, "ti,tps65917")) > > Is it possible to interrogate the device itself, rather than DT? You mean using driver data tagged with compatibles? > >> + powerhold_mask = >> + TPS65917_PRIMARY_SECONDARY_PAD2_GPIO_5_MASK; >> + else >> + powerhold_mask = >> + PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_7_MASK; >> + >> ret = regmap_update_bits(palmas_dev->regmap[slave], addr, >> - PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_7_MASK, 0); >> + powerhold_mask, 0); >> if (ret) >> dev_err(palmas_dev->dev, >> "Unable to write PRIMARY_SECONDARY_PAD2 %d\n", >> diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h >> index 6dec438..cffb23b 100644 >> --- a/include/linux/mfd/palmas.h >> +++ b/include/linux/mfd/palmas.h >> @@ -3733,6 +3733,9 @@ enum usb_irq_events { >> #define TPS65917_REGEN3_CTRL_MODE_ACTIVE 0x01 >> #define TPS65917_REGEN3_CTRL_MODE_ACTIVE_SHIFT 0x00 >> >> +/* POWERHOLD Mask field for PRIMARY_SECONDARY_PAD2 register */ >> +#define TPS65917_PRIMARY_SECONDARY_PAD2_GPIO_5_MASK 0xC >> + >> /* Registers for function RESOURCE */ >> #define TPS65917_REGEN1_CTRL 0x2 >> #define TPS65917_PLLEN_CTRL 0x3 >