linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: randy.dunlap@oracle.com (Randy Dunlap)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC][PATCH 01/10] arm: mxc: New interrupt controller (TZIC) for i.MX5 family
Date: Fri, 4 Dec 2009 09:01:39 -0800	[thread overview]
Message-ID: <20091204090139.ff60024c.randy.dunlap@oracle.com> (raw)
In-Reply-To: <e99e70e2a619693064130a747b6ee3a93273337b.1259893118.git.amit.kucheria@canonical.com>

On Fri,  4 Dec 2009 04:47:01 +0200 Amit Kucheria wrote:

> Freescale i.MX51 processor uses a different interrupt controller. Add the
> driver and fix the Makefile to account for it.
> 
> Signed-off-by: Amit Kucheria <amit.kucheria@canonical.com>
> ---
>  arch/arm/plat-mxc/Kconfig  |    4 +
>  arch/arm/plat-mxc/Makefile |    9 ++-
>  arch/arm/plat-mxc/tzic.c   |  180 ++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 192 insertions(+), 1 deletions(-)
>  create mode 100644 arch/arm/plat-mxc/tzic.c
> 
> diff --git a/arch/arm/plat-mxc/tzic.c b/arch/arm/plat-mxc/tzic.c
> new file mode 100644
> index 0000000..3af8fc6
> --- /dev/null
> +++ b/arch/arm/plat-mxc/tzic.c
> @@ -0,0 +1,180 @@
> +/*
> + * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
> + *
> + * The code contained herein is licensed under the GNU General Public
> + * License. You may obtain a copy of the GNU General Public License
> + * Version 2 or later at the following locations:
> + *
> + * http://www.opensource.org/licenses/gpl-license.html
> + * http://www.gnu.org/copyleft/gpl.html
> + */
> +
...
> +
> +/*!
> + * Disable interrupt number "irq" in the TZIC
> + *
> + * @param  irq          interrupt source number
> + */

Hi,
What processes these function comments (if anything does)?


> +static void mxc_mask_irq(unsigned int irq)
> +{
> +	int index, off;
> +
> +	index = irq >> 5;
> +	off = irq & 0x1F;
> +	__raw_writel(1 << off, tzic_base + TZIC_ENCLEAR0 + (index << 2));
> +}
> +
> +/*!
> + * Enable interrupt number "irq" in the TZIC
> + *
> + * @param  irq          interrupt source number
> + */
> +static void mxc_unmask_irq(unsigned int irq)
> +{
> +	int index, off;
> +
> +	index = irq >> 5;
> +	off = irq & 0x1F;
> +	__raw_writel(1 << off, tzic_base + TZIC_ENSET0 + (index << 2));
> +}
> +
> +static unsigned int wakeup_intr[4];
> +
> +/*
> + * Set interrupt number "irq" in the TZIC as a wake-up source.
> + *
> + * @param  irq          interrupt source number
> + * @param  enable       enable as wake-up if equal to non-zero
> + * 			disble as wake-up if equal to zero
> + *
> + * @return       This function returns 0 on success.
> + */
> +static int mxc_set_wake_irq(unsigned int irq, unsigned int enable)
> +{
> +	unsigned int index, off;
> +
> +	index = irq >> 5;
> +	off = irq & 0x1F;
> +
> +	if (index > 3)
> +		return -1;
> +
> +	if (enable)
> +		wakeup_intr[index] |= (1 << off);
> +	else
> +		wakeup_intr[index] &= ~(1 << off);
> +
> +	return 0;
> +}
> +
> +static struct irq_chip mxc_tzic_chip = {
> +	.name = "MXC_TZIC",
> +	.ack = mxc_mask_irq,
> +	.mask = mxc_mask_irq,
> +	.unmask = mxc_unmask_irq,
> +	.set_wake = mxc_set_wake_irq,
> +};
> +
...
> +
> +/*
> + * enable wakeup interrupt
> + *
> + * @param is_idle		1 if called in idle loop (enset registers);
> + *				0 to be used when called from low power entry
> + * @return			0 if successful; non-zero otherwise
> + *
> + */
> +int tzic_enable_wake(int is_idle)
> +{
> +	unsigned int i, v;
> +
> +	__raw_writel(1, tzic_base + TZIC_DSMINT);
> +	if (unlikely(__raw_readl(tzic_base + TZIC_DSMINT) == 0))
> +		return -EAGAIN;
> +
> +	if (likely(is_idle)) {
> +		for (i = 0; i < 4; i++) {
> +			v = __raw_readl(tzic_base + TZIC_ENSET0 + i * 4);
> +			__raw_writel(v, tzic_base + TZIC_WAKEUP0 + i * 4);
> +		}
> +	} else {
> +		for (i = 0; i < 4; i++) {
> +			v = wakeup_intr[i];
> +			__raw_writel(v, tzic_base + TZIC_WAKEUP0 + i * 4);
> +		}
> +	}
> +	return 0;
> +}
> -- 

thanks,
---
~Randy

  parent reply	other threads:[~2009-12-04 17:01 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-04  2:47 [RFC][PATCH 00/10] Base support for Freescale i.MX51 SoC platform Amit Kucheria
2009-12-04  2:47 ` [RFC][PATCH 01/10] arm: mxc: New interrupt controller (TZIC) for i.MX5 family Amit Kucheria
2009-12-04  2:47   ` [RFC][PATCH 02/10] arm: mxc: base support for Freescale i.MX51 processor Amit Kucheria
2009-12-04  2:47     ` [RFC][PATCH 03/10] arm: mxc: changes to common plat-mxc code to add support for i.MX5 Amit Kucheria
2009-12-04  2:47       ` [RFC][PATCH 04/10] arm: mxc: Fix Drive Strength Field in the IOMUX controller Amit Kucheria
2009-12-04  2:47         ` [RFC][PATCH 05/10] mxc: Add board support for the i.MX51 babbage board Amit Kucheria
2009-12-04  2:47           ` [RFC][PATCH 06/10] fec: fix uninitialized rx buffer usage Amit Kucheria
2009-12-04  2:47             ` [RFC][PATCH 07/10] fec: Add LAN8700 phy support Amit Kucheria
2009-12-04  2:47               ` [RFC][PATCH 08/10] arm: mxc: Add IO multiplexing support for FEC Amit Kucheria
2009-12-04  2:47                 ` [RFC][PATCH 09/10] fec: Add ARCH_MX5 as a dependency Amit Kucheria
2009-12-04  2:47                   ` [RFC][PATCH 10/10] arm: mxc: Add imx51_defconfig Amit Kucheria
2009-12-04 11:30                 ` [RFC][PATCH 08/10] arm: mxc: Add IO multiplexing support for FEC Sascha Hauer
2009-12-04 11:15               ` [RFC][PATCH 07/10] fec: Add LAN8700 phy support Sascha Hauer
2009-12-04 11:13             ` [RFC][PATCH 06/10] fec: fix uninitialized rx buffer usage Sascha Hauer
2009-12-08  4:31               ` Herring Robert-RA7055
2009-12-04 10:25           ` [RFC][PATCH 05/10] mxc: Add board support for the i.MX51 babbage board Sascha Hauer
2009-12-04 11:03           ` Sascha Hauer
2009-12-10 10:31           ` Russell King - ARM Linux
2009-12-04  9:38         ` [RFC][PATCH 04/10] arm: mxc: Fix Drive Strength Field in the IOMUX controller Uwe Kleine-König
2009-12-04 11:28           ` Sascha Hauer
2009-12-04  3:12       ` [RFC][PATCH 03/10] arm: mxc: changes to common plat-mxc code to add support for i.MX5 Herring Robert-RA7055
2009-12-04  8:34         ` Sascha Hauer
2009-12-04 10:31           ` Amit Kucheria
2009-12-04 10:59             ` Sascha Hauer
2009-12-07 17:17               ` [RFC][PATCH 03/10] arm: mxc: changes to common plat-mxc codeto " Herring Robert-RA7055
2009-12-07 20:03                 ` Robert Schwebel
2009-12-07 21:21                   ` [RFC][PATCH 03/10] arm: mxc: changes to common plat-mxc codetoadd " Herring Robert-RA7055
2009-12-07 18:06           ` [RFC][PATCH 03/10] arm: mxc: changes to common plat-mxc codeto add " Herring Robert-RA7055
2009-12-04  4:05       ` [RFC][PATCH 03/10] arm: mxc: changes to common plat-mxc code to " Andres Salomon
2009-12-04 11:16         ` Amit Kucheria
2009-12-04 10:43       ` Russell King - ARM Linux
2009-12-04  9:41     ` [RFC][PATCH 02/10] arm: mxc: base support for Freescale i.MX51 processor Uwe Kleine-König
2009-12-04 10:24       ` Amit Kucheria
2009-12-04 10:38     ` Russell King - ARM Linux
2009-12-04  9:36   ` [RFC][PATCH 01/10] arm: mxc: New interrupt controller (TZIC) for i.MX5 family Uwe Kleine-König
2009-12-04 10:38   ` Russell King - ARM Linux
2009-12-04 17:01   ` Randy Dunlap [this message]
2009-12-04 20:30     ` Amit Kucheria

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=20091204090139.ff60024c.randy.dunlap@oracle.com \
    --to=randy.dunlap@oracle.com \
    --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).