Merge branch 'gpio/next' of git://git.secretlab.ca/git/linux-2.6
Linus Torvalds [Sat, 29 Oct 2011 14:27:45 +0000 (07:27 -0700)]
* 'gpio/next' of git://git.secretlab.ca/git/linux-2.6:
  h8300: Move gpio.h to gpio-internal.h
  gpio: pl061: add DT binding support
  gpio: fix build error in include/asm-generic/gpio.h
  gpiolib: Ensure struct gpio is always defined
  irq: Add EXPORT_SYMBOL_GPL to function of irq generic-chip
  gpio-ml-ioh: Use NUMA_NO_NODE not GFP_KERNEL
  gpio-pch: Use NUMA_NO_NODE not GFP_KERNEL
  gpio: langwell: ensure alternate function is cleared
  gpio-pch: Support interrupt function
  gpio-pch: Save register value in suspend()
  gpio-pch: modify gpio_nums and mask
  gpio-pch: support ML7223 IOH n-Bus
  gpio-pch: add spinlock in suspend/resume processing
  gpio-pch: Delete invalid "restore" code in suspend()
  gpio-ml-ioh: Fix suspend/resume issue
  gpio-ml-ioh: Support interrupt function
  gpio-ml-ioh: Delete unnecessary code
  gpio/mxc: add chained_irq_enter/exit() to mx3_gpio_irq_handler()
  gpio/nomadik: use genirq core to track enablement
  gpio/nomadik: disable clocks when unused

1  2 
arch/arm/plat-nomadik/include/plat/gpio-nomadik.h
drivers/gpio/Kconfig
drivers/gpio/gpio-nomadik.c

index 3ba4d8f,0000000..9605bf2
mode 100644,000000..100644
--- /dev/null
@@@ -1,85 -1,0 +1,88 @@@
 +/*
 + * Structures and registers for GPIO access in the Nomadik SoC
 + *
 + * Copyright (C) 2008 STMicroelectronics
 + *     Author: Prafulla WADASKAR <prafulla.wadaskar@st.com>
 + * Copyright (C) 2009 Alessandro Rubini <rubini@unipv.it>
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
 + * published by the Free Software Foundation.
 + */
 +
 +#ifndef __PLAT_NOMADIK_GPIO
 +#define __PLAT_NOMADIK_GPIO
 +
 +/*
 + * "nmk_gpio" and "NMK_GPIO" stand for "Nomadik GPIO", leaving
 + * the "gpio" namespace for generic and cross-machine functions
 + */
 +
 +/* Register in the logic block */
 +#define NMK_GPIO_DAT  0x00
 +#define NMK_GPIO_DATS 0x04
 +#define NMK_GPIO_DATC 0x08
 +#define NMK_GPIO_PDIS 0x0c
 +#define NMK_GPIO_DIR  0x10
 +#define NMK_GPIO_DIRS 0x14
 +#define NMK_GPIO_DIRC 0x18
 +#define NMK_GPIO_SLPC 0x1c
 +#define NMK_GPIO_AFSLA        0x20
 +#define NMK_GPIO_AFSLB        0x24
 +
 +#define NMK_GPIO_RIMSC        0x40
 +#define NMK_GPIO_FIMSC        0x44
 +#define NMK_GPIO_IS   0x48
 +#define NMK_GPIO_IC   0x4c
 +#define NMK_GPIO_RWIMSC       0x50
 +#define NMK_GPIO_FWIMSC       0x54
 +#define NMK_GPIO_WKS  0x58
 +
 +/* Alternate functions: function C is set in hw by setting both A and B */
 +#define NMK_GPIO_ALT_GPIO     0
 +#define NMK_GPIO_ALT_A        1
 +#define NMK_GPIO_ALT_B        2
 +#define NMK_GPIO_ALT_C        (NMK_GPIO_ALT_A | NMK_GPIO_ALT_B)
 +
 +/* Pull up/down values */
 +enum nmk_gpio_pull {
 +      NMK_GPIO_PULL_NONE,
 +      NMK_GPIO_PULL_UP,
 +      NMK_GPIO_PULL_DOWN,
 +};
 +
 +/* Sleep mode */
 +enum nmk_gpio_slpm {
 +      NMK_GPIO_SLPM_INPUT,
 +      NMK_GPIO_SLPM_WAKEUP_ENABLE = NMK_GPIO_SLPM_INPUT,
 +      NMK_GPIO_SLPM_NOCHANGE,
 +      NMK_GPIO_SLPM_WAKEUP_DISABLE = NMK_GPIO_SLPM_NOCHANGE,
 +};
 +
 +extern int nmk_gpio_set_slpm(int gpio, enum nmk_gpio_slpm mode);
 +extern int nmk_gpio_set_pull(int gpio, enum nmk_gpio_pull pull);
 +extern int nmk_gpio_set_mode(int gpio, int gpio_mode);
 +extern int nmk_gpio_get_mode(int gpio);
 +
 +extern void nmk_gpio_wakeups_suspend(void);
 +extern void nmk_gpio_wakeups_resume(void);
 +
++extern void nmk_gpio_clocks_enable(void);
++extern void nmk_gpio_clocks_disable(void);
++
 +extern void nmk_gpio_read_pull(int gpio_bank, u32 *pull_up);
 +
 +/*
 + * Platform data to register a block: only the initial gpio/irq number.
 + */
 +struct nmk_gpio_platform_data {
 +      char *name;
 +      int first_gpio;
 +      int first_irq;
 +      int num_gpio;
 +      u32 (*get_secondary_status)(unsigned int bank);
 +      void (*set_ioforce)(bool enable);
 +      bool supports_sleepmode;
 +};
 +
 +#endif /* __PLAT_NOMADIK_GPIO */
Simple merge
Simple merge