[PATCH V3 4/5] mfd: palmas: support IRQ inversion at the board level

Lee Jones lee.jones at linaro.org
Thu Apr 10 00:25:56 PDT 2014


> Stephen, any news about this patch? I'm waiting for it to be merged in
> order to resend some Tegra DTs, but still cannot see it in -next.

I doubt it's been applied.

No one got back to me with reference to how to deal with the set [1],
so I certainly didn't apply it.

[1] http://www.spinics.net/lists/arm-kernel/msg312694.html

> On Tue, Mar 4, 2014 at 4:51 AM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> > From: Stephen Warren <swarren at nvidia.com>
> >
> > Implement the new DT property ti,irq-externally-inverted, and add an
> > equivalent platform data field to match. This allows the driver to
> > correctly automatically configure the IRQ output polarity when the board
> > or SoC contains an inverter between the Palmas IRQ output and IRQ
> > controller input.
> >
> > Signed-off-by: Stephen Warren <swarren at nvidia.com>
> > ---
> > v3:
> > * Use an IRQD flag to represent the data, rather than a custom DT property.
> > v2:
> > * Split V1's patch 1/2 into separate patches 1/3 and 2/3.
> > ---
> >  drivers/mfd/palmas.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c
> > index d280d789e55a..3281d4103e9d 100644
> > --- a/drivers/mfd/palmas.c
> > +++ b/drivers/mfd/palmas.c
> > @@ -292,7 +292,8 @@ static int palmas_set_pdata_irq_flag(struct i2c_client *i2c,
> >                 return -EINVAL;
> >         }
> >
> > -       pdata->irq_flags = irqd_get_trigger_type(irq_data);
> > +       pdata->irq_flags = irqd_get_trigger_type(irq_data) |
> > +                          irqd_get_src_dst_inverted(irq_data);
> >         dev_info(&i2c->dev, "Irq flag is 0x%08x\n", pdata->irq_flags);
> >         return 0;
> >  }
> > @@ -447,6 +448,8 @@ static int palmas_i2c_probe(struct i2c_client *i2c,
> >                 reg = PALMAS_POLARITY_CTRL_INT_POLARITY;
> >         else
> >                 reg = 0;
> > +       if (pdata->irq_flags & IRQ_SRC_DST_INVERTED)
> > +               reg ^= PALMAS_POLARITY_CTRL_INT_POLARITY;
> >         ret = palmas_update_bits(palmas, PALMAS_PU_PD_OD_BASE,
> >                         PALMAS_POLARITY_CTRL, PALMAS_POLARITY_CTRL_INT_POLARITY,
> >                         reg);
> >

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog



More information about the linux-arm-kernel mailing list