Re: [PATCH v4 2/5] mfd: rn5t618: add IRQ support

Andreas Kemnade
2019-12-16T16:02:04Z

[-- Attachment #1: Type: text/plain, Size: 2829 bytes --]

On Mon, 16 Dec 2019 15:27:15 +0000
Lee Jones <lee.jones@linaro.org> wrote:

> On Wed, 11 Dec 2019, Andreas Kemnade wrote:
>
> > This adds support for IRQ handling in the RC5T619 which is required
> > for properly implementing subdevices like RTC.
> > For now only definitions for the variant RC5T619 are included.
> >
> > Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> > ---
> > Changes in v4:
> > merge rn5t618-irq.c into rn5t618.c
> > use macros for IRQ table
> >
> > Changes in v3:
> > alignment cleanup
> >
> > Changes in v2:
> > - no dead code, did some more testing and thinking for that
> > - remove extra empty lines
> > drivers/mfd/Kconfig | 1 +
> > drivers/mfd/rn5t618.c | 88 +++++++++++++++++++++++++++++++++++++++++++++
> > include/linux/mfd/rn5t618.h | 15 ++++++++
> > 3 files changed, 104 insertions(+)
> >
> > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> > index ae24d3ea68ea..522e068d0082 100644
> > --- a/drivers/mfd/Kconfig
> > +++ b/drivers/mfd/Kconfig
> > @@ -1057,6 +1057,7 @@ config MFD_RN5T618
> > depends on OF
> > select MFD_CORE
> > select REGMAP_I2C
> > + select REGMAP_IRQ
> > help
> > Say yes here to add support for the Ricoh RN5T567,
> > RN5T618, RC5T619 PMIC.
> > diff --git a/drivers/mfd/rn5t618.c b/drivers/mfd/rn5t618.c
> > index da5cd9c92a59..76d997c0cfe4 100644
> > --- a/drivers/mfd/rn5t618.c
> > +++ b/drivers/mfd/rn5t618.c
> > @@ -8,6 +8,8 @@
> >
> > #include <linux/delay.h>
> > #include <linux/i2c.h>
> > +#include <linux/interrupt.h>
> > +#include <linux/irq.h>
> > #include <linux/mfd/core.h>
> > #include <linux/mfd/rn5t618.h>
> > #include <linux/module.h>
> > @@ -45,9 +47,63 @@ static const struct regmap_config rn5t618_regmap_config = {
> > .cache_type = REGCACHE_RBTREE,
> > };
> >
> > +static const struct regmap_irq rc5t619_irqs[] = {
> > + REGMAP_IRQ_REG(RN5T618_IRQ_SYS, 0, BIT(0)),
> > + REGMAP_IRQ_REG(RN5T618_IRQ_DCDC, 0, BIT(1)),
> > + REGMAP_IRQ_REG(RN5T618_IRQ_RTC, 0, BIT(2)),
> > + REGMAP_IRQ_REG(RN5T618_IRQ_ADC, 0, BIT(3)),
> > + REGMAP_IRQ_REG(RN5T618_IRQ_GPIO, 0, BIT(4)),
> > + REGMAP_IRQ_REG(RN5T618_IRQ_CHG, 0, BIT(6)),
> > +};
> > +
> > +static const struct regmap_irq_chip rc5t619_irq_chip = {
> > + .name = "rc5t619",
> > + .irqs = rc5t619_irqs,
> > + .num_irqs = ARRAY_SIZE(rc5t619_irqs),
> > + .num_regs = 1,
> > + .status_base = RN5T618_INTMON,
> > + .mask_base = RN5T618_INTEN,
> > + .mask_invert = true,
> > +};
> > +
> > static struct rn5t618 *rn5t618_pm_power_off;
> > static struct notifier_block rn5t618_restart_handler;
> >
> > +int rn5t618_irq_init(struct rn5t618 *rn5t618)
>
> Static?
>
yes, it should be static since IRQ and core do live
in the same file now.

Regards,
Andreas

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]