From 92be9a24289a345109416e2cef3040b678a165cb Mon Sep 17 00:00:00 2001 From: mlelstv Date: Sat, 21 Nov 2015 09:06:03 +0000 Subject: [PATCH] Provide additional flags to control alternate functions and interrupts. --- sys/sys/gpio.h | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/sys/sys/gpio.h b/sys/sys/gpio.h index fafbc0417831..4fbe6201a2c9 100644 --- a/sys/sys/gpio.h +++ b/sys/sys/gpio.h @@ -1,4 +1,4 @@ -/* $NetBSD: gpio.h,v 1.14 2015/09/06 06:01:02 dholland Exp $ */ +/* $NetBSD: gpio.h,v 1.15 2015/11/21 09:06:03 mlelstv Exp $ */ /* $OpenBSD: gpio.h,v 1.7 2008/11/26 14:51:20 mbalmer Exp $ */ /* * Copyright (c) 2009, 2011 Marc Balmer @@ -31,19 +31,30 @@ #define GPIOMAXNAME 64 /* GPIO pin configuration flags */ -#define GPIO_PIN_INPUT 0x0001 /* input direction */ -#define GPIO_PIN_OUTPUT 0x0002 /* output direction */ -#define GPIO_PIN_INOUT 0x0004 /* bi-directional */ -#define GPIO_PIN_OPENDRAIN 0x0008 /* open-drain output */ -#define GPIO_PIN_PUSHPULL 0x0010 /* push-pull output */ -#define GPIO_PIN_TRISTATE 0x0020 /* output disabled */ -#define GPIO_PIN_PULLUP 0x0040 /* internal pull-up enabled */ -#define GPIO_PIN_PULLDOWN 0x0080 /* internal pull-down enabled */ -#define GPIO_PIN_INVIN 0x0100 /* invert input */ -#define GPIO_PIN_INVOUT 0x0200 /* invert output */ -#define GPIO_PIN_USER 0x0400 /* user != 0 can access */ -#define GPIO_PIN_PULSATE 0x0800 /* pulsate in hardware */ -#define GPIO_PIN_SET 0x8000 /* set for securelevel access */ +#define GPIO_PIN_INPUT 0x00000001 /* input direction */ +#define GPIO_PIN_OUTPUT 0x00000002 /* output direction */ +#define GPIO_PIN_INOUT 0x00000004 /* bi-directional */ +#define GPIO_PIN_OPENDRAIN 0x00000008 /* open-drain output */ +#define GPIO_PIN_PUSHPULL 0x00000010 /* push-pull output */ +#define GPIO_PIN_TRISTATE 0x00000020 /* output disabled */ +#define GPIO_PIN_PULLUP 0x00000040 /* internal pull-up enabled */ +#define GPIO_PIN_PULLDOWN 0x00000080 /* internal pull-down enabled */ +#define GPIO_PIN_INVIN 0x00000100 /* invert input */ +#define GPIO_PIN_INVOUT 0x00000200 /* invert output */ +#define GPIO_PIN_USER 0x00000400 /* user != 0 can access */ +#define GPIO_PIN_PULSATE 0x00000800 /* pulsate in hardware */ +#define GPIO_PIN_SET 0x00008000 /* set for securelevel access */ +#define GPIO_PIN_ALT0 0x00010000 /* alternate function 0 */ +#define GPIO_PIN_ALT1 0x00020000 /* alternate function 1 */ +#define GPIO_PIN_ALT2 0x00040000 /* alternate function 2 */ +#define GPIO_PIN_ALT3 0x00080000 /* alternate function 3 */ +#define GPIO_PIN_ALT4 0x00100000 /* alternate function 4 */ +#define GPIO_PIN_ALT5 0x00200000 /* alternate function 5 */ +#define GPIO_PIN_ALT6 0x00400000 /* alternate function 6 */ +#define GPIO_PIN_ALT7 0x00800000 /* alternate function 7 */ +#define GPIO_PIN_EVENTS 0x10000000 /* deliver events */ +#define GPIO_PIN_LEVEL 0x20000000 /* interrupt on level/edge */ +#define GPIO_PIN_FALLING 0x40000000 /* interrupt on falling/rising */ /* GPIO controller description */ struct gpio_info {