Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/gpio Let the controller provide a default name for p...
details: https://anonhg.NetBSD.org/src/rev/25fa8649e612
branches: trunk
changeset: 354963:25fa8649e612
user: jmcneill <jmcneill%NetBSD.org@localhost>
date: Thu Jul 06 10:43:06 2017 +0000
description:
Let the controller provide a default name for pins. This makes pins easier
to locate when we have multiple banks and a variable number of pins per
bank.
diffstat:
sys/dev/gpio/gpio.c | 17 +++++++++++++++--
sys/dev/gpio/gpiovar.h | 3 ++-
2 files changed, 17 insertions(+), 3 deletions(-)
diffs (62 lines):
diff -r c663142aa53a -r 25fa8649e612 sys/dev/gpio/gpio.c
--- a/sys/dev/gpio/gpio.c Thu Jul 06 09:49:46 2017 +0000
+++ b/sys/dev/gpio/gpio.c Thu Jul 06 10:43:06 2017 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: gpio.c,v 1.58 2016/05/11 18:33:40 bouyer Exp $ */
+/* $NetBSD: gpio.c,v 1.59 2017/07/06 10:43:06 jmcneill 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.58 2016/05/11 18:33:40 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gpio.c,v 1.59 2017/07/06 10:43:06 jmcneill Exp $");
/*
* General Purpose Input/Output framework.
@@ -202,6 +202,8 @@
{
struct gpio_softc *sc = device_private(self);
struct gpiobus_attach_args *gba = aux;
+ struct gpio_name *nm;
+ int pin;
sc->sc_dev = self;
sc->sc_gc = gba->gba_gc;
@@ -211,6 +213,17 @@
aprint_normal(": %d pins\n", sc->sc_npins);
aprint_naive("\n");
+ /* Configure default pin names */
+ for (pin = 0; pin < sc->sc_npins; pin++) {
+ if (sc->sc_pins[pin].pin_defname[0] == '\0')
+ continue;
+ nm = kmem_alloc(sizeof(*nm), KM_SLEEP);
+ strlcpy(nm->gp_name, sc->sc_pins[pin].pin_defname,
+ sizeof(nm->gp_name));
+ nm->gp_pin = pin;
+ LIST_INSERT_HEAD(&sc->sc_names, nm, gp_next);
+ }
+
if (!pmf_device_register(self, NULL, gpio_resume))
aprint_error_dev(self, "couldn't establish power handler\n");
mutex_init(&sc->sc_mtx, MUTEX_DEFAULT, IPL_VM);
diff -r c663142aa53a -r 25fa8649e612 sys/dev/gpio/gpiovar.h
--- a/sys/dev/gpio/gpiovar.h Thu Jul 06 09:49:46 2017 +0000
+++ b/sys/dev/gpio/gpiovar.h Thu Jul 06 10:43:06 2017 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: gpiovar.h,v 1.16 2016/05/11 18:33:40 bouyer Exp $ */
+/* $NetBSD: gpiovar.h,v 1.17 2017/07/06 10:43:06 jmcneill Exp $ */
/* $OpenBSD: gpiovar.h,v 1.3 2006/01/14 12:33:49 grange Exp $ */
/*
@@ -44,6 +44,7 @@
gpio_chipset_tag_t pin_gc; /* reference the controller */
void (*pin_callback)(void *); /* irq callback */
void * pin_callback_arg; /* callback arg */
+ char pin_defname[GPIOMAXNAME]; /* default name */
} gpio_pin_t;
/* Attach GPIO framework to the controller */
Home |
Main Index |
Thread Index |
Old Index