linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: ben-linux@fluff.org (Ben Dooks)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 10/11] ARM: S5PC100: use common plat-s5p external interrupt code
Date: Wed, 19 May 2010 05:02:12 +0100	[thread overview]
Message-ID: <20100519040212.GP26401@trinity.fluff.org> (raw)
In-Reply-To: <1274179129-14659-11-git-send-email-m.szyprowski@samsung.com>

On Tue, May 18, 2010 at 12:38:48PM +0200, Marek Szyprowski wrote:
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>  arch/arm/mach-s5pc100/Kconfig                  |    1 +
>  arch/arm/mach-s5pc100/gpiolib.c                |    3 +-
>  arch/arm/mach-s5pc100/include/mach/irqs.h      |   15 ++++++++--
>  arch/arm/mach-s5pc100/include/mach/regs-gpio.h |   36 ++++++++++++++---------
>  4 files changed, 36 insertions(+), 19 deletions(-)
> 
> diff --git a/arch/arm/mach-s5pc100/Kconfig b/arch/arm/mach-s5pc100/Kconfig
> index fe1216b..2eb9497 100644
> --- a/arch/arm/mach-s5pc100/Kconfig
> +++ b/arch/arm/mach-s5pc100/Kconfig
> @@ -10,6 +10,7 @@ if ARCH_S5PC100
>  config CPU_S5PC100
>  	bool
>  	select PLAT_S5P
> +	select S5P_EXT_INT
>  	help
>  	  Enable S5PC100 CPU support
>  
> diff --git a/arch/arm/mach-s5pc100/gpiolib.c b/arch/arm/mach-s5pc100/gpiolib.c
> index 88dd913..0fab7f2 100644
> --- a/arch/arm/mach-s5pc100/gpiolib.c
> +++ b/arch/arm/mach-s5pc100/gpiolib.c
> @@ -61,7 +61,6 @@
>   * L3	8	4Bit	None
>   */
>  
> -#if 0
>  static int s5pc100_gpiolib_to_irq(struct gpio_chip *chip, unsigned int offset)
>  {
>  	return S3C_IRQ_GPIO(chip->base + offset);
> @@ -85,7 +84,7 @@ static int s5pc100_gpiolib_to_eint(struct gpio_chip *chip, unsigned int offset)
>  		return IRQ_EINT(24 + offset);
>  	return -EINVAL;
>  }
> -#endif
> +
>  static struct s3c_gpio_cfg gpio_cfg = {
>  	.set_config	= s3c_gpio_setcfg_s3c64xx_4bit,
>  	.set_pull	= s3c_gpio_setpull_updown,
> diff --git a/arch/arm/mach-s5pc100/include/mach/irqs.h b/arch/arm/mach-s5pc100/include/mach/irqs.h
> index 84c74ac..f26c4d9 100644
> --- a/arch/arm/mach-s5pc100/include/mach/irqs.h
> +++ b/arch/arm/mach-s5pc100/include/mach/irqs.h
> @@ -97,10 +97,19 @@
>  #define IRQ_SDMFIQ		S5P_IRQ_VIC2(31)
>  #define IRQ_VIC_END		S5P_IRQ_VIC2(31)
>  
> -#define S5P_IRQ_EINT_BASE	(IRQ_VIC_END + 1)
> +#define S5P_EINT_16_31_BASE	(IRQ_VIC_END + 1)
>  
> -#define IRQ_EINT(x)             ((x) < 16 ? S5P_IRQ_VIC0(x) : \
> -					(S5P_IRQ_EINT_BASE + (x)-16))
> +#define S3C_IRQ_EINT_BASE	(IRQ_VIC_END + 1)

we seem to have this and S5P_EINT_16_31_BASE? Let's use just the one.

> +#define EINT_MODE		S3C_GPIO_SFN(0x2)
> +
> +#define IRQ_EINT(x)		((x) < 16 ? ((x) + S5P_IRQ_VIC0(0)) \
> +					: ((x) + S5P_EINT_16_31_BASE))

ok, could we put this in arch/arm/plat-s5p/include/plat/irqs.h and
just have the per-platform files defining the base?

> +#define EINT_GPIO_0(x)		S5PC100_GPH0(x)
> +#define EINT_GPIO_1(x)		S5PC100_GPH1(x)
> +#define EINT_GPIO_2(x)		S5PC100_GPH2(x)
> +#define EINT_GPIO_3(x)		S5PC100_GPH3(x)
>  
>  #define S3C_IRQ_GPIO_BASE	(IRQ_EINT(31) + 1)
>  #define S3C_IRQ_GPIO(x)		(S3C_IRQ_GPIO_BASE + (x))
> diff --git a/arch/arm/mach-s5pc100/include/mach/regs-gpio.h b/arch/arm/mach-s5pc100/include/mach/regs-gpio.h
> index cd6200a..57a884f 100644
> --- a/arch/arm/mach-s5pc100/include/mach/regs-gpio.h
> +++ b/arch/arm/mach-s5pc100/include/mach/regs-gpio.h
> @@ -47,24 +47,32 @@
>  #define S5PC100_GPL2_BASE	(S5PC100_GPIO_BASE + 0x0360)
>  #define S5PC100_GPL3_BASE	(S5PC100_GPIO_BASE + 0x0380)
>  #define S5PC100_GPL4_BASE	(S5PC100_GPIO_BASE + 0x03A0)
> -#define S5PC100_EINT_BASE	(S5PC100_GPIO_BASE + 0x0E00)
>  
> -#define S5PC100_UHOST		(S5PC100_GPIO_BASE + 0x0B68)
> -#define S5PC100_PDNEN		(S5PC100_GPIO_BASE + 0x0F80)
> +#define S5PC100_EINT30CON		(S5PC100_GPIO_BASE + 0xE00)
> +#define S5P_EINT_CON(x)			(S5PC100_EINT30CON + ((x) * 0x4))
>  
> -/* PDNEN */
> -#define S5PC100_PDNEN_CFG_PDNEN	(1 << 1)
> -#define S5PC100_PDNEN_CFG_AUTO	(0 << 1)
> -#define S5PC100_PDNEN_POWERDOWN	(1 << 0)
> -#define S5PC100_PDNEN_NORMAL	(0 << 0)
> +#define S5PC100_EINT30FLTCON0		(S5PC100_GPIO_BASE + 0xE80)
> +#define S5P_EINT_FLTCON(x)		(S5PC100_EINT30FLTCON0 + ((x) * 0x4))
>  
> -/* Common part */
> -/* External interrupt base is same at both s5pc100 and s5pc110 */
> -#define S5P_EINT_BASE			(S5PC100_EINT_BASE)
> +#define S5PC100_EINT30MASK		(S5PC100_GPIO_BASE + 0xF00)
> +#define S5P_EINT_MASK(x)		(S5PC100_EINT30MASK + ((x) * 0x4))
>  
> -#define S5PC100_GPx_INPUT(__gpio)	(0x0 << ((__gpio) * 4))
> -#define S5PC100_GPx_OUTPUT(__gpio)	(0x1 << ((__gpio) * 4))
> -#define S5PC100_GPx_CONMASK(__gpio)	(0xf << ((__gpio) * 4))
> +#define S5PC100_EINT30PEND		(S5PC100_GPIO_BASE + 0xF40)
> +#define S5P_EINT_PEND(x)		(S5PC100_EINT30PEND + ((x) * 0x4))
> +
> +#define eint_offset(irq)	((irq) < IRQ_EINT16_31 ? ((irq) - IRQ_EINT(0)) \
> +						: ((irq) - S5P_EINT_16_31_BASE))
> +
> +#define EINT_REG_NR(x)			(eint_offset(x) >> 3)
> +
> +#define eint_irq_to_bit(irq)		(1 << (eint_offset(irq) & 0x7))
> +
> +/* values for S5P_EXTINT0 */
> +#define S5P_EXTINT_LOWLEV		(0x00)
> +#define S5P_EXTINT_HILEV		(0x01)
> +#define S5P_EXTINT_FALLEDGE		(0x02)
> +#define S5P_EXTINT_RISEEDGE		(0x03)
> +#define S5P_EXTINT_BOTHEDGE		(0x04)
>  
>  #endif /* __ASM_MACH_S5PC100_REGS_GPIO_H */
>  
> -- 
> 1.6.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
-- 
Ben

Q:      What's a light-year?
A:      One-third less calories than a regular year.

  reply	other threads:[~2010-05-19  4:02 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-18 10:38 No subject Marek Szyprowski
2010-05-18 10:38 ` [PATCH 01/11] drivers: serial: S5PC100 serial driver cleanup Marek Szyprowski
2010-05-18 10:38 ` [PATCH 02/11] ARM: S5PC100: Use common functions for gpiolib implementation Marek Szyprowski
2010-05-18 10:38 ` [PATCH 03/11] ARM: S5PC100: Move gpio support from plat-s5pc1xx to mach-s5pc100 Marek Szyprowski
2010-05-18 10:38 ` [PATCH 04/11] ARM: S5PC100: gpio.h cleanup Marek Szyprowski
2010-05-18 10:38 ` [PATCH 05/11] ARM: S5PC100: Move frame buffer helpers from plat-s5pc1xx to mach-s5pc100 Marek Szyprowski
2010-05-18 10:38 ` [PATCH 06/11] ARM: S5PC100: Move i2c " Marek Szyprowski
2010-05-18 10:38 ` [PATCH 07/11] ARM: S5PC100: Move sdhci " Marek Szyprowski
2010-05-18 10:38 ` [PATCH 08/11] ARM: Samsung: move S5PC100 support from plat-s5pc1xx to plat-s5p framework Marek Szyprowski
2010-05-18 10:38 ` [PATCH 09/11] ARM: S5PC100: Add support for gpio interrupt Marek Szyprowski
2010-05-18 10:38 ` [PATCH 10/11] ARM: S5PC100: use common plat-s5p external interrupt code Marek Szyprowski
2010-05-19  4:02   ` Ben Dooks [this message]
2010-05-19  5:29     ` Marek Szyprowski
2010-05-19  5:58       ` Ben Dooks
2010-05-19  6:46       ` Ben Dooks
2010-05-18 10:38 ` [PATCH 11/11] ARM: remove obsolete plat-s5pc1xx directory Marek Szyprowski
2010-05-19  1:02 ` Kukjin Kim
2010-05-19  2:24 ` your mail Ben Dooks

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=20100519040212.GP26401@trinity.fluff.org \
    --to=ben-linux@fluff.org \
    --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 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).