All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcin Niestroj <m.niestroj@grinn-global.com>
To: Grygorii Strashko <grygorii.strashko@ti.com>,
	Lee Jones <lee.jones@linaro.org>
Cc: Tony Lindgren <tony@atomide.com>,
	Sebastian Reichel <sre@kernel.org>,
	Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
	linux-omap@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-input@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v3 1/5] mfd: tps65217: Add support for IRQs
Date: Mon, 20 Jun 2016 12:56:42 +0200	[thread overview]
Message-ID: <90cc8e89-3132-e43e-371b-842774a5a7fc@grinn-global.com> (raw)
In-Reply-To: <576420C4.4060002@ti.com>

On 17.06.2016 18:09, Grygorii Strashko wrote:
> On 06/17/2016 06:31 PM, Marcin Niestroj wrote:
>>
>>
>> On 17.06.2016 16:42, Grygorii Strashko wrote:
>>> On 06/17/2016 05:05 PM, Marcin Niestroj wrote:
>>>>
>>>> On 16.06.2016 15:03, Grygorii Strashko wrote:
>>>>> On 06/16/2016 02:41 PM, Marcin Niestroj wrote:
>>>>>> Add support for handling IRQs: power button, AC and USB power state
>>>>>> changes. Mask and interrupt bits are shared within one register, which
>>>>>> prevents us to use regmap_irq implementation. New irq_domain is
>>>>>> created in
>>>>>> order to add interrupt handling for each tps65217's subsystem. IRQ
>>>>>> resources have been added for charger subsystem to be able to notify
>>>>>> about
>>>>>> AC and USB state changes.
>>>>>>
>>>>>> Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
>>>>>> ---
>>>>>>   drivers/mfd/Kconfig          |   1 +
>>>>>>   drivers/mfd/tps65217.c       | 194
>>>>>> +++++++++++++++++++++++++++++++++++++++++--
>>>>>>   include/linux/mfd/tps65217.h |  11 +++
>>>>>>   3 files changed, 198 insertions(+), 8 deletions(-)
>>>
>>> [...]
>>>
>>>>>> +{
>>>>>> +    int ret;
>>>>>> +
>>>>>> +    mutex_init(&tps->irq_lock);
>>>>>> +
>>>>>> +    /* Mask all interrupt sources */
>>>>>> +    tps->irq_mask = (TPS65217_INT_RESERVEDM | TPS65217_INT_PBM
>>>>>> +            | TPS65217_INT_ACM | TPS65217_INT_USBM);
>>>>>> +    tps65217_reg_write(tps, TPS65217_REG_INT, tps->irq_mask,
>>>>>> +            TPS65217_PROTECT_NONE);
>>>>>> +
>>>>>> +    tps->irq_domain = irq_domain_add_linear(tps->dev->of_node,
>>>>>> +        TPS65217_NUM_IRQ, &tps65217_irq_domain_ops, tps);
>>>>>> +    if (!tps->irq_domain) {
>>>>>> +        dev_err(tps->dev, "Could not create IRQ domain\n");
>>>>>> +        return -ENOMEM;
>>>>>> +    }
>>>>>> +
>>>>>> +    ret = devm_request_threaded_irq(tps->dev, irq, NULL,
>>>>>> +                    tps65217_irq_thread,
>>>>>> +                    IRQF_TRIGGER_RISING | IRQF_ONESHOT,
>>>>>
>>>>> Are there any reasons why IRQ trigger type specified here explicitly?
>>>>
>>>> Not really. I have configured it that way, it worked and I forgot about
>>>> it when preparing patches. Could you give some hint here?
>>>>
>>>
>>> It's better to get it from DT and in case of DT boot it will - the real
>>> IRQ trigger type may depends on board.
>>>
>>
>> So what I understand, I need to remove IRQF_TRIGGER_RISING here.
>> Addidional flags will be passed by 'irq_flags' in
>> "interrupts = <irq_num irq_flags>" in DT, right?
>
> Indeed. And usually it is not "Addidional flags" - its mandatory cell for
>  the most of IRQ controllers.
>
> The problem with hard-coded IRQ trigger type values in code is that on
> different boards IRQ can be wired on different way - to the GIC/INTC,
> to SoC GPIO, to GPIO expanders and .. And they can support different sets
> of allowed IRQ triggering types. More over, on some boards IRQ signal can be
> inverted, for example :P
>
> So, It's more generic to not hard-code it if your driver is expected to be
> used only with DT.
> Also as per TRM http://www.ti.com/lit/ds/symlink/tps65217.pdf
> nINT - interrupt output (active low, open drain). Pin is pulled low if an interrupt bit is set. The
>        output goes high after the bit causing the interrupt in register INT has been read.
>        The interrupt sources can be masked in register INT, so no interrupt is generated when the
>        corresponding interrupt bit is set
>
>

Thanks very much for making this clear to me.

I have just send new patch version with fixes from your comments.

-- 
Regards,
Marcin Niestroj

  reply	other threads:[~2016-06-20 10:56 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-16 11:41 [PATCH v3 0/5] mfd: tps65217: Add power-button and IRQ support Marcin Niestroj
2016-06-16 11:41 ` [PATCH v3 1/5] mfd: tps65217: Add support for IRQs Marcin Niestroj
2016-06-16 13:03   ` Grygorii Strashko
2016-06-17 14:05     ` Marcin Niestroj
2016-06-17 14:42       ` Grygorii Strashko
     [not found]         ` <57640C3C.1070001-l0cyMroinI0@public.gmane.org>
2016-06-17 15:31           ` Marcin Niestroj
2016-06-17 16:09             ` Grygorii Strashko
2016-06-20 10:56               ` Marcin Niestroj [this message]
2016-06-16 14:30   ` Lee Jones
2016-06-16 11:41 ` [PATCH v3 2/5] power_supply: tps65217-charger: Fix NULL deref during property export Marcin Niestroj
2016-06-16 11:41 ` [PATCH v3 3/5] power_supply: tps65217-charger: Add support for IRQs Marcin Niestroj
2016-06-16 11:41 ` [PATCH v3 4/5] mfd: tps65217: Add power button as subdevice Marcin Niestroj
2016-06-16 14:30   ` Lee Jones
2016-06-16 11:41 ` [PATCH v3 5/5] Input: Add tps65217 power button driver Marcin Niestroj
     [not found]   ` <20160616114110.23455-6-m.niestroj-z3quKL4iOrmQ6ZAhV5LmOA@public.gmane.org>
2016-06-20 13:06     ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=90cc8e89-3132-e43e-371b-842774a5a7fc@grinn-global.com \
    --to=m.niestroj@grinn-global.com \
    --cc=dbaryshkov@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=grygorii.strashko@ti.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=sre@kernel.org \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.