[PATCH-v4 2/3] mfd: 88pm800: Set default interrupt clear method

Vaibhav Hiremath
2015-06-25T12:36:07Z

On Thursday 25 June 2015 05:15 PM, Krzysztof Kozlowski wrote:
> 2015-06-25 20:19 GMT+09:00 Vaibhav Hiremath <vaibhav.hiremath@linaro.org>:
>>
>>
>> On Thursday 25 June 2015 03:56 PM, Lee Jones wrote:
>
> (...)
>
>>>> diff --git a/include/linux/mfd/88pm80x.h b/include/linux/mfd/88pm80x.h
>>>> index 97cb283..94b3dcd 100644
>>>> --- a/include/linux/mfd/88pm80x.h
>>>> +++ b/include/linux/mfd/88pm80x.h
>>>> @@ -77,6 +77,8 @@ enum {
>>>> #define PM800_WAKEUP2 (0x0E)
>>>> #define PM800_WAKEUP2_INV_INT (1 << 0)
>>>> #define PM800_WAKEUP2_INT_CLEAR (1 << 1)
>>>> +#define PM800_WAKEUP2_INT_READ_CLEAR (0 << 1)
>>>> +#define PM800_WAKEUP2_INT_WRITE_CLEAR (1 << 1)
>>>> #define PM800_WAKEUP2_INT_MASK (1 << 2)
>>>
>>>
>>> Use the BIT() macro.
>>>
>>
>> I thought about this, but the whole file doesn't use it, so I also
>> chose not to.
>>
>>
>>>> #define PM800_POWER_UP_LOG (0x10)
>>>> @@ -300,7 +302,7 @@ struct pm80x_chip {
>>>> struct regmap_irq_chip_data *irq_data;
>>>> int type;
>>>> int irq;
>>>> - int irq_mode;
>>>> + int irq_clr_on_wr; /* '1': Clear on write, '0': Clear on
>>>> read*/
>>>
>>>
>>> Whitespace issue.
>>>
>>
>> Didn't see any...and I also ran checkpatch.
>>
>>> Shouldn't this be a bool?
>>>
>>
>> Just was not sure about any older board file interface.
>> Ideally it should be bool only.
>>
>>> Actually even better, I would define; CLR_ON_WRITE and CLR_ON_READ,
>>> and call the variable irq_clear_method, or something.
>>>
>>> Much clearer that way I think.
>>>
>>
>> We have slowly decided to almost hardcode it to one value if there is
>> no board file. I feel we should just keep it to simple.
>>
>> If you still insist, I can implement.
>
> The bool would be indeed nicer and still you could hard-code the
> desired value on DT system:
> + /* by default, set irq clear method on write */
> + pdata->irq_clear_method = CLR_ON_WRITE;
>
> However the question is how this would influence existing platforms
> using board files. Are there any in kernel or in downstream?
>

No, not atleast I am aware of.
I did grep on mainline kernel, and here is what I got

drivers/regulator/88pm800.c: struct pm80x_platform_data *pdata =
dev_get_platdata(pdev->dev.parent);
drivers/mfd/88pm800.c: struct pm80x_platform_data *pdata)
drivers/mfd/88pm800.c: struct pm80x_platform_data *pdata)
drivers/mfd/88pm800.c: struct pm80x_platform_data *pdata)
drivers/mfd/88pm800.c: struct pm80x_platform_data *pdata)
drivers/mfd/88pm800.c: struct pm80x_platform_data *pdata)
drivers/mfd/88pm800.c: struct pm80x_platform_data *pdata =
dev_get_platdata(&client->dev);
drivers/mfd/88pm805.c: struct pm80x_platform_data *pdata =
dev_get_platdata(&client->dev);
include/linux/mfd/88pm80x.h:struct pm80x_platform_data {
include/linux/mfd/88pm80x.h: struct pm80x_platform_data *pdata);

Thanks,
Vaibhav