Skip to content

Commit

Permalink
ARM: gpio: make trivial GPIOLIB implementation the default
Browse files Browse the repository at this point in the history
Rather than marking the mach/gpio.h header files which want to use the
trivial GPIOLIB implementation, mark those which do not want to use it
instead.  This means that by default, you get the trivial implementation
and only have to do something extra if you need to.  This should
encourage the use of the trivial default implementation.

As an additional bonus, several gpio.h header files become empty.

Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Tested-by: Jamie Iles <jamie@jamieiles.com>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King committed Aug 12, 2011
1 parent 01e7dc8 commit 8f3c453
Show file tree
Hide file tree
Showing 31 changed files with 22 additions and 85 deletions.
2 changes: 1 addition & 1 deletion arch/arm/include/asm/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
/* 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>

Expand Down
2 changes: 2 additions & 0 deletions arch/arm/include/asm/hardware/iop3xx-gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
#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)
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/mach-at91/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,8 +215,6 @@ extern void at91_gpio_resume(void);

#include <asm/errno.h>

#define __ARM_GPIOLIB_TRIVIAL

#define gpio_to_irq(gpio) (gpio)
#define irq_to_gpio(irq) (irq)

Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-davinci/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
#include <mach/irqs.h>
#include <mach/common.h>

#define __ARM_GPIOLIB_COMPLEX

#define DAVINCI_GPIO_BASE 0x01C67000

enum davinci_gpio_type {
Expand Down
3 changes: 0 additions & 3 deletions arch/arm/mach-ep93xx/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,6 @@
/* 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
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/mach-exynos4/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,4 @@ enum s5p_gpio_number {
#define ARCH_NR_GPIOS (EXYNOS4_GPZ(EXYNOS4_GPIO_Z_NR) + \
CONFIG_SAMSUNG_GPIO_EXTRA + 1)

#define __ARM_GPIOLIB_TRIVIAL

#endif /* __ASM_ARCH_GPIO_H */
2 changes: 0 additions & 2 deletions arch/arm/mach-gemini/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@

#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)

Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-ixp4xx/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
#include <linux/kernel.h>
#include <mach/hardware.h>

#define __ARM_GPIOLIB_COMPLEX

static inline int gpio_request(unsigned gpio, const char *label)
{
return 0;
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/mach-ks8695/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ extern int ks8695_gpio_interrupt(unsigned int pin, unsigned int type);
*/
extern int irq_to_gpio(unsigned int irq);

#define __ARM_GPIOLIB_TRIVIAL

/* Register the GPIOs */
extern void ks8695_register_gpios(void);

Expand Down
2 changes: 0 additions & 2 deletions arch/arm/mach-lpc32xx/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,4 @@
*/
#define LPC32XX_GPIO(x, y) ((x) + (y))

#define __ARM_GPIOLIB_TRIVIAL

#endif
22 changes: 1 addition & 21 deletions arch/arm/mach-msm/include/mach/gpio.h
Original file line number Diff line number Diff line change
@@ -1,21 +1 @@
/*
* 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 */
3 changes: 0 additions & 3 deletions arch/arm/mach-mxs/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@

#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__ */
2 changes: 1 addition & 1 deletion arch/arm/mach-realview/include/mach/gpio.h
Original file line number Diff line number Diff line change
@@ -1 +1 @@
#define __ARM_GPIOLIB_TRIVIAL
/* empty */
2 changes: 0 additions & 2 deletions arch/arm/mach-s3c2410/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
* published by the Free Software Foundation.
*/

#define __ARM_GPIOLIB_TRIVIAL

/* some boards require extra gpio capacity to support external
* devices that need GPIO.
*/
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/mach-s3c64xx/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@
* 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)
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/mach-s5p64x0/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
#ifndef __ASM_ARCH_GPIO_H
#define __ASM_ARCH_GPIO_H __FILE__

#define __ARM_GPIOLIB_TRIVIAL

/* GPIO bank sizes */

#define S5P6440_GPIO_A_NR (6)
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/mach-s5pc100/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,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)
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/mach-s5pv210/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
#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 */
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-sa1100/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
#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))
Expand Down
6 changes: 4 additions & 2 deletions arch/arm/mach-shmobile/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,15 @@

#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 */
2 changes: 0 additions & 2 deletions arch/arm/mach-tegra/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@

#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)

Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-u300/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
#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
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-versatile/include/mach/gpio.h
Original file line number Diff line number Diff line change
@@ -1 +1 @@
#define __ARM_GPIOLIB_TRIVIAL
/* empty */
2 changes: 1 addition & 1 deletion arch/arm/mach-vt8500/include/mach/gpio.h
Original file line number Diff line number Diff line change
@@ -1 +1 @@
#define __ARM_GPIOLIB_TRIVIAL
/* empty */
2 changes: 0 additions & 2 deletions arch/arm/mach-w90x900/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
#include <mach/hardware.h>
#include <asm/irq.h>

#define __ARM_GPIOLIB_TRIVIAL

static inline int gpio_to_irq(unsigned gpio)
{
return gpio;
Expand Down
3 changes: 0 additions & 3 deletions arch/arm/plat-mxc/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@
/* 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)

Expand Down
2 changes: 0 additions & 2 deletions arch/arm/plat-nomadik/include/plat/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@

#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
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/plat-omap/include/plat/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -222,8 +222,6 @@ extern void omap_gpio_restore_context(void);
#include <linux/errno.h>
#include <asm-generic/gpio.h>

#define __ARM_GPIOLIB_TRIVIAL

static inline int irq_to_gpio(unsigned irq)
{
int tmp;
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/plat-orion/include/plat/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@

#include <linux/init.h>

#define __ARM_GPIOLIB_TRIVIAL

/*
* Orion-specific GPIO API extensions.
*/
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/plat-pxa/include/plat/gpio.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#ifndef __PLAT_GPIO_H
#define __PLAT_GPIO_H

#define __ARM_GPIOLIB_COMPLEX

struct irq_data;

/*
Expand Down
20 changes: 1 addition & 19 deletions arch/arm/plat-spear/include/plat/gpio.h
Original file line number Diff line number Diff line change
@@ -1,19 +1 @@
/*
* 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 */

0 comments on commit 8f3c453

Please sign in to comment.