tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git gpio-driver-h head: 8589e607647a24701fd4ef97c3fd4f513b934a37 commit: bb6cb425abe015e2a96365664cd1bdd2bf8871a7 [37/38] pinctrl: Include <linux/gpio/driver.h> nothing else config: arm-allmodconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout bb6cb425abe015e2a96365664cd1bdd2bf8871a7 # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=arm All error/warnings (new ones prefixed by >>): In file included from include/linux/cache.h:5:0, from include/linux/printk.h:9, from include/linux/kernel.h:14, from drivers//pinctrl/nomadik/pinctrl-nomadik.c:13: >> drivers//pinctrl/nomadik/pinctrl-nomadik.c:206:36: error: 'ARCH_NR_GPIOS' undeclared here (not in a function); did you mean 'PRCM_IDX_GPIOCR3'? #define NMK_MAX_BANKS DIV_ROUND_UP(ARCH_NR_GPIOS, NMK_GPIO_PER_CHIP) ^ include/uapi/linux/kernel.h:13:40: note: in definition of macro '__KERNEL_DIV_ROUND_UP' #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) ^ >> drivers//pinctrl/nomadik/pinctrl-nomadik.c:286:45: note: in expansion of macro 'NMK_MAX_BANKS' static struct nmk_gpio_chip *nmk_gpio_chips[NMK_MAX_BANKS]; ^~~~~~~~~~~~~ In file included from include/linux/kernel.h:15:0, from drivers//pinctrl/nomadik/pinctrl-nomadik.c:13: drivers//pinctrl/nomadik/pinctrl-nomadik.c: In function 'nmk_gpio_glitch_slpm_init': include/linux/build_bug.h:29:45: error: bit-field '<anonymous>' width not an integer constant #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:(-!!(e)); })) ^ include/linux/compiler-gcc.h:75:28: note: in expansion of macro 'BUILD_BUG_ON_ZERO' #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:72:59: note: in expansion of macro '__must_be_array' #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^~~~~~~~~~~~~~~ >> drivers//pinctrl/nomadik/pinctrl-nomadik.c:290:19: note: in expansion of macro 'ARRAY_SIZE' #define NUM_BANKS ARRAY_SIZE(nmk_gpio_chips) ^~~~~~~~~~ >> drivers//pinctrl/nomadik/pinctrl-nomadik.c:551:18: note: in expansion of macro 'NUM_BANKS' for (i = 0; i < NUM_BANKS; i++) { ^~~~~~~~~ drivers//pinctrl/nomadik/pinctrl-nomadik.c: In function 'nmk_gpio_glitch_slpm_restore': include/linux/build_bug.h:29:45: error: bit-field '<anonymous>' width not an integer constant #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:(-!!(e)); })) ^ include/linux/compiler-gcc.h:75:28: note: in expansion of macro 'BUILD_BUG_ON_ZERO' #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:72:59: note: in expansion of macro '__must_be_array' #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^~~~~~~~~~~~~~~ >> drivers//pinctrl/nomadik/pinctrl-nomadik.c:290:19: note: in expansion of macro 'ARRAY_SIZE' #define NUM_BANKS ARRAY_SIZE(nmk_gpio_chips) ^~~~~~~~~~ drivers//pinctrl/nomadik/pinctrl-nomadik.c:569:18: note: in expansion of macro 'NUM_BANKS' for (i = 0; i < NUM_BANKS; i++) { ^~~~~~~~~ drivers//pinctrl/nomadik/pinctrl-nomadik.c: In function 'nmk_gpio_dbg_show_one': >> drivers//pinctrl/nomadik/pinctrl-nomadik.c:974:13: error: implicit declaration of function 'gpio_to_irq'; did you mean 'gpiod_to_chip'? [-Werror=implicit-function-declaration] int irq = gpio_to_irq(gpio); ^~~~~~~~~~~ gpiod_to_chip In file included from include/linux/kernel.h:10:0, from drivers//pinctrl/nomadik/pinctrl-nomadik.c:13: drivers//pinctrl/nomadik/pinctrl-nomadik.c: In function 'nmk_gpio_populate_chip': include/linux/build_bug.h:29:45: error: bit-field '<anonymous>' width not an integer constant #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:(-!!(e)); })) ^ include/linux/compiler.h:77:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ >> drivers//pinctrl/nomadik/pinctrl-nomadik.c:1090:2: note: in expansion of macro 'BUG_ON' BUG_ON(nmk_chip->bank >= ARRAY_SIZE(nmk_gpio_chips)); ^~~~~~ include/linux/compiler-gcc.h:75:28: note: in expansion of macro 'BUILD_BUG_ON_ZERO' #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:72:59: note: in expansion of macro '__must_be_array' #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^~~~~~~~~~~~~~~ drivers//pinctrl/nomadik/pinctrl-nomadik.c:1090:27: note: in expansion of macro 'ARRAY_SIZE' BUG_ON(nmk_chip->bank >= ARRAY_SIZE(nmk_gpio_chips)); ^~~~~~~~~~ In file included from include/linux/kernel.h:15:0, from drivers//pinctrl/nomadik/pinctrl-nomadik.c:13: drivers//pinctrl/nomadik/pinctrl-nomadik.c: In function 'nmk_pmx_set': include/linux/build_bug.h:29:45: error: bit-field '<anonymous>' width not an integer constant #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:(-!!(e)); })) ^ include/linux/compiler-gcc.h:75:28: note: in expansion of macro 'BUILD_BUG_ON_ZERO' #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0])) ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:72:59: note: in expansion of macro '__must_be_array' #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ^~~~~~~~~~~~~~~ >> drivers//pinctrl/nomadik/pinctrl-nomadik.c:290:19: note: in expansion of macro 'ARRAY_SIZE' #define NUM_BANKS ARRAY_SIZE(nmk_gpio_chips) ^~~~~~~~~~ drivers//pinctrl/nomadik/pinctrl-nomadik.c:1554:27: note: in expansion of macro 'NUM_BANKS' static unsigned int slpm[NUM_BANKS]; ^~~~~~~~~ drivers//pinctrl/nomadik/pinctrl-nomadik.c:1554:22: warning: unused variable 'slpm' [-Wunused-variable] static unsigned int slpm[NUM_BANKS]; ^~~~ At top level: drivers//pinctrl/nomadik/pinctrl-nomadik.c:286:30: warning: 'nmk_gpio_chips' defined but not used [-Wunused-variable] static struct nmk_gpio_chip *nmk_gpio_chips[NMK_MAX_BANKS]; ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/kernel.h:14:0, from include/linux/clk.h:16, from drivers//pinctrl/pinctrl-at91.c:9: drivers//pinctrl/pinctrl-at91.c: In function 'alt_gpio_irq_type': >> drivers//pinctrl/pinctrl-at91.c:1490:41: error: implicit declaration of function 'gpio_to_irq'; did you mean 'gpiod_to_chip'? [-Werror=implicit-function-declaration] pr_warn("AT91: No type for irq %d\n", gpio_to_irq(d->irq)); ^ include/linux/printk.h:310:37: note: in definition of macro 'pr_warning' printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~ >> drivers//pinctrl/pinctrl-at91.c:1490:3: note: in expansion of macro 'pr_warn' pr_warn("AT91: No type for irq %d\n", gpio_to_irq(d->irq)); ^~~~~~~ cc1: some warnings being treated as errors -- drivers//pinctrl/vt8500/pinctrl-wmt.c: In function 'wmt_gpio_get_direction': drivers//pinctrl/vt8500/pinctrl-wmt.c:492:6: warning: unused variable 'bit' [-Wunused-variable] u32 bit = WMT_BIT_FROM_PIN(offset); ^~~ >> drivers//pinctrl/vt8500/pinctrl-wmt.c:498:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ vim +206 drivers//pinctrl/nomadik/pinctrl-nomadik.c 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 @13 #include <linux/kernel.h> 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 14 #include <linux/init.h> 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 15 #include <linux/device.h> 3e3c62ca5 arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-03-03 16 #include <linux/platform_device.h> 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 17 #include <linux/io.h> af7dc2281 arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-05-06 18 #include <linux/clk.h> af7dc2281 arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-05-06 19 #include <linux/err.h> bb6cb425a drivers/pinctrl/nomadik/pinctrl-nomadik.c Linus Walleij 2018-09-13 20 #include <linux/gpio/driver.h> 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 21 #include <linux/spinlock.h> 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 22 #include <linux/interrupt.h> 5a0e3ad6a arch/arm/mach-nomadik/gpio.c Tejun Heo 2010-03-24 23 #include <linux/slab.h> 855f80cd1 drivers/pinctrl/pinctrl-nomadik.c Lee Jones 2012-05-26 24 #include <linux/of_device.h> 32e67eee6 drivers/pinctrl/pinctrl-nomadik.c Lee Jones 2013-01-11 25 #include <linux/of_address.h> 5e81e0a09 drivers/pinctrl/nomadik/pinctrl-nomadik.c Linus Walleij 2016-04-28 26 #include <linux/bitops.h> e32af8894 drivers/pinctrl/pinctrl-nomadik.c Gabriel Fernandez 2012-12-17 27 #include <linux/pinctrl/machine.h> e98ea774c drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-04-26 28 #include <linux/pinctrl/pinctrl.h> dbfe8ca25 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-05-02 29 #include <linux/pinctrl/pinmux.h> d41af6276 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-05-03 30 #include <linux/pinctrl/pinconf.h> dbfe8ca25 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-05-02 31 /* Since we request GPIOs from ourself */ dbfe8ca25 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-05-02 32 #include <linux/pinctrl/consumer.h> e98ea774c drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-04-26 33 #include "pinctrl-nomadik.h" 3a1980592 drivers/pinctrl/nomadik/pinctrl-nomadik.c Linus Walleij 2014-07-11 34 #include "../core.h" ba388294a drivers/pinctrl/nomadik/pinctrl-nomadik.c Linus Walleij 2014-09-29 35 #include "../pinctrl-utils.h" e98ea774c drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-04-26 36 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 37 /* 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 38 * The GPIO module in the Nomadik family of Systems-on-Chip is an 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 39 * AMBA device, managing 32 pins and alternate functions. The logic block 9c66ee6f5 arch/arm/plat-nomadik/gpio.c Jonas Aaberg 2010-10-13 40 * is currently used in the Nomadik and ux500. 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 41 * 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 42 * Symbols in this file are called "nmk_gpio" for "nomadik gpio" 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 43 */ 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 44 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 45 /* 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 46 * pin configurations are represented by 32-bit integers: 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 47 * 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 48 * bit 0.. 8 - Pin Number (512 Pins Maximum) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 49 * bit 9..10 - Alternate Function Selection 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 50 * bit 11..12 - Pull up/down state 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 51 * bit 13 - Sleep mode behaviour 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 52 * bit 14 - Direction 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 53 * bit 15 - Value (if output) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 54 * bit 16..18 - SLPM pull up/down state 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 55 * bit 19..20 - SLPM direction 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 56 * bit 21..22 - SLPM Value (if output) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 57 * bit 23..25 - PDIS value (if input) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 58 * bit 26 - Gpio mode 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 59 * bit 27 - Sleep mode 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 60 * 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 61 * to facilitate the definition, the following macros are provided 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 62 * 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 63 * PIN_CFG_DEFAULT - default config (0): 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 64 * pull up/down = disabled 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 65 * sleep mode = input/wakeup 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 66 * direction = input 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 67 * value = low 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 68 * SLPM direction = same as normal 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 69 * SLPM pull = same as normal 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 70 * SLPM value = same as normal 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 71 * 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 72 * PIN_CFG - default config with alternate function 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 73 */ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 74 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 75 typedef unsigned long pin_cfg_t; 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 76 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 77 #define PIN_NUM_MASK 0x1ff 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 78 #define PIN_NUM(x) ((x) & PIN_NUM_MASK) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 79 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 80 #define PIN_ALT_SHIFT 9 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 81 #define PIN_ALT_MASK (0x3 << PIN_ALT_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 82 #define PIN_ALT(x) (((x) & PIN_ALT_MASK) >> PIN_ALT_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 83 #define PIN_GPIO (NMK_GPIO_ALT_GPIO << PIN_ALT_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 84 #define PIN_ALT_A (NMK_GPIO_ALT_A << PIN_ALT_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 85 #define PIN_ALT_B (NMK_GPIO_ALT_B << PIN_ALT_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 86 #define PIN_ALT_C (NMK_GPIO_ALT_C << PIN_ALT_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 87 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 88 #define PIN_PULL_SHIFT 11 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 89 #define PIN_PULL_MASK (0x3 << PIN_PULL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 90 #define PIN_PULL(x) (((x) & PIN_PULL_MASK) >> PIN_PULL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 91 #define PIN_PULL_NONE (NMK_GPIO_PULL_NONE << PIN_PULL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 92 #define PIN_PULL_UP (NMK_GPIO_PULL_UP << PIN_PULL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 93 #define PIN_PULL_DOWN (NMK_GPIO_PULL_DOWN << PIN_PULL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 94 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 95 #define PIN_SLPM_SHIFT 13 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 96 #define PIN_SLPM_MASK (0x1 << PIN_SLPM_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 97 #define PIN_SLPM(x) (((x) & PIN_SLPM_MASK) >> PIN_SLPM_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 98 #define PIN_SLPM_MAKE_INPUT (NMK_GPIO_SLPM_INPUT << PIN_SLPM_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 99 #define PIN_SLPM_NOCHANGE (NMK_GPIO_SLPM_NOCHANGE << PIN_SLPM_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 100 /* These two replace the above in DB8500v2+ */ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 101 #define PIN_SLPM_WAKEUP_ENABLE (NMK_GPIO_SLPM_WAKEUP_ENABLE << PIN_SLPM_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 102 #define PIN_SLPM_WAKEUP_DISABLE (NMK_GPIO_SLPM_WAKEUP_DISABLE << PIN_SLPM_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 103 #define PIN_SLPM_USE_MUX_SETTINGS_IN_SLEEP PIN_SLPM_WAKEUP_DISABLE 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 104 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 105 #define PIN_SLPM_GPIO PIN_SLPM_WAKEUP_ENABLE /* In SLPM, pin is a gpio */ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 106 #define PIN_SLPM_ALTFUNC PIN_SLPM_WAKEUP_DISABLE /* In SLPM, pin is altfunc */ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 107 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 108 #define PIN_DIR_SHIFT 14 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 109 #define PIN_DIR_MASK (0x1 << PIN_DIR_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 110 #define PIN_DIR(x) (((x) & PIN_DIR_MASK) >> PIN_DIR_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 111 #define PIN_DIR_INPUT (0 << PIN_DIR_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 112 #define PIN_DIR_OUTPUT (1 << PIN_DIR_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 113 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 114 #define PIN_VAL_SHIFT 15 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 115 #define PIN_VAL_MASK (0x1 << PIN_VAL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 116 #define PIN_VAL(x) (((x) & PIN_VAL_MASK) >> PIN_VAL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 117 #define PIN_VAL_LOW (0 << PIN_VAL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 118 #define PIN_VAL_HIGH (1 << PIN_VAL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 119 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 120 #define PIN_SLPM_PULL_SHIFT 16 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 121 #define PIN_SLPM_PULL_MASK (0x7 << PIN_SLPM_PULL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 122 #define PIN_SLPM_PULL(x) \ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 123 (((x) & PIN_SLPM_PULL_MASK) >> PIN_SLPM_PULL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 124 #define PIN_SLPM_PULL_NONE \ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 125 ((1 + NMK_GPIO_PULL_NONE) << PIN_SLPM_PULL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 126 #define PIN_SLPM_PULL_UP \ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 127 ((1 + NMK_GPIO_PULL_UP) << PIN_SLPM_PULL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 128 #define PIN_SLPM_PULL_DOWN \ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 129 ((1 + NMK_GPIO_PULL_DOWN) << PIN_SLPM_PULL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 130 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 131 #define PIN_SLPM_DIR_SHIFT 19 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 132 #define PIN_SLPM_DIR_MASK (0x3 << PIN_SLPM_DIR_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 133 #define PIN_SLPM_DIR(x) \ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 134 (((x) & PIN_SLPM_DIR_MASK) >> PIN_SLPM_DIR_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 135 #define PIN_SLPM_DIR_INPUT ((1 + 0) << PIN_SLPM_DIR_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 136 #define PIN_SLPM_DIR_OUTPUT ((1 + 1) << PIN_SLPM_DIR_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 137 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 138 #define PIN_SLPM_VAL_SHIFT 21 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 139 #define PIN_SLPM_VAL_MASK (0x3 << PIN_SLPM_VAL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 140 #define PIN_SLPM_VAL(x) \ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 141 (((x) & PIN_SLPM_VAL_MASK) >> PIN_SLPM_VAL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 142 #define PIN_SLPM_VAL_LOW ((1 + 0) << PIN_SLPM_VAL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 143 #define PIN_SLPM_VAL_HIGH ((1 + 1) << PIN_SLPM_VAL_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 144 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 145 #define PIN_SLPM_PDIS_SHIFT 23 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 146 #define PIN_SLPM_PDIS_MASK (0x3 << PIN_SLPM_PDIS_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 147 #define PIN_SLPM_PDIS(x) \ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 148 (((x) & PIN_SLPM_PDIS_MASK) >> PIN_SLPM_PDIS_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 149 #define PIN_SLPM_PDIS_NO_CHANGE (0 << PIN_SLPM_PDIS_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 150 #define PIN_SLPM_PDIS_DISABLED (1 << PIN_SLPM_PDIS_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 151 #define PIN_SLPM_PDIS_ENABLED (2 << PIN_SLPM_PDIS_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 152 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 153 #define PIN_LOWEMI_SHIFT 25 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 154 #define PIN_LOWEMI_MASK (0x1 << PIN_LOWEMI_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 155 #define PIN_LOWEMI(x) (((x) & PIN_LOWEMI_MASK) >> PIN_LOWEMI_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 156 #define PIN_LOWEMI_DISABLED (0 << PIN_LOWEMI_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 157 #define PIN_LOWEMI_ENABLED (1 << PIN_LOWEMI_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 158 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 159 #define PIN_GPIOMODE_SHIFT 26 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 160 #define PIN_GPIOMODE_MASK (0x1 << PIN_GPIOMODE_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 161 #define PIN_GPIOMODE(x) (((x) & PIN_GPIOMODE_MASK) >> PIN_GPIOMODE_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 162 #define PIN_GPIOMODE_DISABLED (0 << PIN_GPIOMODE_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 163 #define PIN_GPIOMODE_ENABLED (1 << PIN_GPIOMODE_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 164 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 165 #define PIN_SLEEPMODE_SHIFT 27 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 166 #define PIN_SLEEPMODE_MASK (0x1 << PIN_SLEEPMODE_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 167 #define PIN_SLEEPMODE(x) (((x) & PIN_SLEEPMODE_MASK) >> PIN_SLEEPMODE_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 168 #define PIN_SLEEPMODE_DISABLED (0 << PIN_SLEEPMODE_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 169 #define PIN_SLEEPMODE_ENABLED (1 << PIN_SLEEPMODE_SHIFT) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 170 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 171 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 172 /* Shortcuts. Use these instead of separate DIR, PULL, and VAL. */ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 173 #define PIN_INPUT_PULLDOWN (PIN_DIR_INPUT | PIN_PULL_DOWN) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 174 #define PIN_INPUT_PULLUP (PIN_DIR_INPUT | PIN_PULL_UP) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 175 #define PIN_INPUT_NOPULL (PIN_DIR_INPUT | PIN_PULL_NONE) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 176 #define PIN_OUTPUT_LOW (PIN_DIR_OUTPUT | PIN_VAL_LOW) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 177 #define PIN_OUTPUT_HIGH (PIN_DIR_OUTPUT | PIN_VAL_HIGH) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 178 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 179 #define PIN_SLPM_INPUT_PULLDOWN (PIN_SLPM_DIR_INPUT | PIN_SLPM_PULL_DOWN) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 180 #define PIN_SLPM_INPUT_PULLUP (PIN_SLPM_DIR_INPUT | PIN_SLPM_PULL_UP) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 181 #define PIN_SLPM_INPUT_NOPULL (PIN_SLPM_DIR_INPUT | PIN_SLPM_PULL_NONE) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 182 #define PIN_SLPM_OUTPUT_LOW (PIN_SLPM_DIR_OUTPUT | PIN_SLPM_VAL_LOW) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 183 #define PIN_SLPM_OUTPUT_HIGH (PIN_SLPM_DIR_OUTPUT | PIN_SLPM_VAL_HIGH) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 184 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 185 #define PIN_CFG_DEFAULT (0) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 186 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 187 #define PIN_CFG(num, alt) \ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 188 (PIN_CFG_DEFAULT |\ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 189 (PIN_NUM(num) | PIN_##alt)) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 190 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 191 #define PIN_CFG_INPUT(num, alt, pull) \ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 192 (PIN_CFG_DEFAULT |\ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 193 (PIN_NUM(num) | PIN_##alt | PIN_INPUT_##pull)) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 194 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 195 #define PIN_CFG_OUTPUT(num, alt, val) \ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 196 (PIN_CFG_DEFAULT |\ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 197 (PIN_NUM(num) | PIN_##alt | PIN_OUTPUT_##val)) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 198 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 199 /* 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 200 * "nmk_gpio" and "NMK_GPIO" stand for "Nomadik GPIO", leaving 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 201 * the "gpio" namespace for generic and cross-machine functions 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 202 */ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 203 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 204 #define GPIO_BLOCK_SHIFT 5 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 205 #define NMK_GPIO_PER_CHIP (1 << GPIO_BLOCK_SHIFT) bc222ef4f drivers/pinctrl/nomadik/pinctrl-nomadik.c Linus Walleij 2015-06-17 @206 #define NMK_MAX_BANKS DIV_ROUND_UP(ARCH_NR_GPIOS, NMK_GPIO_PER_CHIP) 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 207 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 208 /* Register in the logic block */ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 209 #define NMK_GPIO_DAT 0x00 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 210 #define NMK_GPIO_DATS 0x04 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 211 #define NMK_GPIO_DATC 0x08 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 212 #define NMK_GPIO_PDIS 0x0c 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 213 #define NMK_GPIO_DIR 0x10 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 214 #define NMK_GPIO_DIRS 0x14 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 215 #define NMK_GPIO_DIRC 0x18 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 216 #define NMK_GPIO_SLPC 0x1c 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 217 #define NMK_GPIO_AFSLA 0x20 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 218 #define NMK_GPIO_AFSLB 0x24 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 219 #define NMK_GPIO_LOWEMI 0x28 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 220 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 221 #define NMK_GPIO_RIMSC 0x40 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 222 #define NMK_GPIO_FIMSC 0x44 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 223 #define NMK_GPIO_IS 0x48 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 224 #define NMK_GPIO_IC 0x4c 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 225 #define NMK_GPIO_RWIMSC 0x50 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 226 #define NMK_GPIO_FWIMSC 0x54 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 227 #define NMK_GPIO_WKS 0x58 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 228 /* These appear in DB8540 and later ASICs */ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 229 #define NMK_GPIO_EDGELEVEL 0x5C 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 230 #define NMK_GPIO_LEVEL 0x60 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 231 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 232 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 233 /* Pull up/down values */ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 234 enum nmk_gpio_pull { 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 235 NMK_GPIO_PULL_NONE, 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 236 NMK_GPIO_PULL_UP, 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 237 NMK_GPIO_PULL_DOWN, 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 238 }; 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 239 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 240 /* Sleep mode */ 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 241 enum nmk_gpio_slpm { 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 242 NMK_GPIO_SLPM_INPUT, 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 243 NMK_GPIO_SLPM_WAKEUP_ENABLE = NMK_GPIO_SLPM_INPUT, 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 244 NMK_GPIO_SLPM_NOCHANGE, 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 245 NMK_GPIO_SLPM_WAKEUP_DISABLE = NMK_GPIO_SLPM_NOCHANGE, 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 246 }; 8d9933971 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2013-11-19 247 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 248 struct nmk_gpio_chip { 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 249 struct gpio_chip chip; 3007d941b drivers/pinctrl/nomadik/pinctrl-nomadik.c Linus Walleij 2015-05-06 250 struct irq_chip irqchip; 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 251 void __iomem *addr; af7dc2281 arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-05-06 252 struct clk *clk; 33b744b35 arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-10-14 253 unsigned int bank; 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 254 unsigned int parent_irq; 194e15ba0 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2014-03-21 255 int latent_parent_irq; 194e15ba0 drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2014-03-21 256 u32 (*get_latent_status)(unsigned int bank); 01727e61f arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-12-13 257 void (*set_ioforce)(bool enable); c0fcb8dba arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-03-03 258 spinlock_t lock; 33d78647d drivers/gpio/gpio-nomadik.c Linus Walleij 2011-06-09 259 bool sleepmode; 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 260 /* Keep track of configured edges */ 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 261 u32 edge_rising; 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 262 u32 edge_falling; b9df468d8 arch/arm/plat-nomadik/gpio.c Rabin Vincent 2011-02-10 263 u32 real_wake; b9df468d8 arch/arm/plat-nomadik/gpio.c Rabin Vincent 2011-02-10 264 u32 rwimsc; b9df468d8 arch/arm/plat-nomadik/gpio.c Rabin Vincent 2011-02-10 265 u32 fwimsc; 6c12fe888 drivers/gpio/gpio-nomadik.c Rabin Vincent 2011-05-23 266 u32 rimsc; 6c12fe888 drivers/gpio/gpio-nomadik.c Rabin Vincent 2011-05-23 267 u32 fimsc; bc6f5cf64 drivers/gpio/gpio-nomadik.c Rickard Andersson 2011-05-24 268 u32 pull_up; ebc6178da drivers/gpio/gpio-nomadik.c Rabin Vincent 2011-09-28 269 u32 lowemi; 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 270 }; 2ec1d3594 arch/arm/mach-nomadik/gpio.c Alessandro Rubini 2009-07-02 271 f1671bf5f drivers/pinctrl/pinctrl-nomadik.c Jonas Aaberg 2012-10-25 272 /** f1671bf5f drivers/pinctrl/pinctrl-nomadik.c Jonas Aaberg 2012-10-25 273 * struct nmk_pinctrl - state container for the Nomadik pin controller f1671bf5f drivers/pinctrl/pinctrl-nomadik.c Jonas Aaberg 2012-10-25 274 * @dev: containing device pointer f1671bf5f drivers/pinctrl/pinctrl-nomadik.c Jonas Aaberg 2012-10-25 275 * @pctl: corresponding pin controller device f1671bf5f drivers/pinctrl/pinctrl-nomadik.c Jonas Aaberg 2012-10-25 276 * @soc: SoC data for this specific chip f1671bf5f drivers/pinctrl/pinctrl-nomadik.c Jonas Aaberg 2012-10-25 277 * @prcm_base: PRCM register range virtual base f1671bf5f drivers/pinctrl/pinctrl-nomadik.c Jonas Aaberg 2012-10-25 278 */ e98ea774c drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-04-26 279 struct nmk_pinctrl { e98ea774c drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-04-26 280 struct device *dev; e98ea774c drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-04-26 281 struct pinctrl_dev *pctl; e98ea774c drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-04-26 282 const struct nmk_pinctrl_soc_data *soc; f1671bf5f drivers/pinctrl/pinctrl-nomadik.c Jonas Aaberg 2012-10-25 283 void __iomem *prcm_base; e98ea774c drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-04-26 284 }; e98ea774c drivers/pinctrl/pinctrl-nomadik.c Linus Walleij 2012-04-26 285 bc222ef4f drivers/pinctrl/nomadik/pinctrl-nomadik.c Linus Walleij 2015-06-17 @286 static struct nmk_gpio_chip *nmk_gpio_chips[NMK_MAX_BANKS]; 01727e61f arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-12-13 287 01727e61f arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-12-13 288 static DEFINE_SPINLOCK(nmk_gpio_slpm_lock); 01727e61f arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-12-13 289 01727e61f arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-12-13 @290 #define NUM_BANKS ARRAY_SIZE(nmk_gpio_chips) 01727e61f arch/arm/plat-nomadik/gpio.c Rabin Vincent 2010-12-13 291 :::::: The code at line 206 was first introduced by commit :::::: bc222ef4f79fa0003ef5a0af8090372e3bd8a783 pinctrl: nomadik: break out state container allocator :::::: TO: Linus Walleij <linus.walleij@xxxxxxxxxx> :::::: CC: Linus Walleij <linus.walleij@xxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip