Module Name: src
Committed By: khorben
Date: Fri May 10 01:20:05 UTC 2013
Modified Files:
src/sys/dev/gpio [khorben-n900]: files.gpio gpio.c gpiovar.h
Log Message:
Added a locator for interrupts on the GPIO bus. This allows ARM devices
(like the Nokia N900) to register interrupt handlers as specified within
their respective kernel configuration file.
XXX This change is not adequate because intr_establish() is a MD interface,
so it will have to be re-designed before merging to the main tree.
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.10.18.1 src/sys/dev/gpio/files.gpio
cvs rdiff -u -r1.51 -r1.51.6.1 src/sys/dev/gpio/gpio.c
cvs rdiff -u -r1.15 -r1.15.18.1 src/sys/dev/gpio/gpiovar.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/gpio/files.gpio
diff -u src/sys/dev/gpio/files.gpio:1.10 src/sys/dev/gpio/files.gpio:1.10.18.1
--- src/sys/dev/gpio/files.gpio:1.10 Sun Nov 13 12:33:00 2011
+++ src/sys/dev/gpio/files.gpio Fri May 10 01:20:05 2013
@@ -1,6 +1,6 @@
-# $NetBSD: files.gpio,v 1.10 2011/11/13 12:33:00 mbalmer Exp $
+# $NetBSD: files.gpio,v 1.10.18.1 2013/05/10 01:20:05 khorben Exp $
-define gpio {[offset = -1], [mask = 0], [flag = 0]}
+define gpio {[offset = -1], [mask = 0], [flag = 0], [intr = -1]}
device gpio: gpio
attach gpio at gpiobus
Index: src/sys/dev/gpio/gpio.c
diff -u src/sys/dev/gpio/gpio.c:1.51 src/sys/dev/gpio/gpio.c:1.51.6.1
--- src/sys/dev/gpio/gpio.c:1.51 Wed Oct 17 21:35:39 2012
+++ src/sys/dev/gpio/gpio.c Fri May 10 01:20:04 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: gpio.c,v 1.51 2012/10/17 21:35:39 dyoung Exp $ */
+/* $NetBSD: gpio.c,v 1.51.6.1 2013/05/10 01:20:04 khorben Exp $ */
/* $OpenBSD: gpio.c,v 1.6 2006/01/14 12:33:49 grange Exp $ */
/*
@@ -19,7 +19,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gpio.c,v 1.51 2012/10/17 21:35:39 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gpio.c,v 1.51.6.1 2013/05/10 01:20:04 khorben Exp $");
/*
* General Purpose Input/Output framework.
@@ -249,6 +249,7 @@ gpio_search(device_t parent, cfdata_t cf
ga.ga_offset = cf->cf_loc[GPIOCF_OFFSET];
ga.ga_mask = cf->cf_loc[GPIOCF_MASK];
ga.ga_flags = cf->cf_loc[GPIOCF_FLAG];
+ ga.ga_intr = cf->cf_loc[GPIOCF_INTR];
namlen = strlen(cf->cf_name) + 1;
ga.ga_dvname = kmem_alloc(namlen, KM_NOSLEEP);
if (ga.ga_dvname == NULL)
Index: src/sys/dev/gpio/gpiovar.h
diff -u src/sys/dev/gpio/gpiovar.h:1.15 src/sys/dev/gpio/gpiovar.h:1.15.18.1
--- src/sys/dev/gpio/gpiovar.h:1.15 Sun Nov 13 13:20:02 2011
+++ src/sys/dev/gpio/gpiovar.h Fri May 10 01:20:05 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: gpiovar.h,v 1.15 2011/11/13 13:20:02 mbalmer Exp $ */
+/* $NetBSD: gpiovar.h,v 1.15.18.1 2013/05/10 01:20:05 khorben Exp $ */
/* $OpenBSD: gpiovar.h,v 1.3 2006/01/14 12:33:49 grange Exp $ */
/*
@@ -71,6 +71,7 @@ struct gpio_attach_args {
uint32_t ga_mask;
char *ga_dvname;
uint32_t ga_flags;
+ int ga_intr;
};
/* GPIO pin map */