[Letux-kernel] [PATCH v4 2/5] mfd: rn5t618: add IRQ support

Andreas Kemnade andreas at kemnade.info
Mon Dec 16 17:01:52 CET 2019


On Mon, 16 Dec 2019 15:27:15 +0000
Lee Jones <lee.jones at 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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.goldelico.com/pipermail/letux-kernel/attachments/20191216/91d42428/attachment.asc>


More information about the Letux-kernel mailing list