From: robert.jarzmik@free.fr (Robert Jarzmik)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 2/4] mfd: lubbock_cplds: add lubbock IO board
Date: Sat, 28 Feb 2015 10:57:30 +0100 [thread overview]
Message-ID: <87mw3y2wad.fsf@free.fr> (raw)
In-Reply-To: <87a9088tam.fsf@free.fr> (Robert Jarzmik's message of "Fri, 20 Feb 2015 17:02:57 +0100")
Robert Jarzmik <robert.jarzmik@free.fr> writes:
> Hi Arnd and Greg,
It's been a week, backlog ping ?
>
> I have this driver I'm upstreaming, which comes out of
> arch/arm/mach-pxa/lubbock.c. As for the reason it is extracted, see submitted
> commit [1] for reference.
>
> The main question is : where does it belong in the kernel ?
>
> The driver is :
> - for the CPLDs on the Lubbock development platform, which is more or less an
> old motherboard for Intel Xscale pxa255 SoC (see [2] for more details)
> - these CPLDs control :
> - interrupt muxing towards the SoC
> - several leds
> - switches read back
> For the whole patch, see [4]
>
> Lee's position is that it doesn't belong to drivers/mfd, see [3].
>
> So where should I submit it ? And more generally, where should CPLDs drivers be
> pushed in the kernel tree ?
>
> If there is no solution, I'll fallback through arch/arm/plat-pxa, not very nice,
> but it has to land somewhere, I don't want lubbock to remain broken.
>
> Cheers.
>
> --
> Robert
>
> [1] Reason of extraction / commit message
> mfd: lubbock_cplds: add lubbock IO board
>
> Lubbock () board is the IO motherboard of the Intel PXA25x Development
> Platform, which supports the Lubbock pxa25x soc board.
>
> Historically, this support was in arch/arm/mach-pxa/lubbock.c. When
> gpio-pxa was moved to drivers/pxa, it became a driver, and its
> initialization and probing happened at postcore initcall. The lubbock
> code used to install the chained lubbock interrupt handler at init_irq()
> time.
>
> The consequence of the gpio-pxa change is that the installed chained irq
> handler lubbock_irq_handler() was overwritten in pxa_gpio_probe(_dt)(),
> removing :
> - the handler
> - the falling edge detection setting of GPIO0, which revealed the
> interrupt request from the lubbock IO board.
>
> As a fix, move the gpio0 chained handler setup to a place where we have
> the guarantee that pxa_gpio_probe() was called before, so that lubbock
> handler becomes the true IRQ chained handler of GPIO0, demuxing the
> lubbock IO board interrupts.
>
> This patch moves all that handling to a mfd driver. It's only purpose
> for the time being is the interrupt handling, but in the future it
> should encompass all the motherboard CPLDs handling :
> - leds
> - switches
> - hexleds
>
> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
>
> [2] Board description by Nicolas
>>> The Lubbock is an ancient development board (circa 2003) using a CPLD to
>>> multiplex a couple things on the board. I really doubt anyone would
>>> reprogram this CPLD at this point. So I'd treat it just like another
>>> interrupt controller + random peripherals that will never change. And
>>> yes, maybe a more appropriate name is needed.
>
> [3] Lee's position
>>> > I don't think this is correct either. CPLD handling would probably be
>>> > slightly less out of place in drivers/misc, but perhaps a new
>>> > subsystem for PLDs/CPLDs/FPGAs would be more appropriate
>>> > drivers/programmables or similar maybe.
>>> >
> ...
>>> > I'm pretty convinced that it doesn't belong in MFD now, but it doesn't
>>> > mean I'm going to leave you on the curb. I'd like to help you get it
>>> > into a better home.
>>> >
>>> > [...]
>>> > > Is not only a irqchip because, as explained at the bottom of the commit message,
>>> > > quoting myself :
>>> > > This patch moves all that handling to a mfd driver. It's only purpose
>>> > > for the time being is the interrupt handling, but in the future it
>>> > > should encompass all the motherboard CPLDs handling :
>>> > > - leds
>>> > > - switches
>>> > > - hexleds
>>> >
>>> > I had a conversation about this on IRC yesterday and some good
>>> > points/questions were posed. This is a difficult area, because you
>>> > can program these things to do whatever you like. Depending on the
>>> > 'intention' (and it is only an intention -- someone else can come
>>> > along and reprogram these devices on a whim), the CPLD code could live
>>> > anywhere. If you wanted to put watchdog functionality in there, then
>>> > there is an argument for it to live in drivers/watchdog, etc etc. So
>>> > just because the plan is to support a few (i.e. more than one) simple
>>> > devices, it doesn't necessarily mean that the handling should be done
>>> > in MFD.
>>> >
>>> > Yesterday I was asked "Are you wanting to restrict drivers in
>>> > drivers/mfd to those that make use of MFD_CORE functionality?". My
>>> > answer to that was "No, however; I only want devices which
>>> > _intrinsically_ operate in multiple subsystems", which these
>>> > programmables no not do.
>>> >
>>> > FYI, you're not on your own here. There is at least one of these
>>> > devices in the kernel already and upon a short inspection there
>>> > appears to be a number of Out-of-Tree (OoT) drivers out there which
>>> > will require a home in Mainline sooner or later.
>>> >
>
> [4] Whole patch
> https://lkml.org/lkml/2015/1/24/90
--
Robert
WARNING: multiple messages have this Message-ID (diff)
From: Robert Jarzmik <robert.jarzmik@free.fr>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Arnd Bergmann <arnd@arndb.de>, Lee Jones <lee.jones@linaro.org>
Cc: Nicolas Pitre <nicolas.pitre@linaro.org>,
Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
Daniel Mack <daniel@zonque.org>,
Haojian Zhuang <haojian.zhuang@gmail.com>,
Samuel Ortiz <sameo@linux.intel.com>,
Grant Likely <grant.likely@linaro.org>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Subject: Re: [PATCH v4 2/4] mfd: lubbock_cplds: add lubbock IO board
Date: Sat, 28 Feb 2015 10:57:30 +0100 [thread overview]
Message-ID: <87mw3y2wad.fsf@free.fr> (raw)
In-Reply-To: <87a9088tam.fsf@free.fr> (Robert Jarzmik's message of "Fri, 20 Feb 2015 17:02:57 +0100")
Robert Jarzmik <robert.jarzmik@free.fr> writes:
> Hi Arnd and Greg,
It's been a week, backlog ping ?
>
> I have this driver I'm upstreaming, which comes out of
> arch/arm/mach-pxa/lubbock.c. As for the reason it is extracted, see submitted
> commit [1] for reference.
>
> The main question is : where does it belong in the kernel ?
>
> The driver is :
> - for the CPLDs on the Lubbock development platform, which is more or less an
> old motherboard for Intel Xscale pxa255 SoC (see [2] for more details)
> - these CPLDs control :
> - interrupt muxing towards the SoC
> - several leds
> - switches read back
> For the whole patch, see [4]
>
> Lee's position is that it doesn't belong to drivers/mfd, see [3].
>
> So where should I submit it ? And more generally, where should CPLDs drivers be
> pushed in the kernel tree ?
>
> If there is no solution, I'll fallback through arch/arm/plat-pxa, not very nice,
> but it has to land somewhere, I don't want lubbock to remain broken.
>
> Cheers.
>
> --
> Robert
>
> [1] Reason of extraction / commit message
> mfd: lubbock_cplds: add lubbock IO board
>
> Lubbock () board is the IO motherboard of the Intel PXA25x Development
> Platform, which supports the Lubbock pxa25x soc board.
>
> Historically, this support was in arch/arm/mach-pxa/lubbock.c. When
> gpio-pxa was moved to drivers/pxa, it became a driver, and its
> initialization and probing happened at postcore initcall. The lubbock
> code used to install the chained lubbock interrupt handler at init_irq()
> time.
>
> The consequence of the gpio-pxa change is that the installed chained irq
> handler lubbock_irq_handler() was overwritten in pxa_gpio_probe(_dt)(),
> removing :
> - the handler
> - the falling edge detection setting of GPIO0, which revealed the
> interrupt request from the lubbock IO board.
>
> As a fix, move the gpio0 chained handler setup to a place where we have
> the guarantee that pxa_gpio_probe() was called before, so that lubbock
> handler becomes the true IRQ chained handler of GPIO0, demuxing the
> lubbock IO board interrupts.
>
> This patch moves all that handling to a mfd driver. It's only purpose
> for the time being is the interrupt handling, but in the future it
> should encompass all the motherboard CPLDs handling :
> - leds
> - switches
> - hexleds
>
> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
>
> [2] Board description by Nicolas
>>> The Lubbock is an ancient development board (circa 2003) using a CPLD to
>>> multiplex a couple things on the board. I really doubt anyone would
>>> reprogram this CPLD at this point. So I'd treat it just like another
>>> interrupt controller + random peripherals that will never change. And
>>> yes, maybe a more appropriate name is needed.
>
> [3] Lee's position
>>> > I don't think this is correct either. CPLD handling would probably be
>>> > slightly less out of place in drivers/misc, but perhaps a new
>>> > subsystem for PLDs/CPLDs/FPGAs would be more appropriate
>>> > drivers/programmables or similar maybe.
>>> >
> ...
>>> > I'm pretty convinced that it doesn't belong in MFD now, but it doesn't
>>> > mean I'm going to leave you on the curb. I'd like to help you get it
>>> > into a better home.
>>> >
>>> > [...]
>>> > > Is not only a irqchip because, as explained at the bottom of the commit message,
>>> > > quoting myself :
>>> > > This patch moves all that handling to a mfd driver. It's only purpose
>>> > > for the time being is the interrupt handling, but in the future it
>>> > > should encompass all the motherboard CPLDs handling :
>>> > > - leds
>>> > > - switches
>>> > > - hexleds
>>> >
>>> > I had a conversation about this on IRC yesterday and some good
>>> > points/questions were posed. This is a difficult area, because you
>>> > can program these things to do whatever you like. Depending on the
>>> > 'intention' (and it is only an intention -- someone else can come
>>> > along and reprogram these devices on a whim), the CPLD code could live
>>> > anywhere. If you wanted to put watchdog functionality in there, then
>>> > there is an argument for it to live in drivers/watchdog, etc etc. So
>>> > just because the plan is to support a few (i.e. more than one) simple
>>> > devices, it doesn't necessarily mean that the handling should be done
>>> > in MFD.
>>> >
>>> > Yesterday I was asked "Are you wanting to restrict drivers in
>>> > drivers/mfd to those that make use of MFD_CORE functionality?". My
>>> > answer to that was "No, however; I only want devices which
>>> > _intrinsically_ operate in multiple subsystems", which these
>>> > programmables no not do.
>>> >
>>> > FYI, you're not on your own here. There is at least one of these
>>> > devices in the kernel already and upon a short inspection there
>>> > appears to be a number of Out-of-Tree (OoT) drivers out there which
>>> > will require a home in Mainline sooner or later.
>>> >
>
> [4] Whole patch
> https://lkml.org/lkml/2015/1/24/90
--
Robert
next prev parent reply other threads:[~2015-02-28 9:57 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-24 15:05 [PATCH v4 1/4] dt-bindings: mfd: add lubbock-cplds binding Robert Jarzmik
2015-01-24 15:05 ` Robert Jarzmik
2015-01-24 15:05 ` [PATCH v4 2/4] mfd: lubbock_cplds: add lubbock IO board Robert Jarzmik
2015-01-24 15:05 ` Robert Jarzmik
2015-01-24 15:05 ` Robert Jarzmik
2015-02-16 13:05 ` Lee Jones
2015-02-16 13:05 ` Lee Jones
2015-02-16 13:05 ` Lee Jones
2015-02-16 13:27 ` robert.jarzmik at free.fr
2015-02-16 13:27 ` robert.jarzmik
2015-02-16 16:27 ` Lee Jones
2015-02-16 16:27 ` Lee Jones
2015-02-16 22:14 ` Robert Jarzmik
2015-02-16 22:14 ` Robert Jarzmik
2015-02-17 7:43 ` Lee Jones
2015-02-17 7:43 ` Lee Jones
2015-02-17 17:38 ` Nicolas Pitre
2015-02-17 17:38 ` Nicolas Pitre
2015-02-18 8:07 ` Lee Jones
2015-02-18 8:07 ` Lee Jones
2015-02-20 16:02 ` Robert Jarzmik
2015-02-20 16:02 ` Robert Jarzmik
2015-02-28 9:57 ` Robert Jarzmik [this message]
2015-02-28 9:57 ` Robert Jarzmik
2015-02-28 15:11 ` Greg Kroah-Hartman
2015-02-28 15:11 ` Greg Kroah-Hartman
2015-02-28 15:29 ` Robert Jarzmik
2015-02-28 15:29 ` Robert Jarzmik
2015-03-25 14:07 ` Greg Kroah-Hartman
2015-03-25 14:07 ` Greg Kroah-Hartman
2015-03-26 21:38 ` Robert Jarzmik
2015-03-26 21:38 ` Robert Jarzmik
2015-03-26 21:38 ` Robert Jarzmik
2015-03-26 23:47 ` Greg Kroah-Hartman
2015-03-26 23:47 ` Greg Kroah-Hartman
2015-03-28 2:35 ` Arnd Bergmann
2015-03-28 2:35 ` Arnd Bergmann
2015-03-28 8:29 ` Robert Jarzmik
2015-03-28 8:29 ` Robert Jarzmik
2015-03-28 13:24 ` Arnd Bergmann
2015-03-28 13:24 ` Arnd Bergmann
2015-03-28 13:24 ` Arnd Bergmann
2015-01-24 15:05 ` [PATCH v4 3/4] ARM: pxa: lubbock: use new lubbock_cplds driver Robert Jarzmik
2015-01-24 15:05 ` Robert Jarzmik
2015-01-24 15:05 ` Robert Jarzmik
2015-01-24 15:05 ` [PATCH v4 4/4] MAINTAINERS: add entry for lubbock-cplds Robert Jarzmik
2015-01-24 15:05 ` Robert Jarzmik
2015-01-24 15:05 ` Robert Jarzmik
2015-02-10 18:41 ` [PATCH v4 1/4] dt-bindings: mfd: add lubbock-cplds binding Robert Jarzmik
2015-02-10 18:41 ` Robert Jarzmik
2015-02-10 18:41 ` Robert Jarzmik
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=87mw3y2wad.fsf@free.fr \
--to=robert.jarzmik@free.fr \
--cc=linux-arm-kernel@lists.infradead.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 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.