From: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
To: Shawn Guo <shawn.guo-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Cc: patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH v3 2/3] ARM: mxc: use ARCH_NR_GPIOS to define gpio number
Date: Thu, 7 Jul 2011 13:26:20 -0600 [thread overview]
Message-ID: <20110707192620.GK2824@ponder.secretlab.ca> (raw)
In-Reply-To: <20110707151331.GB12722-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
On Thu, Jul 07, 2011 at 11:13:32PM +0800, Shawn Guo wrote:
> On Thu, Jul 07, 2011 at 09:47:55AM +0200, Sascha Hauer wrote:
> > On Thu, Jul 07, 2011 at 12:37:42AM +0800, Shawn Guo wrote:
> > > The patch removes MXC_GPIO_IRQS and instead uses ARCH_NR_GPIOS to
> > > define gpio number. This change is need when we change mxc gpio
> > > driver to be device tree aware. When migrating the driver to device
> > > tree, pdev->id becomes unusable. It requires driver get gpio range
> > > from gpio core, which will dynamically allocates number from
> > > ARCH_NR_GPIOS to 0.
> > >
> > > As a bonus point, it removes lines of '#if' and make the code a
> > > little bit cleaner. The side effect is the waste of number. But
> > > this is not a point when we go single image.
> >
> > I'm not sure whether we really should depend on an externally defined
> > ARCH_NR_GPIOS. Someone might get the idea to change this to a lower
> > value. Maybe we should define this ourselves instead.
> >
> Good point. We should not depend on the externally defined one. But
> the reason in my mind is different from yours. Right now, i.mx50 gets
> 192 and i.mx6 gets 224 gpios. I do not see the point to lower the
> value (no lower than 224), since we will go single image soon. The
> thing concerning me is that someday we may have a soc coming out with
> more than 256 gpios. Then we have to override ARCH_NR_GPIOS with our
> own definition.
>
> Please take a look at the updated patch below. If it looks fine to
> you, I will resend the patch.
>
> 8<----
> From b9cc9f9161b6d5ebb57d52200c3673dd78138899 Mon Sep 17 00:00:00 2001
> From: Shawn Guo <shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> Date: Wed, 6 Jul 2011 21:11:01 +0800
> Subject: [PATCH] ARM: mxc: use ARCH_NR_GPIOS to define gpio number
>
> The patch removes MXC_GPIO_IRQS and instead uses ARCH_NR_GPIOS to
> define gpio number. This change is need when we change mxc gpio
> driver to be device tree aware. When migrating the driver to device
> tree, pdev->id becomes unusable. It requires driver get gpio range
> from gpio core, which will dynamically allocates number from
> ARCH_NR_GPIOS to 0.
>
> As a bonus point, it removes lines of '#if' and make the code a
> little bit cleaner.
>
> It also cleans a couple of unnecessary headers in mach/gpio.h.
>
> Signed-off-by: Shawn Guo <shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> Cc: Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> Cc: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
> ---
> arch/arm/plat-mxc/include/mach/gpio.h | 9 ++++++---
> arch/arm/plat-mxc/include/mach/irqs.h | 21 +++------------------
> 2 files changed, 9 insertions(+), 21 deletions(-)
>
> diff --git a/arch/arm/plat-mxc/include/mach/gpio.h b/arch/arm/plat-mxc/include/mach/gpio.h
> index 31c820c..f3b26f7 100644
> --- a/arch/arm/plat-mxc/include/mach/gpio.h
> +++ b/arch/arm/plat-mxc/include/mach/gpio.h
> @@ -19,10 +19,13 @@
> #ifndef __ASM_ARCH_MXC_GPIO_H__
> #define __ASM_ARCH_MXC_GPIO_H__
>
> -#include <linux/spinlock.h>
> -#include <mach/hardware.h>
> -#include <asm-generic/gpio.h>
> +/*
> + * Define our own ARCH_NR_GPIOS here to override the one
> + * externally defined in asm-generic/gpio.h
> + */
> +#define ARCH_NR_GPIOS 224
No, don't do this. It will just make things harder when we go
multiplatform. Leave it for now and it can be fixed when it because
actually broken (instead of theoretically).
Your original patch was fine.
g.
>
> +#include <asm-generic/gpio.h>
>
> /* There's a off-by-one betweem the gpio bank number and the gpiochip */
> /* range e.g. GPIO_1_5 is gpio 5 under linux */
> diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h
> index 35c89bc..62228f1 100644
> --- a/arch/arm/plat-mxc/include/mach/irqs.h
> +++ b/arch/arm/plat-mxc/include/mach/irqs.h
> @@ -11,6 +11,8 @@
> #ifndef __ASM_ARCH_MXC_IRQS_H__
> #define __ASM_ARCH_MXC_IRQS_H__
>
> +#include <mach/gpio.h>
> +
> /*
> * SoCs with TZIC interrupt controller have 128 IRQs, those with AVIC have 64
> */
> @@ -22,30 +24,13 @@
>
> #define MXC_GPIO_IRQ_START MXC_INTERNAL_IRQS
>
> -/* these are ordered by size to support multi-SoC kernels */
> -#if defined CONFIG_SOC_IMX53
> -#define MXC_GPIO_IRQS (32 * 7)
> -#elif defined CONFIG_ARCH_MX2
> -#define MXC_GPIO_IRQS (32 * 6)
> -#elif defined CONFIG_SOC_IMX50
> -#define MXC_GPIO_IRQS (32 * 6)
> -#elif defined CONFIG_ARCH_MX1
> -#define MXC_GPIO_IRQS (32 * 4)
> -#elif defined CONFIG_ARCH_MX25
> -#define MXC_GPIO_IRQS (32 * 4)
> -#elif defined CONFIG_SOC_IMX51
> -#define MXC_GPIO_IRQS (32 * 4)
> -#elif defined CONFIG_ARCH_MX3
> -#define MXC_GPIO_IRQS (32 * 3)
> -#endif
> -
> /*
> * The next 16 interrupts are for board specific purposes. Since
> * the kernel can only run on one machine at a time, we can re-use
> * these. If you need more, increase MXC_BOARD_IRQS, but keep it
> * within sensible limits.
> */
> -#define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + MXC_GPIO_IRQS)
> +#define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + ARCH_NR_GPIOS)
>
> #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1
> #define MXC_BOARD_IRQS 80
>
> --
> Regards,
> Shawn
>
next prev parent reply other threads:[~2011-07-07 19:26 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-06 16:37 [PATCH v3 0/3] Add device tree probe for imx/mxc gpio Shawn Guo
[not found] ` <1309970263-13239-1-git-send-email-shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-07-06 16:37 ` [PATCH v3 1/3] gpio/mxc: get rid of the uses of cpu_is_mx() Shawn Guo
2011-07-06 16:37 ` [PATCH v3 2/3] ARM: mxc: use ARCH_NR_GPIOS to define gpio number Shawn Guo
2011-07-07 7:47 ` Sascha Hauer
2011-07-07 15:13 ` Shawn Guo
[not found] ` <20110707151331.GB12722-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-07-07 19:26 ` Grant Likely [this message]
2011-07-07 19:24 ` Grant Likely
2011-07-06 16:37 ` [PATCH v3 3/3] gpio/mxc: add device tree probe support Shawn Guo
2011-07-07 19:27 ` [PATCH v3 0/3] Add device tree probe for imx/mxc gpio Grant Likely
2011-07-08 10:36 ` Sascha Hauer
2011-07-08 18:38 ` Grant Likely
2011-07-09 6:30 ` Shawn Guo
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=20110707192620.GK2824@ponder.secretlab.ca \
--to=grant.likely-s3s/wqlpoipyb63q8fvjnq@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=shawn.guo-KZfg59tc24xl57MIdRCFDg@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).