/* not all ARM platforms necessarily support this API ... */
#include <mach/gpio.h>
-#ifdef __ARM_GPIOLIB_TRIVIAL
+#ifndef __ARM_GPIOLIB_COMPLEX
/* Note: this may rely upon the value of ARCH_NR_GPIOS set in mach/gpio.h */
#include <asm-generic/gpio.h>
#include <mach/hardware.h>
#include <asm-generic/gpio.h>
+#define __ARM_GPIOLIB_COMPLEX
+
#define IOP3XX_N_GPIOS 8
static inline int gpio_get_value(unsigned gpio)
#include <asm/errno.h>
-#define __ARM_GPIOLIB_TRIVIAL
-
#define gpio_to_irq(gpio) (gpio)
#define irq_to_gpio(irq) (irq)
#include <mach/irqs.h>
#include <mach/common.h>
+#define __ARM_GPIOLIB_COMPLEX
+
#define DAVINCI_GPIO_BASE 0x01C67000
enum davinci_gpio_type {
/* maximum value for irq capable line identifiers */
#define EP93XX_GPIO_LINE_MAX_IRQ EP93XX_GPIO_LINE_F(7)
-/* new generic GPIO API - see Documentation/gpio.txt */
-#define __ARM_GPIOLIB_TRIVIAL
-
/*
* Map GPIO A0..A7 (0..7) to irq 64..71,
* B0..B7 (7..15) to irq 72..79, and
#define ARCH_NR_GPIOS (EXYNOS4_GPZ(EXYNOS4_GPIO_Z_NR) + \
CONFIG_SAMSUNG_GPIO_EXTRA + 1)
-#define __ARM_GPIOLIB_TRIVIAL
-
#endif /* __ASM_ARCH_GPIO_H */
#include <mach/irqs.h>
-#define __ARM_GPIOLIB_TRIVIAL
-
#define gpio_to_irq(x) ((x) + GPIO_IRQ_BASE)
#define irq_to_gpio(x) ((x) - GPIO_IRQ_BASE)
#include <linux/kernel.h>
#include <mach/hardware.h>
+#define __ARM_GPIOLIB_COMPLEX
+
static inline int gpio_request(unsigned gpio, const char *label)
{
return 0;
*/
extern int irq_to_gpio(unsigned int irq);
-#define __ARM_GPIOLIB_TRIVIAL
-
/* Register the GPIOs */
extern void ks8695_register_gpios(void);
*/
#define LPC32XX_GPIO(x, y) ((x) + (y))
-#define __ARM_GPIOLIB_TRIVIAL
-
#endif
-/*
- * Copyright (C) 2007 Google, Inc.
- * Copyright (c) 2009-2010, Code Aurora Forum. All rights reserved.
- * Author: Mike Lockwood <lockwood@android.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-#ifndef __ASM_ARCH_MSM_GPIO_H
-#define __ASM_ARCH_MSM_GPIO_H
-
-#define __ARM_GPIOLIB_TRIVIAL
-
-#endif /* __ASM_ARCH_MSM_GPIO_H */
+/* empty */
#define MXS_GPIO_NR(bank, nr) ((bank) * 32 + (nr))
-/* use gpiolib dispatchers */
-#define __ARM_GPIOLIB_TRIVIAL
-
#define irq_to_gpio(irq) ((irq) - MXS_GPIO_IRQ_START)
#endif /* __MACH_MXS_GPIO_H__ */
-#define __ARM_GPIOLIB_TRIVIAL
+/* empty */
* published by the Free Software Foundation.
*/
-#define __ARM_GPIOLIB_TRIVIAL
-
/* some boards require extra gpio capacity to support external
* devices that need GPIO.
*/
* published by the Free Software Foundation.
*/
-#define __ARM_GPIOLIB_TRIVIAL
-
/* GPIO bank sizes */
#define S3C64XX_GPIO_A_NR (8)
#define S3C64XX_GPIO_B_NR (7)
#ifndef __ASM_ARCH_GPIO_H
#define __ASM_ARCH_GPIO_H __FILE__
-#define __ARM_GPIOLIB_TRIVIAL
-
/* GPIO bank sizes */
#define S5P6440_GPIO_A_NR (6)
#ifndef __ASM_ARCH_GPIO_H
#define __ASM_ARCH_GPIO_H __FILE__
-#define __ARM_GPIOLIB_TRIVIAL
-
/* GPIO bank sizes */
#define S5PC100_GPIO_A0_NR (8)
#define S5PC100_GPIO_A1_NR (5)
#ifndef __ASM_ARCH_GPIO_H
#define __ASM_ARCH_GPIO_H __FILE__
-#define __ARM_GPIOLIB_TRIVIAL
-
/* Practically, GPIO banks up to MP03 are the configurable gpio banks */
/* GPIO bank sizes */
#include <asm/irq.h>
#include <asm-generic/gpio.h>
+#define __ARM_GPIOLIB_COMPLEX
+
static inline int gpio_get_value(unsigned gpio)
{
if (__builtin_constant_p(gpio) && (gpio <= GPIO_MAX))
#ifdef CONFIG_GPIOLIB
-#define __ARM_GPIOLIB_TRIVIAL
-
static inline int irq_to_gpio(unsigned int irq)
{
return -ENOSYS;
}
+#else
+
+#define __ARM_GPIOLIB_COMPLEX
+
#endif /* CONFIG_GPIOLIB */
#endif /* __ASM_ARCH_GPIO_H */
#define TEGRA_NR_GPIOS INT_GPIO_NR
-#define __ARM_GPIOLIB_TRIVIAL
-
#define TEGRA_GPIO_TO_IRQ(gpio) (INT_GPIO_BASE + (gpio))
#define TEGRA_IRQ_TO_GPIO(irq) ((irq) - INT_GPIO_BASE)
#include <mach/hardware.h>
#include <asm/irq.h>
+#define __ARM_GPIOLIB_COMPLEX
+
/* Switch type depending on platform/chip variant */
#if defined(CONFIG_MACH_U300_BS2X) || defined(CONFIG_MACH_U300_BS330)
#define U300_COH901335
-#define __ARM_GPIOLIB_TRIVIAL
+/* empty */
-#define __ARM_GPIOLIB_TRIVIAL
+/* empty */
#include <mach/hardware.h>
#include <asm/irq.h>
-#define __ARM_GPIOLIB_TRIVIAL
-
static inline int gpio_to_irq(unsigned gpio)
{
return gpio;
/* range e.g. GPIO_1_5 is gpio 5 under linux */
#define IMX_GPIO_NR(bank, nr) (((bank) - 1) * 32 + (nr))
-/* use gpiolib dispatchers */
-#define __ARM_GPIOLIB_TRIVIAL
-
#define gpio_to_irq(gpio) (MXC_GPIO_IRQ_START + (gpio))
#define irq_to_gpio(irq) ((irq) - MXC_GPIO_IRQ_START)
#include <linux/kernel.h>
-#define __ARM_GPIOLIB_TRIVIAL
-
/*
* "nmk_gpio" and "NMK_GPIO" stand for "Nomadik GPIO", leaving
* the "gpio" namespace for generic and cross-machine functions
#include <linux/errno.h>
#include <asm-generic/gpio.h>
-#define __ARM_GPIOLIB_TRIVIAL
-
static inline int irq_to_gpio(unsigned irq)
{
int tmp;
#include <linux/init.h>
-#define __ARM_GPIOLIB_TRIVIAL
-
/*
* Orion-specific GPIO API extensions.
*/
#ifndef __PLAT_GPIO_H
#define __PLAT_GPIO_H
+#define __ARM_GPIOLIB_COMPLEX
+
struct irq_data;
/*
-/*
- * arch/arm/plat-spear/include/plat/gpio.h
- *
- * GPIO macros for SPEAr platform
- *
- * Copyright (C) 2009 ST Microelectronics
- * Viresh Kumar<viresh.kumar@st.com>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef __PLAT_GPIO_H
-#define __PLAT_GPIO_H
-
-#define __ARM_GPIOLIB_TRIVIAL
-
-#endif /* __PLAT_GPIO_H */
+/* empty */