[BACK]Return to gpio.h CVS log [TXT][DIR] Up to [local] / sys / sys

Annotation of sys/sys/gpio.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: gpio.h,v 1.1 2004/06/03 18:08:00 grange Exp $ */
        !             2: /*
        !             3:  * Copyright (c) 2004 Alexander Yurchenko <grange@openbsd.org>
        !             4:  *
        !             5:  * Permission to use, copy, modify, and distribute this software for any
        !             6:  * purpose with or without fee is hereby granted, provided that the above
        !             7:  * copyright notice and this permission notice appear in all copies.
        !             8:  *
        !             9:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !            10:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            11:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            12:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            13:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            14:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        !            15:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            16:  */
        !            17:
        !            18: #ifndef _SYS_GPIO_H_
        !            19: #define _SYS_GPIO_H_
        !            20:
        !            21: /* GPIO pin states */
        !            22: #define GPIO_PIN_LOW           0x00    /* low level (logical 0) */
        !            23: #define GPIO_PIN_HIGH          0x01    /* high level (logical 1) */
        !            24:
        !            25: /* GPIO pin configuration flags */
        !            26: #define GPIO_PIN_INPUT         0x0001  /* input direction */
        !            27: #define GPIO_PIN_OUTPUT                0x0002  /* output direction */
        !            28: #define GPIO_PIN_INOUT         0x0004  /* bi-directional */
        !            29: #define GPIO_PIN_OPENDRAIN     0x0008  /* open-drain output */
        !            30: #define GPIO_PIN_PUSHPULL      0x0010  /* push-pull output */
        !            31: #define GPIO_PIN_TRISTATE      0x0020  /* output disabled */
        !            32: #define GPIO_PIN_PULLUP                0x0040  /* internal pull-up enabled */
        !            33:
        !            34: /* GPIO controller description */
        !            35: struct gpio_info {
        !            36:        int gpio_npins;         /* total number of pins available */
        !            37: };
        !            38:
        !            39: /* GPIO pin operation (read/write/toggle) */
        !            40: struct gpio_pin_op {
        !            41:        int gp_pin;             /* pin number */
        !            42:        int gp_value;           /* value */
        !            43: };
        !            44:
        !            45: /* GPIO pin control */
        !            46: struct gpio_pin_ctl {
        !            47:        int gp_pin;             /* pin number */
        !            48:        int gp_caps;            /* pin capabilities (read-only) */
        !            49:        int gp_flags;           /* pin configuration flags */
        !            50: };
        !            51:
        !            52: #define GPIOINFO               _IOR('G', 0, struct gpio_info)
        !            53: #define GPIOPINREAD            _IOWR('G', 1, struct gpio_pin_op)
        !            54: #define GPIOPINWRITE           _IOWR('G', 2, struct gpio_pin_op)
        !            55: #define GPIOPINTOGGLE          _IOWR('G', 3, struct gpio_pin_op)
        !            56: #define GPIOPINCTL             _IOWR('G', 4, struct gpio_pin_ctl)
        !            57:
        !            58: #endif /* !_SYS_GPIO_H_ */

CVSweb