/*
 * BRIEF MODULE DESCRIPTION
 *	Defines for using and allocating GPIO on the
 *      AMD Au1000 MIPS processor.
 *
 * Copyright 2004 Cooper Street Innovations Inc.
 * Author: Charles Eidsness	<charles@cooper-street.com>
 *
 *  This program is free software; you can redistribute  it and/or modify it
 *  under  the terms of  the GNU General  Public License as published by the
 *  Free Software Foundation;  either version 2 of the  License, or (at your
 *  option) any later version.
 *
 *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
 *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
 *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
 *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
 *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *  You should have received a copy of the  GNU General Public License along
 *  with this program; if not, write  to the Free Software Foundation, Inc.,
 *  675 Mass Ave, Cambridge, MA 02139, USA.
 *
 * History:
 *
 * 2004-10-14 Charles Eidsness -- Original Version
 *
 */

#ifndef __AU1000_GPIO_H
#define __AU1000_GPIO_H

#include <linux/ioctl.h>
#include <asm/types.h>

#define AU1000_GPIO_IOCTL_BASE 'D'

#define AU1000_GPIO_PINFUNC_SET 	_IOW (AU1000_GPIO_IOCTL_BASE, 0, short)
#define AU1000_GPIO_PINFUNC_GET		_IOR (AU1000_GPIO_IOCTL_BASE, 1, short)
#define AU1000_GPIO_TRISTATE_SET	_IOW (AU1000_GPIO_IOCTL_BASE, 2, short)
#define AU1000_GPIO_TRISTATE_GET	_IOR (AU1000_GPIO_IOCTL_BASE, 3, short)

#ifdef __KERNEL__
typedef struct __gpio_set {
	u32 set;
	u32 val;
} _gpio_set_t;

typedef u32 _gpio_get_t;
#else

typedef struct _gpio_set {
	__u32 set;
	__u32 val;
} gpio_set_t;

typedef __u32 gpio_get_t;

#endif

#endif
