Subject: [PATCH 4/4] ARM: at91: localize GPIO header

From: [email-masked] (Nicolas Ferre)
Date: Wed, 26 Mar 2014 11:36:20 +0100

On 05/11/2013 10:30, Linus Walleij :
> This moves the <mach/gpio.h> header in the AT91 platform down
> into the machine directory and removes the reliance on
> MACH_NEED_GPIO_H from the AT91.
> 
> This does not move the platform to GENERIC_GPIO but localize
> the remaining work to be done for this to the mach-at91
> folder.
> 
> Signed-off-by: Linus Walleij <[email-masked]>

If we agree with Arnd to take this one for 3.15, it can be easier if I
add immediately my:

Acked-by: Nicolas Ferre <[email-masked]>

So that you can quickly send an rebased version. Thanks a lot for having
taking care of this step toward multiplatform for AT91.

bye,

> ---
> This is intended to be merged into the ARM SoC tree through
> Nicolas' tree in the next kernel cycle (v3.14) if the approach is
> OK.
> ---
>  arch/arm/Kconfig                         |   1 -
>  arch/arm/mach-at91/at91rm9200_devices.c  |   1 +
>  arch/arm/mach-at91/at91sam9260_devices.c |   2 +-
>  arch/arm/mach-at91/at91sam9261_devices.c |   2 +-
>  arch/arm/mach-at91/at91sam9263_devices.c |   1 +
>  arch/arm/mach-at91/at91sam9g45_devices.c |   1 +
>  arch/arm/mach-at91/at91sam9rl_devices.c  |   1 +
>  arch/arm/mach-at91/board-1arm.c          |   2 +-
>  arch/arm/mach-at91/board-afeb-9260v1.c   |   1 +
>  arch/arm/mach-at91/board-cam60.c         |   1 +
>  arch/arm/mach-at91/board-carmeva.c       |   1 +
>  arch/arm/mach-at91/board-cpu9krea.c      |   1 +
>  arch/arm/mach-at91/board-cpuat91.c       |   2 +
>  arch/arm/mach-at91/board-csb337.c        |   2 +-
>  arch/arm/mach-at91/board-csb637.c        |   1 +
>  arch/arm/mach-at91/board-eb9200.c        |   1 +
>  arch/arm/mach-at91/board-ecbat91.c       |   1 +
>  arch/arm/mach-at91/board-eco920.c        |   2 +
>  arch/arm/mach-at91/board-flexibity.c     |   1 +
>  arch/arm/mach-at91/board-foxg20.c        |   1 +
>  arch/arm/mach-at91/board-gsia18s.c       |   1 +
>  arch/arm/mach-at91/board-kafa.c          |   1 +
>  arch/arm/mach-at91/board-kb9202.c        |   1 +
>  arch/arm/mach-at91/board-pcontrol-g20.c  |   1 +
>  arch/arm/mach-at91/board-picotux200.c    |   1 +
>  arch/arm/mach-at91/board-qil-a9260.c     |   1 +
>  arch/arm/mach-at91/board-rm9200ek.c      |   1 +
>  arch/arm/mach-at91/board-sam9-l9260.c    |   1 +
>  arch/arm/mach-at91/board-sam9260ek.c     |   1 +
>  arch/arm/mach-at91/board-sam9261ek.c     |   1 +
>  arch/arm/mach-at91/board-sam9263ek.c     |   1 +
>  arch/arm/mach-at91/board-sam9g20ek.c     |   1 +
>  arch/arm/mach-at91/board-sam9m10g45ek.c  |   1 +
>  arch/arm/mach-at91/board-sam9rlek.c      |   1 +
>  arch/arm/mach-at91/board-snapper9260.c   |   1 +
>  arch/arm/mach-at91/board-stamp9g20.c     |   1 +
>  arch/arm/mach-at91/board-yl-9200.c       |   1 +
>  arch/arm/mach-at91/gpio.c                |   1 +
>  arch/arm/mach-at91/gpio.h                | 222 +++++++++++++++++++++++++++++++
>  arch/arm/mach-at91/include/mach/gpio.h   | 222 -------------------------------
>  arch/arm/mach-at91/leds.c                |   1 +
>  arch/arm/mach-at91/pm.c                  |   1 +
>  42 files changed, 263 insertions(+), 227 deletions(-)
>  create mode 100644 arch/arm/mach-at91/gpio.h
>  delete mode 100644 arch/arm/mach-at91/include/mach/gpio.h
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index c6debe07f036..4f6eb407aa64 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -360,7 +360,6 @@ config ARCH_AT91
>  	select CLKDEV_LOOKUP
>  	select HAVE_CLK
>  	select IRQ_DOMAIN
> -	select NEED_MACH_GPIO_H
>  	select NEED_MACH_IO_H if PCCARD
>  	select PINCTRL
>  	select PINCTRL_AT91 if USE_OF
> diff --git a/arch/arm/mach-at91/at91rm9200_devices.c b/arch/arm/mach-at91/at91rm9200_devices.c
> index 3ce6ba6341ed..42999ce04a32 100644
> --- a/arch/arm/mach-at91/at91rm9200_devices.c
> +++ b/arch/arm/mach-at91/at91rm9200_devices.c
> @@ -25,6 +25,7 @@
>  
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  /* --------------------------------------------------------------------
> diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
> index eda8d1679d40..428abfc14848 100644
> --- a/arch/arm/mach-at91/at91sam9260_devices.c
> +++ b/arch/arm/mach-at91/at91sam9260_devices.c
> @@ -28,7 +28,7 @@
>  
>  #include "board.h"
>  #include "generic.h"
> -
> +#include "gpio.h"
>  
>  /* --------------------------------------------------------------------
>   *  USB Host
> diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
> index 629ea5fc95cf..4e02e9271ac9 100644
> --- a/arch/arm/mach-at91/at91sam9261_devices.c
> +++ b/arch/arm/mach-at91/at91sam9261_devices.c
> @@ -28,7 +28,7 @@
>  
>  #include "board.h"
>  #include "generic.h"
> -
> +#include "gpio.h"
>  
>  /* --------------------------------------------------------------------
>   *  USB Host
> diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
> index 858c8aac2daf..3a384ef27cf6 100644
> --- a/arch/arm/mach-at91/at91sam9263_devices.c
> +++ b/arch/arm/mach-at91/at91sam9263_devices.c
> @@ -27,6 +27,7 @@
>  
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  /* --------------------------------------------------------------------
> diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c
> index acb703e13331..6b8effbffc28 100644
> --- a/arch/arm/mach-at91/at91sam9g45_devices.c
> +++ b/arch/arm/mach-at91/at91sam9g45_devices.c
> @@ -38,6 +38,7 @@
>  #include "board.h"
>  #include "generic.h"
>  #include "clock.h"
> +#include "gpio.h"
>  
>  
>  /* --------------------------------------------------------------------
> diff --git a/arch/arm/mach-at91/at91sam9rl_devices.c b/arch/arm/mach-at91/at91sam9rl_devices.c
> index 352468f265a9..6cf441cadf94 100644
> --- a/arch/arm/mach-at91/at91sam9rl_devices.c
> +++ b/arch/arm/mach-at91/at91sam9rl_devices.c
> @@ -25,6 +25,7 @@
>  
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  /* --------------------------------------------------------------------
> diff --git a/arch/arm/mach-at91/board-1arm.c b/arch/arm/mach-at91/board-1arm.c
> index 35ab632bbf68..3f6dbcc34022 100644
> --- a/arch/arm/mach-at91/board-1arm.c
> +++ b/arch/arm/mach-at91/board-1arm.c
> @@ -39,7 +39,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> -
> +#include "gpio.h"
>  
>  static void __init onearm_init_early(void)
>  {
> diff --git a/arch/arm/mach-at91/board-afeb-9260v1.c b/arch/arm/mach-at91/board-afeb-9260v1.c
> index f95e31cda4b3..597c649170aa 100644
> --- a/arch/arm/mach-at91/board-afeb-9260v1.c
> +++ b/arch/arm/mach-at91/board-afeb-9260v1.c
> @@ -46,6 +46,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init afeb9260_init_early(void)
> diff --git a/arch/arm/mach-at91/board-cam60.c b/arch/arm/mach-at91/board-cam60.c
> index ade948b82662..2e1f8a5a8b41 100644
> --- a/arch/arm/mach-at91/board-cam60.c
> +++ b/arch/arm/mach-at91/board-cam60.c
> @@ -44,6 +44,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init cam60_init_early(void)
> diff --git a/arch/arm/mach-at91/board-carmeva.c b/arch/arm/mach-at91/board-carmeva.c
> index 92983050a9bd..47313d3ee037 100644
> --- a/arch/arm/mach-at91/board-carmeva.c
> +++ b/arch/arm/mach-at91/board-carmeva.c
> @@ -39,6 +39,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init carmeva_init_early(void)
> diff --git a/arch/arm/mach-at91/board-cpu9krea.c b/arch/arm/mach-at91/board-cpu9krea.c
> index 008527efdbcf..2037f78c84e7 100644
> --- a/arch/arm/mach-at91/board-cpu9krea.c
> +++ b/arch/arm/mach-at91/board-cpu9krea.c
> @@ -48,6 +48,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  static void __init cpu9krea_init_early(void)
>  {
> diff --git a/arch/arm/mach-at91/board-cpuat91.c b/arch/arm/mach-at91/board-cpuat91.c
> index 42f1353a4baf..c094350c9314 100644
> --- a/arch/arm/mach-at91/board-cpuat91.c
> +++ b/arch/arm/mach-at91/board-cpuat91.c
> @@ -43,6 +43,8 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
> +
>  
>  static struct gpio_led cpuat91_leds[] = {
>  	{
> diff --git a/arch/arm/mach-at91/board-csb337.c b/arch/arm/mach-at91/board-csb337.c
> index e5fde215225b..0e35a45cf8d4 100644
> --- a/arch/arm/mach-at91/board-csb337.c
> +++ b/arch/arm/mach-at91/board-csb337.c
> @@ -42,7 +42,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> -
> +#include "gpio.h"
>  
>  static void __init csb337_init_early(void)
>  {
> diff --git a/arch/arm/mach-at91/board-csb637.c b/arch/arm/mach-at91/board-csb637.c
> index fdf11061c577..18d027f529a8 100644
> --- a/arch/arm/mach-at91/board-csb637.c
> +++ b/arch/arm/mach-at91/board-csb637.c
> @@ -39,6 +39,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init csb637_init_early(void)
> diff --git a/arch/arm/mach-at91/board-eb9200.c b/arch/arm/mach-at91/board-eb9200.c
> index f9be8161bbfa..aa457a8b22f5 100644
> --- a/arch/arm/mach-at91/board-eb9200.c
> +++ b/arch/arm/mach-at91/board-eb9200.c
> @@ -38,6 +38,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init eb9200_init_early(void)
> diff --git a/arch/arm/mach-at91/board-ecbat91.c b/arch/arm/mach-at91/board-ecbat91.c
> index b2fcd71262ba..ede1373ccaba 100644
> --- a/arch/arm/mach-at91/board-ecbat91.c
> +++ b/arch/arm/mach-at91/board-ecbat91.c
> @@ -42,6 +42,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init ecb_at91init_early(void)
> diff --git a/arch/arm/mach-at91/board-eco920.c b/arch/arm/mach-at91/board-eco920.c
> index 77de410efc90..4e75321a8f2a 100644
> --- a/arch/arm/mach-at91/board-eco920.c
> +++ b/arch/arm/mach-at91/board-eco920.c
> @@ -31,6 +31,8 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
> +
>  
>  static void __init eco920_init_early(void)
>  {
> diff --git a/arch/arm/mach-at91/board-flexibity.c b/arch/arm/mach-at91/board-flexibity.c
> index 737c08563628..68f1ab6bd08f 100644
> --- a/arch/arm/mach-at91/board-flexibity.c
> +++ b/arch/arm/mach-at91/board-flexibity.c
> @@ -37,6 +37,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  static void __init flexibity_init_early(void)
>  {
> diff --git a/arch/arm/mach-at91/board-foxg20.c b/arch/arm/mach-at91/board-foxg20.c
> index c20a870ea9c9..8b22c60bb238 100644
> --- a/arch/arm/mach-at91/board-foxg20.c
> +++ b/arch/arm/mach-at91/board-foxg20.c
> @@ -47,6 +47,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  /*
>   * The FOX Board G20 hardware comes as the "Netus G20" board with
> diff --git a/arch/arm/mach-at91/board-gsia18s.c b/arch/arm/mach-at91/board-gsia18s.c
> index c1d61d247790..e7da1c49cdfc 100644
> --- a/arch/arm/mach-at91/board-gsia18s.c
> +++ b/arch/arm/mach-at91/board-gsia18s.c
> @@ -38,6 +38,7 @@
>  #include "generic.h"
>  #include "gsia18s.h"
>  #include "stamp9g20.h"
> +#include "gpio.h"
>  
>  static void __init gsia18s_init_early(void)
>  {
> diff --git a/arch/arm/mach-at91/board-kafa.c b/arch/arm/mach-at91/board-kafa.c
> index 88e2f5d2d16d..93b1df42f639 100644
> --- a/arch/arm/mach-at91/board-kafa.c
> +++ b/arch/arm/mach-at91/board-kafa.c
> @@ -39,6 +39,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init kafa_init_early(void)
> diff --git a/arch/arm/mach-at91/board-kb9202.c b/arch/arm/mach-at91/board-kb9202.c
> index 0c519d9ebffc..d58d36225e08 100644
> --- a/arch/arm/mach-at91/board-kb9202.c
> +++ b/arch/arm/mach-at91/board-kb9202.c
> @@ -42,6 +42,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init kb9202_init_early(void)
> diff --git a/arch/arm/mach-at91/board-pcontrol-g20.c b/arch/arm/mach-at91/board-pcontrol-g20.c
> index 65c0d6b5ecba..3e552398af8a 100644
> --- a/arch/arm/mach-at91/board-pcontrol-g20.c
> +++ b/arch/arm/mach-at91/board-pcontrol-g20.c
> @@ -36,6 +36,7 @@
>  #include "sam9_smc.h"
>  #include "generic.h"
>  #include "stamp9g20.h"
> +#include "gpio.h"
>  
>  
>  static void __init pcontrol_g20_init_early(void)
> diff --git a/arch/arm/mach-at91/board-picotux200.c b/arch/arm/mach-at91/board-picotux200.c
> index ab2b2ec36c14..2c0f2d554d84 100644
> --- a/arch/arm/mach-at91/board-picotux200.c
> +++ b/arch/arm/mach-at91/board-picotux200.c
> @@ -43,6 +43,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init picotux200_init_early(void)
> diff --git a/arch/arm/mach-at91/board-qil-a9260.c b/arch/arm/mach-at91/board-qil-a9260.c
> index aa3bc9b0f150..81890f0c074e 100644
> --- a/arch/arm/mach-at91/board-qil-a9260.c
> +++ b/arch/arm/mach-at91/board-qil-a9260.c
> @@ -47,6 +47,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init ek_init_early(void)
> diff --git a/arch/arm/mach-at91/board-rm9200ek.c b/arch/arm/mach-at91/board-rm9200ek.c
> index 8b17dadc1aba..953cea416754 100644
> --- a/arch/arm/mach-at91/board-rm9200ek.c
> +++ b/arch/arm/mach-at91/board-rm9200ek.c
> @@ -45,6 +45,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init ek_init_early(void)
> diff --git a/arch/arm/mach-at91/board-sam9-l9260.c b/arch/arm/mach-at91/board-sam9-l9260.c
> index 43ee4dc43b50..d24dda67e2d3 100644
> --- a/arch/arm/mach-at91/board-sam9-l9260.c
> +++ b/arch/arm/mach-at91/board-sam9-l9260.c
> @@ -43,6 +43,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init ek_init_early(void)
> diff --git a/arch/arm/mach-at91/board-sam9260ek.c b/arch/arm/mach-at91/board-sam9260ek.c
> index 0b153c87521d..023d95cff384 100644
> --- a/arch/arm/mach-at91/board-sam9260ek.c
> +++ b/arch/arm/mach-at91/board-sam9260ek.c
> @@ -49,6 +49,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init ek_init_early(void)
> diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c
> index d3437624ca4e..a6170c630f0e 100644
> --- a/arch/arm/mach-at91/board-sam9261ek.c
> +++ b/arch/arm/mach-at91/board-sam9261ek.c
> @@ -53,6 +53,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init ek_init_early(void)
> diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c
> index 3284df05df14..ebfc2b56c489 100644
> --- a/arch/arm/mach-at91/board-sam9263ek.c
> +++ b/arch/arm/mach-at91/board-sam9263ek.c
> @@ -52,6 +52,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init ek_init_early(void)
> diff --git a/arch/arm/mach-at91/board-sam9g20ek.c b/arch/arm/mach-at91/board-sam9g20ek.c
> index f9cd1f2c7146..e1be6e25b380 100644
> --- a/arch/arm/mach-at91/board-sam9g20ek.c
> +++ b/arch/arm/mach-at91/board-sam9g20ek.c
> @@ -50,6 +50,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  /*
>   * board revision encoding
> diff --git a/arch/arm/mach-at91/board-sam9m10g45ek.c b/arch/arm/mach-at91/board-sam9m10g45ek.c
> index 2a94896a1375..48a8ca3fc6dc 100644
> --- a/arch/arm/mach-at91/board-sam9m10g45ek.c
> +++ b/arch/arm/mach-at91/board-sam9m10g45ek.c
> @@ -50,6 +50,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init ek_init_early(void)
> diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c
> index aa265dcf2128..eed1e60ecc6f 100644
> --- a/arch/arm/mach-at91/board-sam9rlek.c
> +++ b/arch/arm/mach-at91/board-sam9rlek.c
> @@ -38,6 +38,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init ek_init_early(void)
> diff --git a/arch/arm/mach-at91/board-snapper9260.c b/arch/arm/mach-at91/board-snapper9260.c
> index f1d49e929ccb..1b870e6def0c 100644
> --- a/arch/arm/mach-at91/board-snapper9260.c
> +++ b/arch/arm/mach-at91/board-snapper9260.c
> @@ -38,6 +38,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  #define SNAPPER9260_IO_EXP_GPIO(x)	(NR_BUILTIN_GPIO + (x))
>  
> diff --git a/arch/arm/mach-at91/board-stamp9g20.c b/arch/arm/mach-at91/board-stamp9g20.c
> index 869cbecf00b7..8a90c5cf8295 100644
> --- a/arch/arm/mach-at91/board-stamp9g20.c
> +++ b/arch/arm/mach-at91/board-stamp9g20.c
> @@ -31,6 +31,7 @@
>  #include "board.h"
>  #include "sam9_smc.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  void __init stamp9g20_init_early(void)
> diff --git a/arch/arm/mach-at91/board-yl-9200.c b/arch/arm/mach-at91/board-yl-9200.c
> index be083771df2e..46fdb0c68a68 100644
> --- a/arch/arm/mach-at91/board-yl-9200.c
> +++ b/arch/arm/mach-at91/board-yl-9200.c
> @@ -50,6 +50,7 @@
>  #include "at91_aic.h"
>  #include "board.h"
>  #include "generic.h"
> +#include "gpio.h"
>  
>  
>  static void __init yl9200_init_early(void)
> diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
> index a5afcf76550e..12ed05bbdc5c 100644
> --- a/arch/arm/mach-at91/gpio.c
> +++ b/arch/arm/mach-at91/gpio.c
> @@ -29,6 +29,7 @@
>  #include <mach/at91_pio.h>
>  
>  #include "generic.h"
> +#include "gpio.h"
>  
>  #define MAX_NB_GPIO_PER_BANK	32
>  
> diff --git a/arch/arm/mach-at91/gpio.h b/arch/arm/mach-at91/gpio.h
> new file mode 100644
> index 000000000000..5fc23771c154
> --- /dev/null
> +++ b/arch/arm/mach-at91/gpio.h
> @@ -0,0 +1,222 @@
> +/*
> + * arch/arm/mach-at91/include/mach/gpio.h
> + *
> + *  Copyright (C) 2005 HP Labs
> + *
> + * 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.
> + *
> + */
> +
> +#ifndef __ASM_ARCH_AT91RM9200_GPIO_H
> +#define __ASM_ARCH_AT91RM9200_GPIO_H
> +
> +#include <linux/kernel.h>
> +#include <asm/irq.h>
> +
> +#define MAX_GPIO_BANKS		5
> +#define NR_BUILTIN_GPIO		(MAX_GPIO_BANKS * 32)
> +
> +/* these pin numbers double as IRQ numbers, like AT91xxx_ID_* values */
> +
> +#define	AT91_PIN_PA0	(0x00 + 0)
> +#define	AT91_PIN_PA1	(0x00 + 1)
> +#define	AT91_PIN_PA2	(0x00 + 2)
> +#define	AT91_PIN_PA3	(0x00 + 3)
> +#define	AT91_PIN_PA4	(0x00 + 4)
> +#define	AT91_PIN_PA5	(0x00 + 5)
> +#define	AT91_PIN_PA6	(0x00 + 6)
> +#define	AT91_PIN_PA7	(0x00 + 7)
> +#define	AT91_PIN_PA8	(0x00 + 8)
> +#define	AT91_PIN_PA9	(0x00 + 9)
> +#define	AT91_PIN_PA10	(0x00 + 10)
> +#define	AT91_PIN_PA11	(0x00 + 11)
> +#define	AT91_PIN_PA12	(0x00 + 12)
> +#define	AT91_PIN_PA13	(0x00 + 13)
> +#define	AT91_PIN_PA14	(0x00 + 14)
> +#define	AT91_PIN_PA15	(0x00 + 15)
> +#define	AT91_PIN_PA16	(0x00 + 16)
> +#define	AT91_PIN_PA17	(0x00 + 17)
> +#define	AT91_PIN_PA18	(0x00 + 18)
> +#define	AT91_PIN_PA19	(0x00 + 19)
> +#define	AT91_PIN_PA20	(0x00 + 20)
> +#define	AT91_PIN_PA21	(0x00 + 21)
> +#define	AT91_PIN_PA22	(0x00 + 22)
> +#define	AT91_PIN_PA23	(0x00 + 23)
> +#define	AT91_PIN_PA24	(0x00 + 24)
> +#define	AT91_PIN_PA25	(0x00 + 25)
> +#define	AT91_PIN_PA26	(0x00 + 26)
> +#define	AT91_PIN_PA27	(0x00 + 27)
> +#define	AT91_PIN_PA28	(0x00 + 28)
> +#define	AT91_PIN_PA29	(0x00 + 29)
> +#define	AT91_PIN_PA30	(0x00 + 30)
> +#define	AT91_PIN_PA31	(0x00 + 31)
> +
> +#define	AT91_PIN_PB0	(0x20 + 0)
> +#define	AT91_PIN_PB1	(0x20 + 1)
> +#define	AT91_PIN_PB2	(0x20 + 2)
> +#define	AT91_PIN_PB3	(0x20 + 3)
> +#define	AT91_PIN_PB4	(0x20 + 4)
> +#define	AT91_PIN_PB5	(0x20 + 5)
> +#define	AT91_PIN_PB6	(0x20 + 6)
> +#define	AT91_PIN_PB7	(0x20 + 7)
> +#define	AT91_PIN_PB8	(0x20 + 8)
> +#define	AT91_PIN_PB9	(0x20 + 9)
> +#define	AT91_PIN_PB10	(0x20 + 10)
> +#define	AT91_PIN_PB11	(0x20 + 11)
> +#define	AT91_PIN_PB12	(0x20 + 12)
> +#define	AT91_PIN_PB13	(0x20 + 13)
> +#define	AT91_PIN_PB14	(0x20 + 14)
> +#define	AT91_PIN_PB15	(0x20 + 15)
> +#define	AT91_PIN_PB16	(0x20 + 16)
> +#define	AT91_PIN_PB17	(0x20 + 17)
> +#define	AT91_PIN_PB18	(0x20 + 18)
> +#define	AT91_PIN_PB19	(0x20 + 19)
> +#define	AT91_PIN_PB20	(0x20 + 20)
> +#define	AT91_PIN_PB21	(0x20 + 21)
> +#define	AT91_PIN_PB22	(0x20 + 22)
> +#define	AT91_PIN_PB23	(0x20 + 23)
> +#define	AT91_PIN_PB24	(0x20 + 24)
> +#define	AT91_PIN_PB25	(0x20 + 25)
> +#define	AT91_PIN_PB26	(0x20 + 26)
> +#define	AT91_PIN_PB27	(0x20 + 27)
> +#define	AT91_PIN_PB28	(0x20 + 28)
> +#define	AT91_PIN_PB29	(0x20 + 29)
> +#define	AT91_PIN_PB30	(0x20 + 30)
> +#define	AT91_PIN_PB31	(0x20 + 31)
> +
> +#define	AT91_PIN_PC0	(0x40 + 0)
> +#define	AT91_PIN_PC1	(0x40 + 1)
> +#define	AT91_PIN_PC2	(0x40 + 2)
> +#define	AT91_PIN_PC3	(0x40 + 3)
> +#define	AT91_PIN_PC4	(0x40 + 4)
> +#define	AT91_PIN_PC5	(0x40 + 5)
> +#define	AT91_PIN_PC6	(0x40 + 6)
> +#define	AT91_PIN_PC7	(0x40 + 7)
> +#define	AT91_PIN_PC8	(0x40 + 8)
> +#define	AT91_PIN_PC9	(0x40 + 9)
> +#define	AT91_PIN_PC10	(0x40 + 10)
> +#define	AT91_PIN_PC11	(0x40 + 11)
> +#define	AT91_PIN_PC12	(0x40 + 12)
> +#define	AT91_PIN_PC13	(0x40 + 13)
> +#define	AT91_PIN_PC14	(0x40 + 14)
> +#define	AT91_PIN_PC15	(0x40 + 15)
> +#define	AT91_PIN_PC16	(0x40 + 16)
> +#define	AT91_PIN_PC17	(0x40 + 17)
> +#define	AT91_PIN_PC18	(0x40 + 18)
> +#define	AT91_PIN_PC19	(0x40 + 19)
> +#define	AT91_PIN_PC20	(0x40 + 20)
> +#define	AT91_PIN_PC21	(0x40 + 21)
> +#define	AT91_PIN_PC22	(0x40 + 22)
> +#define	AT91_PIN_PC23	(0x40 + 23)
> +#define	AT91_PIN_PC24	(0x40 + 24)
> +#define	AT91_PIN_PC25	(0x40 + 25)
> +#define	AT91_PIN_PC26	(0x40 + 26)
> +#define	AT91_PIN_PC27	(0x40 + 27)
> +#define	AT91_PIN_PC28	(0x40 + 28)
> +#define	AT91_PIN_PC29	(0x40 + 29)
> +#define	AT91_PIN_PC30	(0x40 + 30)
> +#define	AT91_PIN_PC31	(0x40 + 31)
> +
> +#define	AT91_PIN_PD0	(0x60 + 0)
> +#define	AT91_PIN_PD1	(0x60 + 1)
> +#define	AT91_PIN_PD2	(0x60 + 2)
> +#define	AT91_PIN_PD3	(0x60 + 3)
> +#define	AT91_PIN_PD4	(0x60 + 4)
> +#define	AT91_PIN_PD5	(0x60 + 5)
> +#define	AT91_PIN_PD6	(0x60 + 6)
> +#define	AT91_PIN_PD7	(0x60 + 7)
> +#define	AT91_PIN_PD8	(0x60 + 8)
> +#define	AT91_PIN_PD9	(0x60 + 9)
> +#define	AT91_PIN_PD10	(0x60 + 10)
> +#define	AT91_PIN_PD11	(0x60 + 11)
> +#define	AT91_PIN_PD12	(0x60 + 12)
> +#define	AT91_PIN_PD13	(0x60 + 13)
> +#define	AT91_PIN_PD14	(0x60 + 14)
> +#define	AT91_PIN_PD15	(0x60 + 15)
> +#define	AT91_PIN_PD16	(0x60 + 16)
> +#define	AT91_PIN_PD17	(0x60 + 17)
> +#define	AT91_PIN_PD18	(0x60 + 18)
> +#define	AT91_PIN_PD19	(0x60 + 19)
> +#define	AT91_PIN_PD20	(0x60 + 20)
> +#define	AT91_PIN_PD21	(0x60 + 21)
> +#define	AT91_PIN_PD22	(0x60 + 22)
> +#define	AT91_PIN_PD23	(0x60 + 23)
> +#define	AT91_PIN_PD24	(0x60 + 24)
> +#define	AT91_PIN_PD25	(0x60 + 25)
> +#define	AT91_PIN_PD26	(0x60 + 26)
> +#define	AT91_PIN_PD27	(0x60 + 27)
> +#define	AT91_PIN_PD28	(0x60 + 28)
> +#define	AT91_PIN_PD29	(0x60 + 29)
> +#define	AT91_PIN_PD30	(0x60 + 30)
> +#define	AT91_PIN_PD31	(0x60 + 31)
> +
> +#define	AT91_PIN_PE0	(0x80 + 0)
> +#define	AT91_PIN_PE1	(0x80 + 1)
> +#define	AT91_PIN_PE2	(0x80 + 2)
> +#define	AT91_PIN_PE3	(0x80 + 3)
> +#define	AT91_PIN_PE4	(0x80 + 4)
> +#define	AT91_PIN_PE5	(0x80 + 5)
> +#define	AT91_PIN_PE6	(0x80 + 6)
> +#define	AT91_PIN_PE7	(0x80 + 7)
> +#define	AT91_PIN_PE8	(0x80 + 8)
> +#define	AT91_PIN_PE9	(0x80 + 9)
> +#define	AT91_PIN_PE10	(0x80 + 10)
> +#define	AT91_PIN_PE11	(0x80 + 11)
> +#define	AT91_PIN_PE12	(0x80 + 12)
> +#define	AT91_PIN_PE13	(0x80 + 13)
> +#define	AT91_PIN_PE14	(0x80 + 14)
> +#define	AT91_PIN_PE15	(0x80 + 15)
> +#define	AT91_PIN_PE16	(0x80 + 16)
> +#define	AT91_PIN_PE17	(0x80 + 17)
> +#define	AT91_PIN_PE18	(0x80 + 18)
> +#define	AT91_PIN_PE19	(0x80 + 19)
> +#define	AT91_PIN_PE20	(0x80 + 20)
> +#define	AT91_PIN_PE21	(0x80 + 21)
> +#define	AT91_PIN_PE22	(0x80 + 22)
> +#define	AT91_PIN_PE23	(0x80 + 23)
> +#define	AT91_PIN_PE24	(0x80 + 24)
> +#define	AT91_PIN_PE25	(0x80 + 25)
> +#define	AT91_PIN_PE26	(0x80 + 26)
> +#define	AT91_PIN_PE27	(0x80 + 27)
> +#define	AT91_PIN_PE28	(0x80 + 28)
> +#define	AT91_PIN_PE29	(0x80 + 29)
> +#define	AT91_PIN_PE30	(0x80 + 30)
> +#define	AT91_PIN_PE31	(0x80 + 31)
> +
> +#ifndef __ASSEMBLY__
> +/* setup setup routines, called from board init or driver probe() */
> +extern int __init_or_module at91_set_GPIO_periph(unsigned pin, int use_pullup);
> +extern int __init_or_module at91_set_A_periph(unsigned pin, int use_pullup);
> +extern int __init_or_module at91_set_B_periph(unsigned pin, int use_pullup);
> +extern int __init_or_module at91_set_C_periph(unsigned pin, int use_pullup);
> +extern int __init_or_module at91_set_D_periph(unsigned pin, int use_pullup);
> +extern int __init_or_module at91_set_gpio_input(unsigned pin, int use_pullup);
> +extern int __init_or_module at91_set_gpio_output(unsigned pin, int value);
> +extern int __init_or_module at91_set_deglitch(unsigned pin, int is_on);
> +extern int __init_or_module at91_set_debounce(unsigned pin, int is_on, int div);
> +extern int __init_or_module at91_set_multi_drive(unsigned pin, int is_on);
> +extern int __init_or_module at91_set_pulldown(unsigned pin, int is_on);
> +extern int __init_or_module at91_disable_schmitt_trig(unsigned pin);
> +
> +/* callable at any time */
> +extern int at91_set_gpio_value(unsigned pin, int value);
> +extern int at91_get_gpio_value(unsigned pin);
> +
> +/* callable only from core power-management code */
> +extern void at91_gpio_suspend(void);
> +extern void at91_gpio_resume(void);
> +
> +#ifdef CONFIG_PINCTRL_AT91
> +extern void at91_pinctrl_gpio_suspend(void);
> +extern void at91_pinctrl_gpio_resume(void);
> +#else
> +static inline void at91_pinctrl_gpio_suspend(void) {}
> +static inline void at91_pinctrl_gpio_resume(void) {}
> +#endif
> +
> +#endif	/* __ASSEMBLY__ */
> +
> +#endif
> diff --git a/arch/arm/mach-at91/include/mach/gpio.h b/arch/arm/mach-at91/include/mach/gpio.h
> deleted file mode 100644
> index 5fc23771c154..000000000000
> --- a/arch/arm/mach-at91/include/mach/gpio.h
> +++ /dev/null
> @@ -1,222 +0,0 @@
> -/*
> - * arch/arm/mach-at91/include/mach/gpio.h
> - *
> - *  Copyright (C) 2005 HP Labs
> - *
> - * 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.
> - *
> - */
> -
> -#ifndef __ASM_ARCH_AT91RM9200_GPIO_H
> -#define __ASM_ARCH_AT91RM9200_GPIO_H
> -
> -#include <linux/kernel.h>
> -#include <asm/irq.h>
> -
> -#define MAX_GPIO_BANKS		5
> -#define NR_BUILTIN_GPIO		(MAX_GPIO_BANKS * 32)
> -
> -/* these pin numbers double as IRQ numbers, like AT91xxx_ID_* values */
> -
> -#define	AT91_PIN_PA0	(0x00 + 0)
> -#define	AT91_PIN_PA1	(0x00 + 1)
> -#define	AT91_PIN_PA2	(0x00 + 2)
> -#define	AT91_PIN_PA3	(0x00 + 3)
> -#define	AT91_PIN_PA4	(0x00 + 4)
> -#define	AT91_PIN_PA5	(0x00 + 5)
> -#define	AT91_PIN_PA6	(0x00 + 6)
> -#define	AT91_PIN_PA7	(0x00 + 7)
> -#define	AT91_PIN_PA8	(0x00 + 8)
> -#define	AT91_PIN_PA9	(0x00 + 9)
> -#define	AT91_PIN_PA10	(0x00 + 10)
> -#define	AT91_PIN_PA11	(0x00 + 11)
> -#define	AT91_PIN_PA12	(0x00 + 12)
> -#define	AT91_PIN_PA13	(0x00 + 13)
> -#define	AT91_PIN_PA14	(0x00 + 14)
> -#define	AT91_PIN_PA15	(0x00 + 15)
> -#define	AT91_PIN_PA16	(0x00 + 16)
> -#define	AT91_PIN_PA17	(0x00 + 17)
> -#define	AT91_PIN_PA18	(0x00 + 18)
> -#define	AT91_PIN_PA19	(0x00 + 19)
> -#define	AT91_PIN_PA20	(0x00 + 20)
> -#define	AT91_PIN_PA21	(0x00 + 21)
> -#define	AT91_PIN_PA22	(0x00 + 22)
> -#define	AT91_PIN_PA23	(0x00 + 23)
> -#define	AT91_PIN_PA24	(0x00 + 24)
> -#define	AT91_PIN_PA25	(0x00 + 25)
> -#define	AT91_PIN_PA26	(0x00 + 26)
> -#define	AT91_PIN_PA27	(0x00 + 27)
> -#define	AT91_PIN_PA28	(0x00 + 28)
> -#define	AT91_PIN_PA29	(0x00 + 29)
> -#define	AT91_PIN_PA30	(0x00 + 30)
> -#define	AT91_PIN_PA31	(0x00 + 31)
> -
> -#define	AT91_PIN_PB0	(0x20 + 0)
> -#define	AT91_PIN_PB1	(0x20 + 1)
> -#define	AT91_PIN_PB2	(0x20 + 2)
> -#define	AT91_PIN_PB3	(0x20 + 3)
> -#define	AT91_PIN_PB4	(0x20 + 4)
> -#define	AT91_PIN_PB5	(0x20 + 5)
> -#define	AT91_PIN_PB6	(0x20 + 6)
> -#define	AT91_PIN_PB7	(0x20 + 7)
> -#define	AT91_PIN_PB8	(0x20 + 8)
> -#define	AT91_PIN_PB9	(0x20 + 9)
> -#define	AT91_PIN_PB10	(0x20 + 10)
> -#define	AT91_PIN_PB11	(0x20 + 11)
> -#define	AT91_PIN_PB12	(0x20 + 12)
> -#define	AT91_PIN_PB13	(0x20 + 13)
> -#define	AT91_PIN_PB14	(0x20 + 14)
> -#define	AT91_PIN_PB15	(0x20 + 15)
> -#define	AT91_PIN_PB16	(0x20 + 16)
> -#define	AT91_PIN_PB17	(0x20 + 17)
> -#define	AT91_PIN_PB18	(0x20 + 18)
> -#define	AT91_PIN_PB19	(0x20 + 19)
> -#define	AT91_PIN_PB20	(0x20 + 20)
> -#define	AT91_PIN_PB21	(0x20 + 21)
> -#define	AT91_PIN_PB22	(0x20 + 22)
> -#define	AT91_PIN_PB23	(0x20 + 23)
> -#define	AT91_PIN_PB24	(0x20 + 24)
> -#define	AT91_PIN_PB25	(0x20 + 25)
> -#define	AT91_PIN_PB26	(0x20 + 26)
> -#define	AT91_PIN_PB27	(0x20 + 27)
> -#define	AT91_PIN_PB28	(0x20 + 28)
> -#define	AT91_PIN_PB29	(0x20 + 29)
> -#define	AT91_PIN_PB30	(0x20 + 30)
> -#define	AT91_PIN_PB31	(0x20 + 31)
> -
> -#define	AT91_PIN_PC0	(0x40 + 0)
> -#define	AT91_PIN_PC1	(0x40 + 1)
> -#define	AT91_PIN_PC2	(0x40 + 2)
> -#define	AT91_PIN_PC3	(0x40 + 3)
> -#define	AT91_PIN_PC4	(0x40 + 4)
> -#define	AT91_PIN_PC5	(0x40 + 5)
> -#define	AT91_PIN_PC6	(0x40 + 6)
> -#define	AT91_PIN_PC7	(0x40 + 7)
> -#define	AT91_PIN_PC8	(0x40 + 8)
> -#define	AT91_PIN_PC9	(0x40 + 9)
> -#define	AT91_PIN_PC10	(0x40 + 10)
> -#define	AT91_PIN_PC11	(0x40 + 11)
> -#define	AT91_PIN_PC12	(0x40 + 12)
> -#define	AT91_PIN_PC13	(0x40 + 13)
> -#define	AT91_PIN_PC14	(0x40 + 14)
> -#define	AT91_PIN_PC15	(0x40 + 15)
> -#define	AT91_PIN_PC16	(0x40 + 16)
> -#define	AT91_PIN_PC17	(0x40 + 17)
> -#define	AT91_PIN_PC18	(0x40 + 18)
> -#define	AT91_PIN_PC19	(0x40 + 19)
> -#define	AT91_PIN_PC20	(0x40 + 20)
> -#define	AT91_PIN_PC21	(0x40 + 21)
> -#define	AT91_PIN_PC22	(0x40 + 22)
> -#define	AT91_PIN_PC23	(0x40 + 23)
> -#define	AT91_PIN_PC24	(0x40 + 24)
> -#define	AT91_PIN_PC25	(0x40 + 25)
> -#define	AT91_PIN_PC26	(0x40 + 26)
> -#define	AT91_PIN_PC27	(0x40 + 27)
> -#define	AT91_PIN_PC28	(0x40 + 28)
> -#define	AT91_PIN_PC29	(0x40 + 29)
> -#define	AT91_PIN_PC30	(0x40 + 30)
> -#define	AT91_PIN_PC31	(0x40 + 31)
> -
> -#define	AT91_PIN_PD0	(0x60 + 0)
> -#define	AT91_PIN_PD1	(0x60 + 1)
> -#define	AT91_PIN_PD2	(0x60 + 2)
> -#define	AT91_PIN_PD3	(0x60 + 3)
> -#define	AT91_PIN_PD4	(0x60 + 4)
> -#define	AT91_PIN_PD5	(0x60 + 5)
> -#define	AT91_PIN_PD6	(0x60 + 6)
> -#define	AT91_PIN_PD7	(0x60 + 7)
> -#define	AT91_PIN_PD8	(0x60 + 8)
> -#define	AT91_PIN_PD9	(0x60 + 9)
> -#define	AT91_PIN_PD10	(0x60 + 10)
> -#define	AT91_PIN_PD11	(0x60 + 11)
> -#define	AT91_PIN_PD12	(0x60 + 12)
> -#define	AT91_PIN_PD13	(0x60 + 13)
> -#define	AT91_PIN_PD14	(0x60 + 14)
> -#define	AT91_PIN_PD15	(0x60 + 15)
> -#define	AT91_PIN_PD16	(0x60 + 16)
> -#define	AT91_PIN_PD17	(0x60 + 17)
> -#define	AT91_PIN_PD18	(0x60 + 18)
> -#define	AT91_PIN_PD19	(0x60 + 19)
> -#define	AT91_PIN_PD20	(0x60 + 20)
> -#define	AT91_PIN_PD21	(0x60 + 21)
> -#define	AT91_PIN_PD22	(0x60 + 22)
> -#define	AT91_PIN_PD23	(0x60 + 23)
> -#define	AT91_PIN_PD24	(0x60 + 24)
> -#define	AT91_PIN_PD25	(0x60 + 25)
> -#define	AT91_PIN_PD26	(0x60 + 26)
> -#define	AT91_PIN_PD27	(0x60 + 27)
> -#define	AT91_PIN_PD28	(0x60 + 28)
> -#define	AT91_PIN_PD29	(0x60 + 29)
> -#define	AT91_PIN_PD30	(0x60 + 30)
> -#define	AT91_PIN_PD31	(0x60 + 31)
> -
> -#define	AT91_PIN_PE0	(0x80 + 0)
> -#define	AT91_PIN_PE1	(0x80 + 1)
> -#define	AT91_PIN_PE2	(0x80 + 2)
> -#define	AT91_PIN_PE3	(0x80 + 3)
> -#define	AT91_PIN_PE4	(0x80 + 4)
> -#define	AT91_PIN_PE5	(0x80 + 5)
> -#define	AT91_PIN_PE6	(0x80 + 6)
> -#define	AT91_PIN_PE7	(0x80 + 7)
> -#define	AT91_PIN_PE8	(0x80 + 8)
> -#define	AT91_PIN_PE9	(0x80 + 9)
> -#define	AT91_PIN_PE10	(0x80 + 10)
> -#define	AT91_PIN_PE11	(0x80 + 11)
> -#define	AT91_PIN_PE12	(0x80 + 12)
> -#define	AT91_PIN_PE13	(0x80 + 13)
> -#define	AT91_PIN_PE14	(0x80 + 14)
> -#define	AT91_PIN_PE15	(0x80 + 15)
> -#define	AT91_PIN_PE16	(0x80 + 16)
> -#define	AT91_PIN_PE17	(0x80 + 17)
> -#define	AT91_PIN_PE18	(0x80 + 18)
> -#define	AT91_PIN_PE19	(0x80 + 19)
> -#define	AT91_PIN_PE20	(0x80 + 20)
> -#define	AT91_PIN_PE21	(0x80 + 21)
> -#define	AT91_PIN_PE22	(0x80 + 22)
> -#define	AT91_PIN_PE23	(0x80 + 23)
> -#define	AT91_PIN_PE24	(0x80 + 24)
> -#define	AT91_PIN_PE25	(0x80 + 25)
> -#define	AT91_PIN_PE26	(0x80 + 26)
> -#define	AT91_PIN_PE27	(0x80 + 27)
> -#define	AT91_PIN_PE28	(0x80 + 28)
> -#define	AT91_PIN_PE29	(0x80 + 29)
> -#define	AT91_PIN_PE30	(0x80 + 30)
> -#define	AT91_PIN_PE31	(0x80 + 31)
> -
> -#ifndef __ASSEMBLY__
> -/* setup setup routines, called from board init or driver probe() */
> -extern int __init_or_module at91_set_GPIO_periph(unsigned pin, int use_pullup);
> -extern int __init_or_module at91_set_A_periph(unsigned pin, int use_pullup);
> -extern int __init_or_module at91_set_B_periph(unsigned pin, int use_pullup);
> -extern int __init_or_module at91_set_C_periph(unsigned pin, int use_pullup);
> -extern int __init_or_module at91_set_D_periph(unsigned pin, int use_pullup);
> -extern int __init_or_module at91_set_gpio_input(unsigned pin, int use_pullup);
> -extern int __init_or_module at91_set_gpio_output(unsigned pin, int value);
> -extern int __init_or_module at91_set_deglitch(unsigned pin, int is_on);
> -extern int __init_or_module at91_set_debounce(unsigned pin, int is_on, int div);
> -extern int __init_or_module at91_set_multi_drive(unsigned pin, int is_on);
> -extern int __init_or_module at91_set_pulldown(unsigned pin, int is_on);
> -extern int __init_or_module at91_disable_schmitt_trig(unsigned pin);
> -
> -/* callable at any time */
> -extern int at91_set_gpio_value(unsigned pin, int value);
> -extern int at91_get_gpio_value(unsigned pin);
> -
> -/* callable only from core power-management code */
> -extern void at91_gpio_suspend(void);
> -extern void at91_gpio_resume(void);
> -
> -#ifdef CONFIG_PINCTRL_AT91
> -extern void at91_pinctrl_gpio_suspend(void);
> -extern void at91_pinctrl_gpio_resume(void);
> -#else
> -static inline void at91_pinctrl_gpio_suspend(void) {}
> -static inline void at91_pinctrl_gpio_resume(void) {}
> -#endif
> -
> -#endif	/* __ASSEMBLY__ */
> -
> -#endif
> diff --git a/arch/arm/mach-at91/leds.c b/arch/arm/mach-at91/leds.c
> index 3e22978b5547..77c4d8fd03fd 100644
> --- a/arch/arm/mach-at91/leds.c
> +++ b/arch/arm/mach-at91/leds.c
> @@ -16,6 +16,7 @@
>  #include <linux/platform_device.h>
>  
>  #include "board.h"
> +#include "gpio.h"
>  
>  
>  /* ------------------------------------------------------------------------- */
> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
> index 15afb5d9271f..d04610cc9608 100644
> --- a/arch/arm/mach-at91/pm.c
> +++ b/arch/arm/mach-at91/pm.c
> @@ -31,6 +31,7 @@
>  #include "at91_aic.h"
>  #include "generic.h"
>  #include "pm.h"
> +#include "gpio.h"
>  
>  /*
>   * Show the reason for the previous system reset.
> 

-- 
Nicolas Ferre