diff mbox

mfd: palmas: Assign the right powerhold mask for tps65917

Message ID 1508833296-20702-1-git-send-email-j-keerthy@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

J, KEERTHY Oct. 24, 2017, 8:21 a.m. UTC
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 <j-keerthy@ti.com>
---
 drivers/mfd/palmas.c       | 10 +++++++++-
 include/linux/mfd/palmas.h |  3 +++
 2 files changed, 12 insertions(+), 1 deletion(-)

Comments

Lee Jones Oct. 31, 2017, 10:48 a.m. UTC | #1
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 <j-keerthy@ti.com>
> ---
>  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?

> +			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
J, KEERTHY Nov. 6, 2017, 9:52 a.m. UTC | #2
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 <j-keerthy@ti.com>
>> ---
>>  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
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
J, KEERTHY Nov. 6, 2017, 12:28 p.m. UTC | #3
On Monday 06 November 2017 03:22 PM, Keerthy wrote:
> 
> 
> 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 <j-keerthy@ti.com>
>>> ---
>>>  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?

I guess you meant interrogating by i2c register red like revision
register, i am afraid no such register to distinguish hence went by the
compatible.

Regards,
Keerthy
> 
>>
>>> +			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
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Lee Jones Nov. 29, 2017, 11:05 a.m. UTC | #4
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 <j-keerthy@ti.com>
> ---
>  drivers/mfd/palmas.c       | 10 +++++++++-
>  include/linux/mfd/palmas.h |  3 +++
>  2 files changed, 12 insertions(+), 1 deletion(-)

Applied, thanks.
diff mbox

Patch

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"))
+			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