From: David Brownell <david-b@pacbell.net>
To: "pHilipp Zabel" <philipp.zabel@gmail.com>
Cc: "Andrew Morton" <akpm@osdl.org>,
"Linux Kernel list" <linux-kernel@vger.kernel.org>,
"Andrew Victor" <andrew@sanpeople.com>,
"Bill Gatliff" <bgat@billgatliff.com>,
"Haavard Skinnemoen" <hskinnemoen@atmel.com>,
jamey.hicks@hp.com, "Kevin Hilman" <khilman@mvista.com>,
"Nicolas Pitre" <nico@cam.org>,
"Russell King" <rmk@arm.linux.org.uk>,
"Tony Lindgren" <tony@atomide.com>
Subject: Re: [patch 2.6.20-rc1 5/6] SA1100 GPIO wrappers
Date: Fri, 29 Dec 2006 18:21:43 -0800 [thread overview]
Message-ID: <200612291821.44675.david-b@pacbell.net> (raw)
In-Reply-To: <74d0deb30612212316i12090ca0hfe8524a80f63475a@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 35 bytes --]
Here's a version that compiles ...
[-- Attachment #2: gen-gpio-sa1100.patch --]
[-- Type: text/x-diff, Size: 3721 bytes --]
From: Philipp Zabel <philipp.zabel@gmail.com>
Arch-neutral GPIO calls for PXA.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Index: pxa/include/asm-arm/arch-sa1100/gpio.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ pxa/include/asm-arm/arch-sa1100/gpio.h 2006-12-29 18:21:00.000000000 -0800
@@ -0,0 +1,100 @@
+/*
+ * linux/include/asm-arm/arch-sa1100/gpio.h
+ *
+ * SA1100 GPIO wrappers for arch-neutral GPIO calls
+ *
+ * Written by Philipp Zabel <philipp.zabel@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#ifndef __ASM_ARCH_SA1100_GPIO_H
+#define __ASM_ARCH_SA1100_GPIO_H
+
+#include <asm/hardware.h>
+#include <asm/arch/irqs.h>
+
+#include <asm/errno.h>
+
+static inline int gpio_request(unsigned gpio, const char *label)
+{
+ return 0;
+}
+
+static inline void gpio_free(unsigned gpio)
+{
+ return;
+}
+
+static inline int gpio_direction_input(unsigned gpio)
+{
+ if (gpio > GPIO_MAX)
+ return -EINVAL;
+ GPDR = (GPDR_In << gpio);
+ return 0;
+}
+
+static inline int gpio_direction_output(unsigned gpio)
+{
+ if (gpio > GPIO_MAX)
+ return -EINVAL;
+ GPDR = (GPDR_Out << gpio);
+ return 0;
+}
+
+extern int sa1100_gpio_get_value(unsigned gpio);
+extern void sa1100_gpio_set_value(unsigned gpio, int value);
+
+static inline int __gpio_get_value(unsigned gpio)
+{
+ return GPLR & GPIO_GPIO(gpio);
+}
+
+#define gpio_get_value(gpio) \
+ (__builtin_constant_p(gpio) \
+ ? __gpio_get_value(gpio) \
+ : sa1100_gpio_get_value(gpio))
+
+static inline void __gpio_set_value(unsigned gpio, int value)
+{
+ if (value)
+ GPSR = GPIO_GPIO(gpio);
+ else
+ GPCR = GPIO_GPIO(gpio);
+}
+
+#define gpio_set_value(gpio,value) \
+ (__builtin_constant_p(gpio) \
+ ? __gpio_set_value(gpio, value) \
+ : sa1100_gpio_set_value(gpio, value))
+
+static inline unsigned gpio_to_irq(unsigned gpio)
+{
+ if (gpio < 11)
+ return IRQ_GPIO0 + gpio;
+ else
+ return IRQ_GPIO11 - 11 + gpio;
+}
+
+static inline unsigned irq_to_gpio(unsigned irq)
+{
+ if (irq < IRQ_GPIO11_27)
+ return irq - IRQ_GPIO0;
+ else
+ return irq - IRQ_GPIO11 + 11;
+}
+
+#endif
Index: pxa/arch/arm/mach-sa1100/generic.c
===================================================================
--- pxa.orig/arch/arm/mach-sa1100/generic.c 2006-12-10 01:30:42.000000000 -0800
+++ pxa/arch/arm/mach-sa1100/generic.c 2006-12-29 17:46:47.000000000 -0800
@@ -28,6 +28,8 @@
#include <asm/mach/flash.h>
#include <asm/irq.h>
+#include <asm/arch/gpio.h>
+
#include "generic.h"
#define NR_FREQS 16
@@ -139,6 +141,26 @@ unsigned long long sched_clock(void)
}
/*
+ * Return GPIO level
+ */
+int sa1100_gpio_get_value(unsigned gpio)
+{
+ return __gpio_get_value(gpio);
+}
+
+EXPORT_SYMBOL(sa1100_gpio_get_value);
+
+/*
+ * Set output GPIO level
+ */
+void sa1100_gpio_set_value(unsigned gpio, int value)
+{
+ __gpio_set_value(gpio, value);
+}
+
+EXPORT_SYMBOL(sa1100_gpio_set_value);
+
+/*
* Default power-off for SA1100
*/
static void sa1100_power_off(void)
next prev parent reply other threads:[~2006-12-30 2:21 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-11 23:41 [patch/rfc 2.6.19-rc5] arch-neutral GPIO calls David Brownell
2006-11-12 1:27 ` H. Peter Anvin
2006-11-12 3:04 ` David Brownell
2006-11-12 3:15 ` H. Peter Anvin
2006-11-13 3:30 ` Bill Gatliff
2006-11-13 17:38 ` Paul Mundt
2006-11-13 17:56 ` Thiago Galesi
2006-11-13 19:25 ` David Brownell
2006-11-13 19:50 ` Bill Gatliff
2006-11-13 18:19 ` Bill Gatliff
2006-11-13 18:38 ` Paul Mundt
2006-11-13 19:29 ` Bill Gatliff
2006-11-13 20:15 ` Paul Mundt
2006-11-20 21:49 ` David Brownell
2006-11-21 3:44 ` Bill Gatliff
2006-11-21 4:45 ` David Brownell
2006-11-21 5:09 ` Bill Gatliff
2006-11-21 5:35 ` David Brownell
2006-11-21 6:09 ` Paul Mundt
2006-11-21 18:13 ` David Brownell
2006-11-22 3:36 ` Bill Gatliff
2006-11-22 3:55 ` Paul Mundt
2006-11-22 4:45 ` [Bulk] " David Brownell
2006-11-22 4:47 ` Bill Gatliff
2006-11-21 15:57 ` Bill Gatliff
2006-11-23 0:40 ` David Brownell
2006-11-30 6:57 ` pHilipp Zabel
2006-11-30 7:29 ` pHilipp Zabel
2006-11-30 22:24 ` David Brownell
2006-11-20 22:15 ` David Brownell
2006-11-21 2:56 ` Bill Gatliff
2006-11-13 20:00 ` David Brownell
2006-11-13 21:30 ` Paul Mundt
2006-11-14 3:21 ` David Brownell
2006-11-13 19:21 ` David Brownell
2006-11-13 19:43 ` Bill Gatliff
2006-11-13 20:15 ` David Brownell
2006-11-13 20:26 ` Bill Gatliff
2006-11-13 20:53 ` David Brownell
2006-11-13 20:58 ` Bill Gatliff
2006-11-13 20:29 ` Bill Gatliff
2006-11-16 14:54 ` [RFC/PATCH] arch-neutral GPIO calls: AVR32 implementation Haavard Skinnemoen
2006-11-20 21:47 ` David Brownell
2006-11-21 3:11 ` Bill Gatliff
2006-11-21 5:06 ` David Brownell
2006-11-21 5:51 ` Bill Gatliff
2006-11-21 18:19 ` David Brownell
2006-11-21 9:11 ` Haavard Skinnemoen
2006-11-21 19:03 ` David Brownell
2006-11-28 12:36 ` [RFC/PATCH] arch-neutral GPIO calls: AVR32 implementation [take 2] Haavard Skinnemoen
2006-11-30 19:05 ` David Brownell
2006-12-01 9:51 ` Haavard Skinnemoen
2006-12-20 21:04 ` [patch 2.6.20-rc1 0/6] arch-neutral GPIO calls David Brownell
2006-12-20 21:08 ` [patch 2.6.20-rc1 1/6] GPIO core David Brownell
2006-12-27 17:49 ` Pavel Machek
2006-12-28 22:05 ` David Brownell
2006-12-29 0:27 ` Pavel Machek
2006-12-30 1:18 ` David Brownell
2007-01-01 20:55 ` Pavel Machek
2007-01-01 21:27 ` David Brownell
2007-01-02 14:18 ` Pavel Machek
2006-12-20 21:09 ` [patch 2.6.20-rc1 2/6] OMAP GPIO wrappers David Brownell
2006-12-20 21:11 ` [patch 2.6.20-rc1 3/6] AT91 " David Brownell
2006-12-21 6:10 ` Andrew Morton
2006-12-21 6:45 ` David Brownell
2006-12-20 21:12 ` [patch 2.6.20-rc1 4/6] PXA " David Brownell
2006-12-21 6:12 ` Andrew Morton
2006-12-21 6:44 ` David Brownell
2006-12-21 14:27 ` Nicolas Pitre
2006-12-21 15:03 ` pHilipp Zabel
2006-12-21 17:25 ` Nicolas Pitre
2006-12-21 19:32 ` pHilipp Zabel
2006-12-21 20:10 ` Nicolas Pitre
2006-12-21 20:32 ` Bill Gatliff
2006-12-22 6:53 ` pHilipp Zabel
2006-12-28 20:47 ` David Brownell
2006-12-30 2:15 ` Nicolas Pitre
2006-12-30 2:38 ` David Brownell
2007-01-01 19:43 ` David Brownell
2006-12-30 1:13 ` David Brownell
2006-12-21 19:25 ` David Brownell
2006-12-27 17:53 ` Pavel Machek
2006-12-28 20:48 ` David Brownell
2006-12-28 20:50 ` Pavel Machek
2006-12-28 20:53 ` Pavel Machek
2006-12-20 21:13 ` [patch 2.6.20-rc1 5/6] SA1100 " David Brownell
2006-12-21 6:13 ` Andrew Morton
2006-12-22 7:16 ` pHilipp Zabel
2006-12-22 15:05 ` Nicolas Pitre
2006-12-30 2:21 ` David Brownell [this message]
2006-12-30 3:15 ` Nicolas Pitre
2006-12-30 6:01 ` David Brownell
2006-12-30 13:59 ` pHilipp Zabel
2006-12-30 15:08 ` Russell King
2006-12-23 11:37 ` Russell King
2006-12-23 20:39 ` David Brownell
2006-12-27 18:24 ` Pavel Machek
2006-12-20 21:14 ` [patch 2.6.20-rc1 6/6] S3C2410 " David Brownell
2006-12-21 10:33 ` Arnaud Patard
2006-12-21 15:29 ` pHilipp Zabel
2006-12-23 11:40 ` Russell King
2006-12-20 23:30 ` [patch 2.6.20-rc1 0/6] arch-neutral GPIO calls Håvard Skinnemoen
2006-12-20 23:46 ` David Brownell
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=200612291821.44675.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=akpm@osdl.org \
--cc=andrew@sanpeople.com \
--cc=bgat@billgatliff.com \
--cc=hskinnemoen@atmel.com \
--cc=jamey.hicks@hp.com \
--cc=khilman@mvista.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nico@cam.org \
--cc=philipp.zabel@gmail.com \
--cc=rmk@arm.linux.org.uk \
--cc=tony@atomide.com \
/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