Module Name:    src
Committed By:   mbalmer
Date:           Fri Aug 12 08:00:53 UTC 2011

Modified Files:
        src/distrib/sets/lists/modules: md.evbppc mi
        src/sys/dev/gpio: gpio.c gpiosim.c gpiovar.h
        src/sys/modules: Makefile
Added Files:
        src/sys/modules/gpio: Makefile gpio.ioconf
        src/sys/modules/gpiosim: Makefile

Log Message:
gpio(4) and gpiosim(4) can now be built and used as modules.  While here,
make some functions static.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/distrib/sets/lists/modules/md.evbppc
cvs rdiff -u -r1.30 -r1.31 src/distrib/sets/lists/modules/mi
cvs rdiff -u -r1.34 -r1.35 src/sys/dev/gpio/gpio.c
cvs rdiff -u -r1.7 -r1.8 src/sys/dev/gpio/gpiosim.c
cvs rdiff -u -r1.10 -r1.11 src/sys/dev/gpio/gpiovar.h
cvs rdiff -u -r1.88 -r1.89 src/sys/modules/Makefile
cvs rdiff -u -r0 -r1.1 src/sys/modules/gpio/Makefile \
    src/sys/modules/gpio/gpio.ioconf
cvs rdiff -u -r0 -r1.1 src/sys/modules/gpiosim/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/modules/md.evbppc
diff -u src/distrib/sets/lists/modules/md.evbppc:1.8 src/distrib/sets/lists/modules/md.evbppc:1.9
--- src/distrib/sets/lists/modules/md.evbppc:1.8	Thu Aug 11 12:03:58 2011
+++ src/distrib/sets/lists/modules/md.evbppc	Fri Aug 12 08:00:52 2011
@@ -1,4 +1,4 @@
-# $NetBSD: md.evbppc,v 1.8 2011/08/11 12:03:58 mbalmer Exp $
+# $NetBSD: md.evbppc,v 1.9 2011/08/12 08:00:52 mbalmer Exp $
 ./stand/powerpc-4xx						base-kernel-modules	kmod
 ./stand/powerpc-4xx/@OSRELEASE@					base-kernel-modules	kmod
 ./stand/powerpc-4xx/@OSRELEASE@/modules					base-kernel-modules	kmod
@@ -54,6 +54,10 @@
 ./stand/powerpc-4xx/@OSRELEASE@/modules/flash/flash.kmod			base-kernel-modules	kmod
 ./stand/powerpc-4xx/@OSRELEASE@/modules/fss				base-kernel-modules	kmod
 ./stand/powerpc-4xx/@OSRELEASE@/modules/fss/fss.kmod			base-kernel-modules	kmod
+./stand/powerpc-4xx/@OSRELEASE@/modules/gpio				base-kernel-modules	kmod
+./stand/powerpc-4xx/@OSRELEASE@/modules/gpio/gpio.kmod			base-kernel-modules	kmod
+./stand/powerpc-4xx/@OSRELEASE@/modules/gpiosim				base-kernel-modules	kmod
+./stand/powerpc-4xx/@OSRELEASE@/modules/gpiosim/gpiosim.kmod		base-kernel-modules	kmod
 ./stand/powerpc-4xx/@OSRELEASE@/modules/hfs				base-kernel-modules	kmod
 ./stand/powerpc-4xx/@OSRELEASE@/modules/hfs/hfs.kmod			base-kernel-modules	kmod
 ./stand/powerpc-4xx/@OSRELEASE@/modules/kernfs				base-kernel-modules	kmod
@@ -203,6 +207,10 @@
 ./stand/powerpc-booke/@OSRELEASE@/modules/flash/flash.kmod			base-kernel-modules	kmod
 ./stand/powerpc-booke/@OSRELEASE@/modules/fss				base-kernel-modules	kmod
 ./stand/powerpc-booke/@OSRELEASE@/modules/fss/fss.kmod			base-kernel-modules	kmod
+./stand/powerpc-booke/@OSRELEASE@/modules/gpio				base-kernel-modules	kmod
+./stand/powerpc-booke/@OSRELEASE@/modules/gpio/gpio.kmod		base-kernel-modules	kmod
+./stand/powerpc-booke/@OSRELEASE@/modules/gpiosim			base-kernel-modules	kmod
+./stand/powerpc-booke/@OSRELEASE@/modules/gpiosim/gpiosim.kmod		base-kernel-modules	kmod
 ./stand/powerpc-booke/@OSRELEASE@/modules/hfs				base-kernel-modules	kmod
 ./stand/powerpc-booke/@OSRELEASE@/modules/hfs/hfs.kmod			base-kernel-modules	kmod
 ./stand/powerpc-booke/@OSRELEASE@/modules/kernfs				base-kernel-modules	kmod

Index: src/distrib/sets/lists/modules/mi
diff -u src/distrib/sets/lists/modules/mi:1.30 src/distrib/sets/lists/modules/mi:1.31
--- src/distrib/sets/lists/modules/mi:1.30	Thu Aug 11 12:03:58 2011
+++ src/distrib/sets/lists/modules/mi	Fri Aug 12 08:00:52 2011
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.30 2011/08/11 12:03:58 mbalmer Exp $
+# $NetBSD: mi,v 1.31 2011/08/12 08:00:52 mbalmer Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -61,6 +61,10 @@
 ./@MODULEDIR@/flash/flash.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/fss				base-kernel-modules	kmod
 ./@MODULEDIR@/fss/fss.kmod			base-kernel-modules	kmod
+./@MODULEDIR@/gpio				base-kernel-modules	kmod
+./@MODULEDIR@/gpio/gpio.kmod			base-kernel-modules	kmod
+./@MODULEDIR@/gpiosim				base-kernel-modules	kmod
+./@MODULEDIR@/gpiosim/gpiosim.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/hfs				base-kernel-modules	kmod
 ./@MODULEDIR@/hfs/hfs.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/kernfs				base-kernel-modules	kmod

Index: src/sys/dev/gpio/gpio.c
diff -u src/sys/dev/gpio/gpio.c:1.34 src/sys/dev/gpio/gpio.c:1.35
--- src/sys/dev/gpio/gpio.c:1.34	Thu Jun  9 14:46:06 2011
+++ src/sys/dev/gpio/gpio.c	Fri Aug 12 08:00:52 2011
@@ -1,8 +1,8 @@
-/* $NetBSD: gpio.c,v 1.34 2011/06/09 14:46:06 joerg Exp $ */
+/* $NetBSD: gpio.c,v 1.35 2011/08/12 08:00:52 mbalmer Exp $ */
 /*	$OpenBSD: gpio.c,v 1.6 2006/01/14 12:33:49 grange Exp $	*/
 
 /*
- * Copyright (c) 2008, 2009, 2010 Marc Balmer <m...@msys.ch>
+ * Copyright (c) 2008, 2009, 2010, 2011 Marc Balmer <m...@msys.ch>
  * Copyright (c) 2004, 2006 Alexander Yurchenko <gra...@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -19,7 +19,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gpio.c,v 1.34 2011/06/09 14:46:06 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gpio.c,v 1.35 2011/08/12 08:00:52 mbalmer Exp $");
 
 /*
  * General Purpose Input/Output framework.
@@ -36,7 +36,9 @@
 #include <sys/kmem.h>
 #include <sys/queue.h>
 #include <sys/kauth.h>
-
+#ifdef _MODULE
+#include <sys/module.h>
+#endif
 #include <dev/gpio/gpiovar.h>
 
 #include "locators.h"
@@ -61,19 +63,20 @@
 	LIST_HEAD(, gpio_name)	 sc_names;	/* named pins */
 };
 
-int	gpio_match(device_t, cfdata_t, void *);
-int	gpio_submatch(device_t, cfdata_t, const int *, void *);
-void	gpio_attach(device_t, device_t, void *);
-int	gpio_rescan(device_t, const char *, const int *);
-void	gpio_childdetached(device_t, device_t);
-bool	gpio_resume(device_t, const pmf_qual_t *);
-int	gpio_detach(device_t, int);
-int	gpio_search(device_t, cfdata_t, const int *, void *);
-int	gpio_print(void *, const char *);
-int	gpio_pinbyname(struct gpio_softc *, char *);
+static int	gpio_match(device_t, cfdata_t, void *);
+int		gpio_submatch(device_t, cfdata_t, const int *, void *);
+static void	gpio_attach(device_t, device_t, void *);
+static int	gpio_rescan(device_t, const char *, const int *);
+static void	gpio_childdetached(device_t, device_t);
+static bool	gpio_resume(device_t, const pmf_qual_t *);
+static int	gpio_detach(device_t, int);
+static int	gpio_search(device_t, cfdata_t, const int *, void *);
+static int	gpio_print(void *, const char *);
+static int	gpio_pinbyname(struct gpio_softc *, char *);
 
 /* Old API */
-int	gpio_ioctl_oapi(struct gpio_softc *, u_long, void *, int, kauth_cred_t);
+static int	gpio_ioctl_oapi(struct gpio_softc *, u_long, void *, int,
+    kauth_cred_t);
 
 CFATTACH_DECL3_NEW(gpio, sizeof(struct gpio_softc),
     gpio_match, gpio_attach, gpio_detach, NULL, gpio_rescan,
@@ -90,7 +93,7 @@
 
 extern struct cfdriver gpio_cd;
 
-int
+static int
 gpio_match(device_t parent, cfdata_t cf, void *aux)
 {
 	return 1;
@@ -107,7 +110,7 @@
 	return strcmp(ga->ga_dvname, cf->cf_name) == 0;
 }
 
-bool
+static bool
 gpio_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct gpio_softc *sc = device_private(self);
@@ -120,13 +123,13 @@
 	return true;
 }
 
-void
+static void
 gpio_childdetached(device_t self, device_t child)
 {
 	/* gpio(4) keeps no references to its children, so do nothing. */
 }
 
-int
+static int
 gpio_rescan(device_t self, const char *ifattr, const int *locators)
 {
 	struct gpio_softc *sc = device_private(self);
@@ -136,7 +139,7 @@
 	return 0;
 }
 
-void
+static void
 gpio_attach(device_t parent, device_t self, void *aux)
 {
 	struct gpio_softc *sc = device_private(self);
@@ -159,7 +162,7 @@
 	gpio_rescan(self, "gpio", NULL);
 }
 
-int
+static int
 gpio_detach(device_t self, int flags)
 {
 	int rc;
@@ -182,7 +185,7 @@
 	return 0;
 }
 
-int
+static int
 gpio_search(device_t parent, cfdata_t cf, const int *ldesc, void *aux)
 {
 	struct gpio_attach_args ga;
@@ -368,7 +371,7 @@
 	return 0;
 }
 
-int
+static int
 gpio_pinbyname(struct gpio_softc *sc, char *gp_name)
 {
         struct gpio_name *nm;
@@ -405,7 +408,7 @@
 		    device_xname(sc->sc_dev)));
 		return EBUSY;
 	}
-	
+
 	cred = kauth_cred_get();
 
 	switch (cmd) {
@@ -548,7 +551,7 @@
 		if (kauth_authorize_device(cred, KAUTH_DEVICE_GPIO_PINSET,
 		    NULL, NULL, NULL, NULL))
 			return EPERM;
-                
+
 		attach = (struct gpio_attach *)data;
 		LIST_FOREACH(gdev, &sc->sc_devs, sc_next) {
 			if (strcmp(device_xname(gdev->sc_dev),
@@ -632,7 +635,7 @@
 				return EINVAL;
 		} else
 			pin = set->gp_pin;
-		
+
 		if (pin < 0 || pin >= sc->sc_npins)
 			return EINVAL;
 		if (sc->sc_pins[pin].pin_mapped)
@@ -657,7 +660,7 @@
 	return 0;
 }
 
-int
+static int
 gpio_ioctl_oapi(struct gpio_softc *sc, u_long cmd, void *data, int flag,
     kauth_cred_t cred)
 {
@@ -774,3 +777,43 @@
 	}
 	return 0;
 }
+
+#ifdef _MODULE
+MODULE(MODULE_CLASS_DRIVER, gpio, NULL);
+
+#include "ioconf.c"
+
+static int
+gpio_modcmd(modcmd_t cmd, void *opaque)
+{
+	devmajor_t cmajor = NODEVMAJOR, bmajor = NODEVMAJOR;
+	int error;
+
+	switch (cmd) {
+	case MODULE_CMD_INIT:
+		error = config_init_component(cfdriver_ioconf_gpio,
+		    cfattach_ioconf_gpio, cfdata_ioconf_gpio);
+		if (error) {
+			aprint_error("%s: unable to init component\n",
+			    gpio_cd.cd_name);
+			return error;
+		}
+		error = devsw_attach(gpio_cd.cd_name, NULL, &bmajor,
+		    &gpio_cdevsw, &cmajor);
+		if (error) {
+			aprint_error("%s: unable to register devsw\n",
+			    gpio_cd.cd_name);
+			return config_fini_component(cfdriver_ioconf_gpio,
+			    cfattach_ioconf_gpio, cfdata_ioconf_gpio);
+		}
+		return 0;
+	case MODULE_CMD_FINI:
+		config_fini_component(cfdriver_ioconf_gpio,
+		    cfattach_ioconf_gpio, cfdata_ioconf_gpio);
+		devsw_detach(NULL, &gpio_cdevsw);
+		return 0;
+	default:
+		return ENOTTY;
+	}
+}
+#endif

Index: src/sys/dev/gpio/gpiosim.c
diff -u src/sys/dev/gpio/gpiosim.c:1.7 src/sys/dev/gpio/gpiosim.c:1.8
--- src/sys/dev/gpio/gpiosim.c:1.7	Sun Dec  6 22:33:44 2009
+++ src/sys/dev/gpio/gpiosim.c	Fri Aug 12 08:00:52 2011
@@ -1,8 +1,8 @@
-/* $NetBSD: gpiosim.c,v 1.7 2009/12/06 22:33:44 dyoung Exp $ */
+/* $NetBSD: gpiosim.c,v 1.8 2011/08/12 08:00:52 mbalmer Exp $ */
 /*      $OpenBSD: gpiosim.c,v 1.1 2008/11/23 18:46:49 mbalmer Exp $	*/
 
 /*
- * Copyright (c) 2007, 2008, 2009 Marc Balmer <m...@msys.ch>
+ * Copyright (c) 2007, 2008, 2009, 2010, 2011 Marc Balmer <m...@msys.ch>
  * All rights reserved.
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -24,9 +24,11 @@
 #include <sys/device.h>
 #include <sys/gpio.h>
 #include <sys/malloc.h>
+#ifdef _MODULE
+#include <sys/module.h>
+#endif
 #include <sys/sysctl.h>
 #include <sys/ioccom.h>
-
 #include <dev/gpio/gpiovar.h>
 
 #define	GPIOSIM_NPINS	32
@@ -41,22 +43,22 @@
 	struct sysctllog	*sc_log;
 };
 
-int	gpiosim_match(device_t, cfdata_t, void *);
-void	gpiosimattach(int);
-void	gpiosim_attach(device_t, device_t, void *);
-int	gpiosim_detach(device_t, int);
-int	gpiosim_sysctl(SYSCTLFN_PROTO);
-
-int	gpiosim_pin_read(void *, int);
-void	gpiosim_pin_write(void *, int, int);
-void	gpiosim_pin_ctl(void *, int, int);
+static int	gpiosim_match(device_t, cfdata_t, void *);
+void		gpiosimattach(int);
+static void	gpiosim_attach(device_t, device_t, void *);
+static int	gpiosim_detach(device_t, int);
+static int	gpiosim_sysctl(SYSCTLFN_PROTO);
+
+static int	gpiosim_pin_read(void *, int);
+static void	gpiosim_pin_write(void *, int, int);
+static void	gpiosim_pin_ctl(void *, int, int);
 
 CFATTACH_DECL_NEW(gpiosim, sizeof(struct gpiosim_softc), gpiosim_match,
     gpiosim_attach, gpiosim_detach, NULL);
 
 extern struct cfdriver gpiosim_cd;
 
-int
+static int
 gpiosim_match(device_t parent, cfdata_t match, void *aux)
 {
 	return 1;
@@ -82,7 +84,7 @@
 	}
 }
 
-void
+static void
 gpiosim_attach(device_t parent, device_t self, void *aux)
 {
 	struct gpiosim_softc *sc = device_private(self);
@@ -148,7 +150,7 @@
 	sc->sc_gdev = config_found_ia(self, "gpiobus", &gba, gpiobus_print);
 }
 
-int
+static int
 gpiosim_detach(device_t self, int flags)
 {
 	struct gpiosim_softc *sc = device_private(self);
@@ -165,7 +167,7 @@
 	return 0;
 }
 
-int
+static int
 gpiosim_sysctl(SYSCTLFN_ARGS)
 {
 	struct sysctlnode node;
@@ -186,7 +188,7 @@
 	return 0;
 }
 
-int
+static int
 gpiosim_pin_read(void *arg, int pin)
 {
 	struct gpiosim_softc *sc = arg;
@@ -197,7 +199,7 @@
 		return GPIO_PIN_LOW;
 }
 
-void
+static void
 gpiosim_pin_write(void *arg, int pin, int value)
 {
 	struct gpiosim_softc *sc = arg;
@@ -208,10 +210,87 @@
 		sc->sc_state |= (1 << pin);
 }
 
-void
+static void
 gpiosim_pin_ctl(void *arg, int pin, int flags)
 {
 	struct gpiosim_softc *sc = arg;
 
 	sc->sc_gpio_pins[pin].pin_flags = flags;
 }
+
+#ifdef _MODULE
+MODULE(MODULE_CLASS_DRIVER, gpiosim, "gpio");
+
+static const struct cfiattrdata gpiobus_iattrdata = {
+	"gpiobus", 0, { { NULL, NULL, 0 },}
+};
+static const struct cfiattrdata *const gpiosim_attrs[] = {
+	&gpiobus_iattrdata, NULL
+};
+CFDRIVER_DECL(gpiosim, DV_DULL, gpiosim_attrs);
+extern struct cfattach gpiosim_ca;
+static int gpiosimloc[] = {
+	-1,
+	-1,
+	-1
+};
+static struct cfdata gpiosim_cfdata[] = {
+	{
+		.cf_name = "gpiosim",
+		.cf_atname = "gpiosim",
+		.cf_unit = 0,
+		.cf_fstate = FSTATE_STAR,
+		.cf_loc = gpiosimloc,
+		.cf_flags = 0,
+		.cf_pspec = NULL,
+	},
+	{ NULL }
+};
+
+static int
+gpiosim_modcmd(modcmd_t cmd, void *opaque)
+{
+	int error = 0;
+
+	switch (cmd) {
+	case MODULE_CMD_INIT:
+		error = config_cfdriver_attach(&gpiosim_cd);
+		if (error)
+			return error;
+
+		error = config_cfattach_attach(gpiosim_cd.cd_name,
+		    &gpiosim_ca);
+		if (error) {
+			config_cfdriver_detach(&gpiosim_cd);
+			aprint_error("%s: unable to register cfattach\n",
+				gpiosim_cd.cd_name);
+			return error;
+		}
+
+		error = config_cfdata_attach(gpiosim_cfdata, 1);
+		if (error) {
+			config_cfattach_detach(gpiosim_cd.cd_name,
+			    &gpiosim_ca);
+			config_cfdriver_detach(&gpiosim_cd);
+			aprint_error("%s: unable to register cfdata\n",
+				gpiosim_cd.cd_name);
+			return error;
+		}
+		(void)config_attach_pseudo(gpiosim_cfdata);
+		return 0;
+	case MODULE_CMD_FINI:
+		error = config_cfdata_detach(gpiosim_cfdata);
+		if (error)
+			return error;
+
+		config_cfattach_detach(gpiosim_cd.cd_name, &gpiosim_ca);
+		config_cfdriver_detach(&gpiosim_cd);
+		return 0;
+	case MODULE_CMD_AUTOUNLOAD:
+		/* no auto-unload */
+		return EBUSY;
+	default:
+		return ENOTTY;
+	}
+}
+#endif

Index: src/sys/dev/gpio/gpiovar.h
diff -u src/sys/dev/gpio/gpiovar.h:1.10 src/sys/dev/gpio/gpiovar.h:1.11
--- src/sys/dev/gpio/gpiovar.h:1.10	Fri Aug 21 12:53:42 2009
+++ src/sys/dev/gpio/gpiovar.h	Fri Aug 12 08:00:52 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: gpiovar.h,v 1.10 2009/08/21 12:53:42 mbalmer Exp $ */
+/* $NetBSD: gpiovar.h,v 1.11 2011/08/12 08:00:52 mbalmer Exp $ */
 /*	$OpenBSD: gpiovar.h,v 1.3 2006/01/14 12:33:49 grange Exp $	*/
 
 /*
@@ -65,16 +65,16 @@
 
 /* Attach devices connected to the GPIO pins */
 struct gpio_attach_args {
-	void *			ga_gpio;
-	int			ga_offset;
-	u_int32_t		ga_mask;
-	char			*ga_dvname;
+	void		*ga_gpio;
+	int		 ga_offset;
+	u_int32_t	 ga_mask;
+	char		*ga_dvname;
 };
 
 /* GPIO pin map */
 struct gpio_pinmap {
-	int *	pm_map;			/* pin map */
-	int	pm_size;		/* map size */
+	int		*pm_map;		/* pin map */
+	int		 pm_size;		/* map size */
 };
 
 struct gpio_dev {
@@ -95,7 +95,6 @@
 void	gpio_pin_write(void *, struct gpio_pinmap *, int, int);
 void	gpio_pin_ctl(void *, struct gpio_pinmap *, int, int);
 int	gpio_pin_caps(void *, struct gpio_pinmap *, int);
-
 int	gpio_npins(u_int32_t);
 
 #endif	/* !_DEV_GPIO_GPIOVAR_H_ */

Index: src/sys/modules/Makefile
diff -u src/sys/modules/Makefile:1.88 src/sys/modules/Makefile:1.89
--- src/sys/modules/Makefile:1.88	Thu Aug 11 12:03:06 2011
+++ src/sys/modules/Makefile	Fri Aug 12 08:00:53 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.88 2011/08/11 12:03:06 mbalmer Exp $
+#	$NetBSD: Makefile,v 1.89 2011/08/12 08:00:53 mbalmer Exp $
 
 .include <bsd.own.mk>
 
@@ -23,6 +23,8 @@
 SUBDIR+=	filecore
 SUBDIR+=	flash
 SUBDIR+=	fss
+SUBDIR+=	gpio
+SUBDIR+=	gpiosim
 SUBDIR+=	hfs
 SUBDIR+=	kernfs
 SUBDIR+=	ksem

Added files:

Index: src/sys/modules/gpio/Makefile
diff -u /dev/null src/sys/modules/gpio/Makefile:1.1
--- /dev/null	Fri Aug 12 08:00:53 2011
+++ src/sys/modules/gpio/Makefile	Fri Aug 12 08:00:53 2011
@@ -0,0 +1,13 @@
+#	$NetBSD: Makefile,v 1.1 2011/08/12 08:00:53 mbalmer Exp $
+
+.include "../Makefile.inc"
+
+.PATH:		${S}/dev/gpio
+
+KMOD=   	gpio
+IOCONF=		gpio.ioconf
+SRCS=		gpio.c
+
+CPPFLAGS+=	-I${S}/gpio
+
+.include <bsd.kmodule.mk>
Index: src/sys/modules/gpio/gpio.ioconf
diff -u /dev/null src/sys/modules/gpio/gpio.ioconf:1.1
--- /dev/null	Fri Aug 12 08:00:53 2011
+++ src/sys/modules/gpio/gpio.ioconf	Fri Aug 12 08:00:53 2011
@@ -0,0 +1,8 @@
+#	$NetBSD: gpio.ioconf,v 1.1 2011/08/12 08:00:53 mbalmer Exp $
+
+ioconf		gpio
+
+include		"conf/files"
+
+pseudo-root	gpiobus*
+gpio*		at gpiobus?

Index: src/sys/modules/gpiosim/Makefile
diff -u /dev/null src/sys/modules/gpiosim/Makefile:1.1
--- /dev/null	Fri Aug 12 08:00:53 2011
+++ src/sys/modules/gpiosim/Makefile	Fri Aug 12 08:00:53 2011
@@ -0,0 +1,12 @@
+#	$NetBSD: Makefile,v 1.1 2011/08/12 08:00:53 mbalmer Exp $
+
+.include "../Makefile.inc"
+
+.PATH:		${S}/dev/gpio
+
+KMOD=   	gpiosim
+SRCS=		gpiosim.c
+
+CPPFLAGS+=	-I${S}/gpio
+
+.include <bsd.kmodule.mk>

Reply via email to