devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
To: Thierry Reding
	<thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	Linus Walleij
	<linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org>,
	Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>
Subject: Re: [PATCH 2/2] gpio: Add Avionic Design N-bit GPIO expander support
Date: Fri, 25 May 2012 18:48:05 -0600	[thread overview]
Message-ID: <20120526004805.92B373E1E4E@localhost> (raw)
In-Reply-To: <20120521102032.GA27686-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>

On Mon, 21 May 2012 12:20:32 +0200, Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org> wrote:
> * Grant Likely wrote:
> > On Thu, 12 Apr 2012 13:24:18 +0200, Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org> wrote:
> > > This commit adds a driver for the Avionic Design N-bit GPIO expander.
> > > The expander provides a variable number of GPIO pins with interrupt
> > > support.
> > 
> > Hi Thierry,  comments below...
> > 
> > > diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
> > > index 7875c3f..d86c3b7 100644
> > > --- a/drivers/gpio/Kconfig
> > > +++ b/drivers/gpio/Kconfig
> > > @@ -373,6 +373,25 @@ config GPIO_ADP5588_IRQ
> > >  	  Say yes here to enable the adp5588 to be used as an interrupt
> > >  	  controller. It requires the driver to be built in the kernel.
> > >  
> > > +config GPIO_ADNP
> > > +	tristate "Avionic Design N-bit GPIO expander"
> > > +	depends on I2C
> > > +	help
> > > +	  This option enables support for N GPIOs found on Avionic Design
> > > +	  I2C GPIO expanders. The register space will be extended by powers
> > > +	  of two, so the controller will need to accomodate for that. For
> > > +	  example: if a controller provides 48 pins, 6 registers will be
> > > +	  enough to represent all pins, but the driver will assume a
> > > +	  register layout for 64 pins (8 registers).
> > > +
> > > +config GPIO_ADNP_IRQ
> > > +	bool "Interrupt controller support"
> > > +	depends on GPIO_ADNP
> > > +	help
> > > +	  Say yes here to enable the Avionic Design N-bit GPIO expander to
> > > +	  be used as an interrupt controller. It requires the driver to be
> > > +	  built in the kernel.
> > > +
> > 
> > Why does it require the driver to be built in?
> 
> That's primarily a relic from pre-IRQ domain days when it wasn't possible to
> register interrupt controllers after the boot phase. While this should now no
> longer be a problem, I still haven't been able to find out how to properly
> clean up the IRQ domain when the module is unloaded. I feel that the cleanup
> path should be properly implemented before allowing this to be built as a
> module.
> 
> Can you enlighten me?

That's a bug in irq_domain.  It should be fixed in mainline now.  See
commit 58ee99ada "irqdomain: Support removal of IRQ domains."

> > > +struct adnp_platform_data {
> > > +	unsigned gpio_base;
> > > +	unsigned nr_gpios;
> > > +	int irq_base;
> > > +	const char *const *names;
> > > +};
> > 
> > From the start this is a DT enabled driver.  There should be no reason
> > to also include platform_data support.
> 
> I thought it might be a good idea to support both for now. There have been
> some discussions that the device tree should be just an alternative source
> for platform data, the main argument being that platform data could be used
> to overwrite data provided via DT.

Unless you have an *actual* user of platform_data, don't borrow
trouble by adding it.

> Also I use this driver on some older kernels that can't boot from DT yet, but
> I guess that argument isn't very valid because those kernels don't have IRQ
> domain support either and the driver needs more changes anyway.
> 
> Is the official position to introduce new drivers as DT only?

More like the official position is not not add things that are unused.

g.

  parent reply	other threads:[~2012-05-26  0:48 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-12 11:24 [PATCH 1/2] of: Add Avionic Design vendor prefix Thierry Reding
     [not found] ` <1334229858-1665-1-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-04-12 11:24   ` [PATCH 2/2] gpio: Add Avionic Design N-bit GPIO expander support Thierry Reding
     [not found]     ` <1334229858-1665-2-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-05-11 23:47       ` Grant Likely
2012-05-21 10:20         ` Thierry Reding
     [not found]           ` <20120521102032.GA27686-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-05-26  0:48             ` Grant Likely [this message]
2012-06-07  8:40               ` Thierry Reding
     [not found]                 ` <20120607084015.GA27764-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-10  6:43                   ` Arnd Bergmann
2012-05-22 13:57   ` [PATCH 1/2] of: Add Avionic Design vendor prefix Thierry Reding

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=20120526004805.92B373E1E4E@localhost \
    --to=grant.likely-s3s/wqlpoipyb63q8fvjnq@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org \
    --cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
    --cc=thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).