Searched refs:gpio (Results 1 - 200 of 1965) sorted by relevance

12345678910

/linux-4.1.27/arch/mips/include/asm/mach-generic/
H A Dgpio.h9 int gpio_request(unsigned gpio, const char *label);
10 void gpio_free(unsigned gpio);
11 int gpio_direction_input(unsigned gpio);
12 int gpio_direction_output(unsigned gpio, int value);
13 int gpio_get_value(unsigned gpio);
14 void gpio_set_value(unsigned gpio, int value);
16 int gpio_to_irq(unsigned gpio);
19 #include <asm-generic/gpio.h> /* cansleep wrappers */
/linux-4.1.27/sound/aoa/core/
H A DMakefile4 gpio-pmf.o \
5 gpio-feature.o
/linux-4.1.27/arch/mips/include/asm/mach-cavium-octeon/
H A Dgpio.h9 int gpio_request(unsigned gpio, const char *label);
10 void gpio_free(unsigned gpio);
11 int gpio_direction_input(unsigned gpio);
12 int gpio_direction_output(unsigned gpio, int value);
13 int gpio_get_value(unsigned gpio);
14 void gpio_set_value(unsigned gpio, int value);
17 #include <asm-generic/gpio.h>
/linux-4.1.27/arch/m68k/include/asm/
H A Dgpio.h26 * If the gpio is a compile time constant and is one of the Coldfire gpios,
30 static inline int gpio_get_value(unsigned gpio) gpio_get_value() argument
32 if (__builtin_constant_p(gpio) && gpio < MCFGPIO_PIN_MAX) gpio_get_value()
33 return mcfgpio_read(__mcfgpio_ppdr(gpio)) & mcfgpio_bit(gpio); gpio_get_value()
35 return __gpio_get_value(gpio); gpio_get_value()
38 static inline void gpio_set_value(unsigned gpio, int value) gpio_set_value() argument
40 if (__builtin_constant_p(gpio) && gpio < MCFGPIO_PIN_MAX) { gpio_set_value()
41 if (gpio < MCFGPIO_SCR_START) { gpio_set_value()
46 data = mcfgpio_read(__mcfgpio_podr(gpio)); gpio_set_value()
48 data |= mcfgpio_bit(gpio); gpio_set_value()
50 data &= ~mcfgpio_bit(gpio); gpio_set_value()
51 mcfgpio_write(data, __mcfgpio_podr(gpio)); gpio_set_value()
55 mcfgpio_write(mcfgpio_bit(gpio), gpio_set_value()
56 MCFGPIO_SETR_PORT(gpio)); gpio_set_value()
58 mcfgpio_write(~mcfgpio_bit(gpio), gpio_set_value()
59 MCFGPIO_CLRR_PORT(gpio)); gpio_set_value()
62 __gpio_set_value(gpio, value); gpio_set_value()
65 static inline int gpio_to_irq(unsigned gpio) gpio_to_irq() argument
68 if ((gpio >= MCFGPIO_IRQ_MIN) && (gpio < MCFGPIO_IRQ_MAX)) gpio_to_irq()
70 if (gpio < MCFGPIO_IRQ_MAX) gpio_to_irq()
72 return gpio + MCFGPIO_IRQ_VECBASE; gpio_to_irq()
74 return __gpio_to_irq(gpio); gpio_to_irq()
84 static inline int gpio_cansleep(unsigned gpio) gpio_cansleep() argument
86 return gpio < MCFGPIO_PIN_MAX ? 0 : __gpio_cansleep(gpio); gpio_cansleep()
90 static inline int gpio_request_one(unsigned gpio, unsigned long flags, const char *label) gpio_request_one() argument
94 err = gpio_request(gpio, label); gpio_request_one()
99 err = gpio_direction_input(gpio); gpio_request_one()
101 err = gpio_direction_output(gpio, gpio_request_one()
105 gpio_free(gpio); gpio_request_one()
H A Dmcfgpio.h20 #include <asm-generic/gpio.h>
23 int __mcfgpio_get_value(unsigned gpio);
24 void __mcfgpio_set_value(unsigned gpio, int value);
25 int __mcfgpio_direction_input(unsigned gpio);
26 int __mcfgpio_direction_output(unsigned gpio, int value);
27 int __mcfgpio_request(unsigned gpio);
28 void __mcfgpio_free(unsigned gpio);
31 static inline int __gpio_get_value(unsigned gpio) __gpio_get_value() argument
33 if (gpio < MCFGPIO_PIN_MAX) __gpio_get_value()
34 return __mcfgpio_get_value(gpio); __gpio_get_value()
39 static inline void __gpio_set_value(unsigned gpio, int value) __gpio_set_value() argument
41 if (gpio < MCFGPIO_PIN_MAX) __gpio_set_value()
42 __mcfgpio_set_value(gpio, value); __gpio_set_value()
45 static inline int __gpio_cansleep(unsigned gpio) __gpio_cansleep() argument
47 if (gpio < MCFGPIO_PIN_MAX) __gpio_cansleep()
53 static inline int __gpio_to_irq(unsigned gpio) __gpio_to_irq() argument
58 static inline int gpio_direction_input(unsigned gpio) gpio_direction_input() argument
60 if (gpio < MCFGPIO_PIN_MAX) gpio_direction_input()
61 return __mcfgpio_direction_input(gpio); gpio_direction_input()
66 static inline int gpio_direction_output(unsigned gpio, int value) gpio_direction_output() argument
68 if (gpio < MCFGPIO_PIN_MAX) gpio_direction_output()
69 return __mcfgpio_direction_output(gpio, value); gpio_direction_output()
74 static inline int gpio_request(unsigned gpio, const char *label) gpio_request() argument
76 if (gpio < MCFGPIO_PIN_MAX) gpio_request()
77 return __mcfgpio_request(gpio); gpio_request()
82 static inline void gpio_free(unsigned gpio) gpio_free() argument
84 if (gpio < MCFGPIO_PIN_MAX) gpio_free()
85 __mcfgpio_free(gpio); gpio_free()
137 #define mcfgpio_bit(gpio) (1 << ((gpio) % MCFGPIO_PORTSIZE))
138 #define mcfgpio_port(gpio) ((gpio) / MCFGPIO_PORTSIZE)
162 #define MCFGPIO_SETR_PORT(gpio) (MCFGPIO_SETR + \
163 mcfgpio_port(gpio - MCFGPIO_SCR_START))
165 #define MCFGPIO_CLRR_PORT(gpio) (MCFGPIO_CLRR + \
166 mcfgpio_port(gpio - MCFGPIO_SCR_START))
171 #define MCFGPIO_SETR_PORT(gpio) 0
172 #define MCFGPIO_CLRR_PORT(gpio) 0
179 /* return the port pin data register for a gpio */ __mcfgpio_ppdr()
180 static inline u32 __mcfgpio_ppdr(unsigned gpio) __mcfgpio_ppdr() argument
186 if (gpio < 16) __mcfgpio_ppdr()
188 else if (gpio < 32) __mcfgpio_ppdr()
193 if (gpio < 32) __mcfgpio_ppdr()
202 if (gpio < 8) __mcfgpio_ppdr()
205 else if (gpio < 16) __mcfgpio_ppdr()
207 else if (gpio < 24) __mcfgpio_ppdr()
209 else if (gpio < 32) __mcfgpio_ppdr()
211 else if (gpio < 40) __mcfgpio_ppdr()
216 return MCFGPIO_PPDR + mcfgpio_port(gpio - MCFGPIO_SCR_START); __mcfgpio_ppdr()
222 /* return the port output data register for a gpio */ __mcfgpio_podr()
223 static inline u32 __mcfgpio_podr(unsigned gpio) __mcfgpio_podr() argument
229 if (gpio < 16) __mcfgpio_podr()
231 else if (gpio < 32) __mcfgpio_podr()
236 if (gpio < 32) __mcfgpio_podr()
245 if (gpio < 8) __mcfgpio_podr()
248 else if (gpio < 16) __mcfgpio_podr()
250 else if (gpio < 24) __mcfgpio_podr()
252 else if (gpio < 32) __mcfgpio_podr()
254 else if (gpio < 40) __mcfgpio_podr()
259 return MCFGPIO_PODR + mcfgpio_port(gpio - MCFGPIO_SCR_START); __mcfgpio_podr()
265 /* return the port direction data register for a gpio */ __mcfgpio_pddr()
266 static inline u32 __mcfgpio_pddr(unsigned gpio) __mcfgpio_pddr() argument
272 if (gpio < 16) __mcfgpio_pddr()
274 else if (gpio < 32) __mcfgpio_pddr()
279 if (gpio < 32) __mcfgpio_pddr()
288 if (gpio < 8) __mcfgpio_pddr()
291 else if (gpio < 16) __mcfgpio_pddr()
293 else if (gpio < 24) __mcfgpio_pddr()
295 else if (gpio < 32) __mcfgpio_pddr()
297 else if (gpio < 40) __mcfgpio_pddr()
302 return MCFGPIO_PDDR + mcfgpio_port(gpio - MCFGPIO_SCR_START); __mcfgpio_pddr()
/linux-4.1.27/arch/mips/ar7/
H A DMakefile9 gpio.o \
H A Dgpio.c22 #include <linux/gpio.h>
24 #include <asm/mach-ar7/gpio.h>
31 static int ar7_gpio_get_value(struct gpio_chip *chip, unsigned gpio) ar7_gpio_get_value() argument
37 return readl(gpio_in) & (1 << gpio); ar7_gpio_get_value()
40 static int titan_gpio_get_value(struct gpio_chip *chip, unsigned gpio) titan_gpio_get_value() argument
47 return readl(gpio >> 5 ? gpio_in1 : gpio_in0) & (1 << (gpio & 0x1f)); titan_gpio_get_value()
51 unsigned gpio, int value) ar7_gpio_set_value()
58 tmp = readl(gpio_out) & ~(1 << gpio); ar7_gpio_set_value()
60 tmp |= 1 << gpio; ar7_gpio_set_value()
65 unsigned gpio, int value) titan_gpio_set_value()
73 tmp = readl(gpio >> 5 ? gpio_out1 : gpio_out0) & ~(1 << (gpio & 0x1f)); titan_gpio_set_value()
75 tmp |= 1 << (gpio & 0x1f); titan_gpio_set_value()
76 writel(tmp, gpio >> 5 ? gpio_out1 : gpio_out0); titan_gpio_set_value()
79 static int ar7_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) ar7_gpio_direction_input() argument
85 writel(readl(gpio_dir) | (1 << gpio), gpio_dir); ar7_gpio_direction_input()
90 static int titan_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) titan_gpio_direction_input() argument
97 if (gpio >= TITAN_GPIO_MAX) titan_gpio_direction_input()
100 writel(readl(gpio >> 5 ? gpio_dir1 : gpio_dir0) | (1 << (gpio & 0x1f)), titan_gpio_direction_input()
101 gpio >> 5 ? gpio_dir1 : gpio_dir0); titan_gpio_direction_input()
106 unsigned gpio, int value) ar7_gpio_direction_output()
112 ar7_gpio_set_value(chip, gpio, value); ar7_gpio_direction_output()
113 writel(readl(gpio_dir) & ~(1 << gpio), gpio_dir); ar7_gpio_direction_output()
119 unsigned gpio, int value) titan_gpio_direction_output()
126 if (gpio >= TITAN_GPIO_MAX) titan_gpio_direction_output()
129 titan_gpio_set_value(chip, gpio, value); titan_gpio_direction_output()
130 writel(readl(gpio >> 5 ? gpio_dir1 : gpio_dir0) & ~(1 << titan_gpio_direction_output()
131 (gpio & 0x1f)), gpio >> 5 ? gpio_dir1 : gpio_dir0); titan_gpio_direction_output()
138 .label = "ar7-gpio",
150 .label = "titan-gpio",
160 static inline int ar7_gpio_enable_ar7(unsigned gpio) ar7_gpio_enable_ar7() argument
164 writel(readl(gpio_en) | (1 << gpio), gpio_en); ar7_gpio_enable_ar7()
169 static inline int ar7_gpio_enable_titan(unsigned gpio) ar7_gpio_enable_titan() argument
174 writel(readl(gpio >> 5 ? gpio_en1 : gpio_en0) | (1 << (gpio & 0x1f)), ar7_gpio_enable_titan()
175 gpio >> 5 ? gpio_en1 : gpio_en0); ar7_gpio_enable_titan()
180 int ar7_gpio_enable(unsigned gpio) ar7_gpio_enable() argument
182 return ar7_is_titan() ? ar7_gpio_enable_titan(gpio) : ar7_gpio_enable()
183 ar7_gpio_enable_ar7(gpio); ar7_gpio_enable()
187 static inline int ar7_gpio_disable_ar7(unsigned gpio) ar7_gpio_disable_ar7() argument
191 writel(readl(gpio_en) & ~(1 << gpio), gpio_en); ar7_gpio_disable_ar7()
196 static inline int ar7_gpio_disable_titan(unsigned gpio) ar7_gpio_disable_titan() argument
201 writel(readl(gpio >> 5 ? gpio_en1 : gpio_en0) & ~(1 << (gpio & 0x1f)), ar7_gpio_disable_titan()
202 gpio >> 5 ? gpio_en1 : gpio_en0); ar7_gpio_disable_titan()
207 int ar7_gpio_disable(unsigned gpio) ar7_gpio_disable() argument
209 return ar7_is_titan() ? ar7_gpio_disable_titan(gpio) : ar7_gpio_disable()
210 ar7_gpio_disable_ar7(gpio); ar7_gpio_disable()
276 static int titan_gpio_pinsel(unsigned gpio) titan_gpio_pinsel() argument
282 if (gpio >= ARRAY_SIZE(titan_gpio_table)) titan_gpio_pinsel()
285 gpio_cfg = titan_gpio_table[gpio]; titan_gpio_pinsel()
50 ar7_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) ar7_gpio_set_value() argument
64 titan_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) titan_gpio_set_value() argument
105 ar7_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int value) ar7_gpio_direction_output() argument
118 titan_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int value) titan_gpio_direction_output() argument
/linux-4.1.27/arch/mips/include/asm/
H A Dgpio.h4 #include <gpio.h>
/linux-4.1.27/arch/avr32/include/asm/
H A Dgpio.h4 #include <mach/gpio.h>
/linux-4.1.27/arch/mips/include/asm/mach-au1x00/
H A Dgpio-au1300.h2 * gpio-au1300.h -- GPIO control for Au1300 GPIC and compatibles.
14 struct gpio;
28 static inline int au1300_gpio_get_value(unsigned int gpio) au1300_gpio_get_value() argument
33 gpio -= AU1300_GPIO_BASE; au1300_gpio_get_value()
34 roff += GPIC_GPIO_BANKOFF(gpio); au1300_gpio_get_value()
35 bit = GPIC_GPIO_TO_BIT(gpio); au1300_gpio_get_value()
39 static inline int au1300_gpio_direction_input(unsigned int gpio) au1300_gpio_direction_input() argument
44 gpio -= AU1300_GPIO_BASE; au1300_gpio_direction_input()
46 roff += GPIC_GPIO_BANKOFF(gpio); au1300_gpio_direction_input()
47 bit = GPIC_GPIO_TO_BIT(gpio); au1300_gpio_direction_input()
54 static inline int au1300_gpio_set_value(unsigned int gpio, int v) au1300_gpio_set_value() argument
59 gpio -= AU1300_GPIO_BASE; au1300_gpio_set_value()
61 roff += GPIC_GPIO_BANKOFF(gpio); au1300_gpio_set_value()
62 bit = GPIC_GPIO_TO_BIT(gpio); au1300_gpio_set_value()
70 static inline int au1300_gpio_direction_output(unsigned int gpio, int v) au1300_gpio_direction_output() argument
73 return au1300_gpio_set_value(gpio, v); au1300_gpio_direction_output()
76 static inline int au1300_gpio_to_irq(unsigned int gpio) au1300_gpio_to_irq() argument
78 return AU1300_FIRST_INT + (gpio - AU1300_GPIO_BASE); au1300_gpio_to_irq()
86 static inline int au1300_gpio_is_valid(unsigned int gpio) au1300_gpio_is_valid() argument
92 ret = ((gpio >= AU1300_GPIO_BASE) && (gpio <= AU1300_GPIO_MAX)); au1300_gpio_is_valid()
100 static inline int au1300_gpio_cansleep(unsigned int gpio) au1300_gpio_cansleep() argument
105 /* hardware remembers gpio 0-63 levels on powerup */ au1300_gpio_getinitlvl()
106 static inline int au1300_gpio_getinitlvl(unsigned int gpio) au1300_gpio_getinitlvl() argument
111 if (unlikely(gpio > 63)) au1300_gpio_getinitlvl()
113 else if (gpio > 31) { au1300_gpio_getinitlvl()
114 gpio -= 32; au1300_gpio_getinitlvl()
119 return (v >> gpio) & 1; au1300_gpio_getinitlvl()
124 /* Linux gpio framework integration.
133 * the boards' gpio.h must provide the linux gpio wrapper functions,
136 * inlinable gpio functions are provided which enable access to the
154 static inline int gpio_direction_input(unsigned int gpio) gpio_direction_input() argument
156 return au1300_gpio_direction_input(gpio); gpio_direction_input()
159 static inline int gpio_direction_output(unsigned int gpio, int v) gpio_direction_output() argument
161 return au1300_gpio_direction_output(gpio, v); gpio_direction_output()
164 static inline int gpio_get_value(unsigned int gpio) gpio_get_value() argument
166 return au1300_gpio_get_value(gpio); gpio_get_value()
169 static inline void gpio_set_value(unsigned int gpio, int v) gpio_set_value() argument
171 au1300_gpio_set_value(gpio, v); gpio_set_value()
174 static inline int gpio_get_value_cansleep(unsigned gpio) gpio_get_value_cansleep() argument
176 return gpio_get_value(gpio); gpio_get_value_cansleep()
179 static inline void gpio_set_value_cansleep(unsigned gpio, int value) gpio_set_value_cansleep() argument
181 gpio_set_value(gpio, value); gpio_set_value_cansleep()
184 static inline int gpio_is_valid(unsigned int gpio) gpio_is_valid() argument
186 return au1300_gpio_is_valid(gpio); gpio_is_valid()
189 static inline int gpio_cansleep(unsigned int gpio) gpio_cansleep() argument
191 return au1300_gpio_cansleep(gpio); gpio_cansleep()
194 static inline int gpio_to_irq(unsigned int gpio) gpio_to_irq() argument
196 return au1300_gpio_to_irq(gpio); gpio_to_irq()
204 static inline int gpio_request(unsigned int gpio, const char *label) gpio_request() argument
209 static inline int gpio_request_one(unsigned gpio, gpio_request_one() argument
215 static inline int gpio_request_array(struct gpio *array, size_t num) gpio_request_array()
220 static inline void gpio_free(unsigned gpio) gpio_free() argument
224 static inline void gpio_free_array(struct gpio *array, size_t num) gpio_free_array()
228 static inline int gpio_set_debounce(unsigned gpio, unsigned debounce) gpio_set_debounce() argument
233 static inline void gpio_unexport(unsigned gpio) gpio_unexport() argument
237 static inline int gpio_export(unsigned gpio, bool direction_may_change) gpio_export() argument
242 static inline int gpio_sysfs_set_active_low(unsigned gpio, int value) gpio_sysfs_set_active_low() argument
248 unsigned gpio) gpio_export_link()
247 gpio_export_link(struct device *dev, const char *name, unsigned gpio) gpio_export_link() argument
H A Dgpio-au1000.h43 struct gpio;
45 static inline int au1000_gpio1_to_irq(int gpio) au1000_gpio1_to_irq() argument
47 return MAKE_IRQ(1, gpio - ALCHEMY_GPIO1_BASE); au1000_gpio1_to_irq()
50 static inline int au1000_gpio2_to_irq(int gpio) au1000_gpio2_to_irq() argument
63 static inline int au1500_gpio1_to_irq(int gpio) au1500_gpio1_to_irq() argument
65 gpio -= ALCHEMY_GPIO1_BASE; au1500_gpio1_to_irq()
67 switch (gpio) { au1500_gpio1_to_irq()
70 case 23 ... 28: return MAKE_IRQ(1, gpio); au1500_gpio1_to_irq()
76 static inline int au1500_gpio2_to_irq(int gpio) au1500_gpio2_to_irq() argument
78 gpio -= ALCHEMY_GPIO2_BASE; au1500_gpio2_to_irq()
80 switch (gpio) { au1500_gpio2_to_irq()
81 case 0 ... 3: return MAKE_IRQ(1, 16 + gpio - 0); au1500_gpio2_to_irq()
82 case 4 ... 5: return MAKE_IRQ(1, 21 + gpio - 4); au1500_gpio2_to_irq()
83 case 6 ... 7: return MAKE_IRQ(1, 29 + gpio - 6); au1500_gpio2_to_irq()
109 static inline int au1100_gpio1_to_irq(int gpio) au1100_gpio1_to_irq() argument
111 return MAKE_IRQ(1, gpio - ALCHEMY_GPIO1_BASE); au1100_gpio1_to_irq()
114 static inline int au1100_gpio2_to_irq(int gpio) au1100_gpio2_to_irq() argument
116 gpio -= ALCHEMY_GPIO2_BASE; au1100_gpio2_to_irq()
118 if ((gpio >= 8) && (gpio <= 15)) au1100_gpio2_to_irq()
136 static inline int au1550_gpio1_to_irq(int gpio) au1550_gpio1_to_irq() argument
138 gpio -= ALCHEMY_GPIO1_BASE; au1550_gpio1_to_irq()
140 switch (gpio) { au1550_gpio1_to_irq()
142 case 20 ... 28: return MAKE_IRQ(1, gpio); au1550_gpio1_to_irq()
143 case 16 ... 17: return MAKE_IRQ(1, 18 + gpio - 16); au1550_gpio1_to_irq()
149 static inline int au1550_gpio2_to_irq(int gpio) au1550_gpio2_to_irq() argument
151 gpio -= ALCHEMY_GPIO2_BASE; au1550_gpio2_to_irq()
153 switch (gpio) { au1550_gpio2_to_irq()
156 case 6 ... 7: return MAKE_IRQ(1, 29 + gpio - 6); au1550_gpio2_to_irq()
180 static inline int au1200_gpio1_to_irq(int gpio) au1200_gpio1_to_irq() argument
182 return MAKE_IRQ(1, gpio - ALCHEMY_GPIO1_BASE); au1200_gpio1_to_irq()
185 static inline int au1200_gpio2_to_irq(int gpio) au1200_gpio2_to_irq() argument
187 gpio -= ALCHEMY_GPIO2_BASE; au1200_gpio2_to_irq()
189 switch (gpio) { au1200_gpio2_to_irq()
190 case 0 ... 2: return MAKE_IRQ(0, 5 + gpio - 0); au1200_gpio2_to_irq()
192 case 4 ... 7: return MAKE_IRQ(0, 24 + gpio - 4); au1200_gpio2_to_irq()
216 * GPIO1 block macros for common linux gpio functions.
218 static inline void alchemy_gpio1_set_value(int gpio, int v) alchemy_gpio1_set_value() argument
220 unsigned long mask = 1 << (gpio - ALCHEMY_GPIO1_BASE); alchemy_gpio1_set_value()
225 static inline int alchemy_gpio1_get_value(int gpio) alchemy_gpio1_get_value() argument
227 unsigned long mask = 1 << (gpio - ALCHEMY_GPIO1_BASE); alchemy_gpio1_get_value()
231 static inline int alchemy_gpio1_direction_input(int gpio) alchemy_gpio1_direction_input() argument
233 unsigned long mask = 1 << (gpio - ALCHEMY_GPIO1_BASE); alchemy_gpio1_direction_input()
238 static inline int alchemy_gpio1_direction_output(int gpio, int v) alchemy_gpio1_direction_output() argument
243 alchemy_gpio1_set_value(gpio, v); alchemy_gpio1_direction_output()
247 static inline int alchemy_gpio1_is_valid(int gpio) alchemy_gpio1_is_valid() argument
249 return ((gpio >= ALCHEMY_GPIO1_BASE) && (gpio <= ALCHEMY_GPIO1_MAX)); alchemy_gpio1_is_valid()
252 static inline int alchemy_gpio1_to_irq(int gpio) alchemy_gpio1_to_irq() argument
256 return au1000_gpio1_to_irq(gpio); alchemy_gpio1_to_irq()
258 return au1100_gpio1_to_irq(gpio); alchemy_gpio1_to_irq()
260 return au1500_gpio1_to_irq(gpio); alchemy_gpio1_to_irq()
262 return au1550_gpio1_to_irq(gpio); alchemy_gpio1_to_irq()
264 return au1200_gpio1_to_irq(gpio); alchemy_gpio1_to_irq()
270 * GPIO2 block macros for common linux GPIO functions. The 'gpio'
273 static inline void __alchemy_gpio2_mod_dir(int gpio, int to_out) __alchemy_gpio2_mod_dir() argument
276 unsigned long mask = 1 << (gpio - ALCHEMY_GPIO2_BASE); __alchemy_gpio2_mod_dir()
287 static inline void alchemy_gpio2_set_value(int gpio, int v) alchemy_gpio2_set_value() argument
291 mask = ((v) ? 0x00010001 : 0x00010000) << (gpio - ALCHEMY_GPIO2_BASE); alchemy_gpio2_set_value()
296 static inline int alchemy_gpio2_get_value(int gpio) alchemy_gpio2_get_value() argument
300 (1 << (gpio - ALCHEMY_GPIO2_BASE)); alchemy_gpio2_get_value()
303 static inline int alchemy_gpio2_direction_input(int gpio) alchemy_gpio2_direction_input() argument
307 __alchemy_gpio2_mod_dir(gpio, 0); alchemy_gpio2_direction_input()
312 static inline int alchemy_gpio2_direction_output(int gpio, int v) alchemy_gpio2_direction_output() argument
315 alchemy_gpio2_set_value(gpio, v); alchemy_gpio2_direction_output()
317 __alchemy_gpio2_mod_dir(gpio, 1); alchemy_gpio2_direction_output()
322 static inline int alchemy_gpio2_is_valid(int gpio) alchemy_gpio2_is_valid() argument
324 return ((gpio >= ALCHEMY_GPIO2_BASE) && (gpio <= ALCHEMY_GPIO2_MAX)); alchemy_gpio2_is_valid()
327 static inline int alchemy_gpio2_to_irq(int gpio) alchemy_gpio2_to_irq() argument
331 return au1000_gpio2_to_irq(gpio); alchemy_gpio2_to_irq()
333 return au1100_gpio2_to_irq(gpio); alchemy_gpio2_to_irq()
335 return au1500_gpio2_to_irq(gpio); alchemy_gpio2_to_irq()
337 return au1550_gpio2_to_irq(gpio); alchemy_gpio2_to_irq()
339 return au1200_gpio2_to_irq(gpio); alchemy_gpio2_to_irq()
453 /* wrappers for on-chip gpios; can be used before gpio chips have been
456 static inline int alchemy_gpio_direction_input(int gpio) alchemy_gpio_direction_input() argument
458 return (gpio >= ALCHEMY_GPIO2_BASE) ? alchemy_gpio_direction_input()
459 alchemy_gpio2_direction_input(gpio) : alchemy_gpio_direction_input()
460 alchemy_gpio1_direction_input(gpio); alchemy_gpio_direction_input()
463 static inline int alchemy_gpio_direction_output(int gpio, int v) alchemy_gpio_direction_output() argument
465 return (gpio >= ALCHEMY_GPIO2_BASE) ? alchemy_gpio_direction_output()
466 alchemy_gpio2_direction_output(gpio, v) : alchemy_gpio_direction_output()
467 alchemy_gpio1_direction_output(gpio, v); alchemy_gpio_direction_output()
470 static inline int alchemy_gpio_get_value(int gpio) alchemy_gpio_get_value() argument
472 return (gpio >= ALCHEMY_GPIO2_BASE) ? alchemy_gpio_get_value()
473 alchemy_gpio2_get_value(gpio) : alchemy_gpio_get_value()
474 alchemy_gpio1_get_value(gpio); alchemy_gpio_get_value()
477 static inline void alchemy_gpio_set_value(int gpio, int v) alchemy_gpio_set_value() argument
479 if (gpio >= ALCHEMY_GPIO2_BASE) alchemy_gpio_set_value()
480 alchemy_gpio2_set_value(gpio, v); alchemy_gpio_set_value()
482 alchemy_gpio1_set_value(gpio, v); alchemy_gpio_set_value()
485 static inline int alchemy_gpio_is_valid(int gpio) alchemy_gpio_is_valid() argument
487 return (gpio >= ALCHEMY_GPIO2_BASE) ? alchemy_gpio_is_valid()
488 alchemy_gpio2_is_valid(gpio) : alchemy_gpio_is_valid()
489 alchemy_gpio1_is_valid(gpio); alchemy_gpio_is_valid()
492 static inline int alchemy_gpio_cansleep(int gpio) alchemy_gpio_cansleep() argument
497 static inline int alchemy_gpio_to_irq(int gpio) alchemy_gpio_to_irq() argument
499 return (gpio >= ALCHEMY_GPIO2_BASE) ? alchemy_gpio_to_irq()
500 alchemy_gpio2_to_irq(gpio) : alchemy_gpio_to_irq()
501 alchemy_gpio1_to_irq(gpio); alchemy_gpio_to_irq()
523 /* Linux gpio framework integration.
532 * the boards' gpio.h must provide the linux gpio wrapper functions,
535 * inlinable gpio functions are provided which enable access to the
553 static inline int gpio_direction_input(int gpio) gpio_direction_input() argument
555 return alchemy_gpio_direction_input(gpio); gpio_direction_input()
558 static inline int gpio_direction_output(int gpio, int v) gpio_direction_output() argument
560 return alchemy_gpio_direction_output(gpio, v); gpio_direction_output()
563 static inline int gpio_get_value(int gpio) gpio_get_value() argument
565 return alchemy_gpio_get_value(gpio); gpio_get_value()
568 static inline void gpio_set_value(int gpio, int v) gpio_set_value() argument
570 alchemy_gpio_set_value(gpio, v); gpio_set_value()
573 static inline int gpio_get_value_cansleep(unsigned gpio) gpio_get_value_cansleep() argument
575 return gpio_get_value(gpio); gpio_get_value_cansleep()
578 static inline void gpio_set_value_cansleep(unsigned gpio, int value) gpio_set_value_cansleep() argument
580 gpio_set_value(gpio, value); gpio_set_value_cansleep()
583 static inline int gpio_is_valid(int gpio) gpio_is_valid() argument
585 return alchemy_gpio_is_valid(gpio); gpio_is_valid()
588 static inline int gpio_cansleep(int gpio) gpio_cansleep() argument
590 return alchemy_gpio_cansleep(gpio); gpio_cansleep()
593 static inline int gpio_to_irq(int gpio) gpio_to_irq() argument
595 return alchemy_gpio_to_irq(gpio); gpio_to_irq()
603 static inline int gpio_request(unsigned gpio, const char *label) gpio_request() argument
608 static inline int gpio_request_one(unsigned gpio, gpio_request_one() argument
614 static inline int gpio_request_array(struct gpio *array, size_t num) gpio_request_array()
619 static inline void gpio_free(unsigned gpio) gpio_free() argument
623 static inline void gpio_free_array(struct gpio *array, size_t num) gpio_free_array()
627 static inline int gpio_set_debounce(unsigned gpio, unsigned debounce) gpio_set_debounce() argument
632 static inline int gpio_export(unsigned gpio, bool direction_may_change) gpio_export() argument
638 unsigned gpio) gpio_export_link()
643 static inline int gpio_sysfs_set_active_low(unsigned gpio, int value) gpio_sysfs_set_active_low() argument
648 static inline void gpio_unexport(unsigned gpio) gpio_unexport() argument
637 gpio_export_link(struct device *dev, const char *name, unsigned gpio) gpio_export_link() argument
H A Dgpio.h14 #include <asm/mach-au1x00/gpio-au1000.h>
15 #include <asm/mach-au1x00/gpio-au1300.h>
29 /* Linux gpio framework integration.
38 * the boards' gpio.h must provide the linux gpio wrapper functions,
41 * inlinable gpio functions are provided which enable access to the
79 #include <asm-generic/gpio.h>
/linux-4.1.27/arch/avr32/mach-at32ap/include/mach/
H A Dgpio.h15 #include <asm-generic/gpio.h>
17 static inline int gpio_get_value(unsigned int gpio) gpio_get_value() argument
19 return __gpio_get_value(gpio); gpio_get_value()
22 static inline void gpio_set_value(unsigned int gpio, int value) gpio_set_value() argument
24 __gpio_set_value(gpio, value); gpio_set_value()
27 static inline int gpio_cansleep(unsigned int gpio) gpio_cansleep() argument
29 return __gpio_cansleep(gpio); gpio_cansleep()
33 static inline int gpio_to_irq(unsigned int gpio) gpio_to_irq() argument
35 if (gpio < NR_GPIO_IRQS) gpio_to_irq()
36 return gpio + GPIO_IRQ_BASE; gpio_to_irq()
/linux-4.1.27/drivers/bcma/
H A Ddriver_gpio.c11 #include <linux/gpio.h>
24 return container_of(chip, struct bcma_drv_cc, gpio); bcma_gpio_get_cc()
27 static int bcma_gpio_get_value(struct gpio_chip *chip, unsigned gpio) bcma_gpio_get_value() argument
31 return !!bcma_chipco_gpio_in(cc, 1 << gpio); bcma_gpio_get_value()
34 static void bcma_gpio_set_value(struct gpio_chip *chip, unsigned gpio, bcma_gpio_set_value() argument
39 bcma_chipco_gpio_out(cc, 1 << gpio, value ? 1 << gpio : 0); bcma_gpio_set_value()
42 static int bcma_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) bcma_gpio_direction_input() argument
46 bcma_chipco_gpio_outen(cc, 1 << gpio, 0); bcma_gpio_direction_input()
50 static int bcma_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, bcma_gpio_direction_output() argument
55 bcma_chipco_gpio_outen(cc, 1 << gpio, 1 << gpio); bcma_gpio_direction_output()
56 bcma_chipco_gpio_out(cc, 1 << gpio, value ? 1 << gpio : 0); bcma_gpio_direction_output()
60 static int bcma_gpio_request(struct gpio_chip *chip, unsigned gpio) bcma_gpio_request() argument
64 bcma_chipco_gpio_control(cc, 1 << gpio, 0); bcma_gpio_request()
66 bcma_chipco_gpio_pulldown(cc, 1 << gpio, 0); bcma_gpio_request()
68 bcma_chipco_gpio_pullup(cc, 1 << gpio, 1 << gpio); bcma_gpio_request()
73 static void bcma_gpio_free(struct gpio_chip *chip, unsigned gpio) bcma_gpio_free() argument
78 bcma_chipco_gpio_pullup(cc, 1 << gpio, 0); bcma_gpio_free()
82 static int bcma_gpio_to_irq(struct gpio_chip *chip, unsigned gpio) bcma_gpio_to_irq() argument
87 return irq_find_mapping(cc->irq_domain, gpio); bcma_gpio_to_irq()
95 int gpio = irqd_to_hwirq(d); bcma_gpio_irq_unmask() local
96 u32 val = bcma_chipco_gpio_in(cc, BIT(gpio)); bcma_gpio_irq_unmask()
98 bcma_chipco_gpio_polarity(cc, BIT(gpio), val); bcma_gpio_irq_unmask()
99 bcma_chipco_gpio_intmask(cc, BIT(gpio), BIT(gpio)); bcma_gpio_irq_unmask()
105 int gpio = irqd_to_hwirq(d); bcma_gpio_irq_mask() local
107 bcma_chipco_gpio_intmask(cc, BIT(gpio), 0); bcma_gpio_irq_mask()
123 int gpio; bcma_gpio_irq_handler() local
128 for_each_set_bit(gpio, &irqs, cc->gpio.ngpio) bcma_gpio_irq_handler()
129 generic_handle_irq(bcma_gpio_to_irq(&cc->gpio, gpio)); bcma_gpio_irq_handler()
137 struct gpio_chip *chip = &cc->gpio; bcma_gpio_irq_domain_init()
138 int gpio, hwirq, err; bcma_gpio_irq_domain_init() local
149 for (gpio = 0; gpio < chip->ngpio; gpio++) { bcma_gpio_irq_domain_init()
150 int irq = irq_create_mapping(cc->irq_domain, gpio); bcma_gpio_irq_domain_init()
158 err = request_irq(hwirq, bcma_gpio_irq_handler, IRQF_SHARED, "gpio", bcma_gpio_irq_domain_init()
169 for (gpio = 0; gpio < chip->ngpio; gpio++) { bcma_gpio_irq_domain_init()
170 int irq = irq_find_mapping(cc->irq_domain, gpio); bcma_gpio_irq_domain_init()
181 struct gpio_chip *chip = &cc->gpio; bcma_gpio_irq_domain_exit()
182 int gpio; bcma_gpio_irq_domain_exit() local
189 for (gpio = 0; gpio < chip->ngpio; gpio++) { bcma_gpio_irq_domain_exit()
190 int irq = irq_find_mapping(cc->irq_domain, gpio); bcma_gpio_irq_domain_exit()
210 struct gpio_chip *chip = &cc->gpio; bcma_gpio_init()
265 gpiochip_remove(&cc->gpio); bcma_gpio_unregister()
/linux-4.1.27/include/trace/events/
H A Dgpio.h2 #define TRACE_SYSTEM gpio
11 TP_PROTO(unsigned gpio, int in, int err),
13 TP_ARGS(gpio, in, err),
16 __field(unsigned, gpio)
22 __entry->gpio = gpio;
27 TP_printk("%u %3s (%d)", __entry->gpio,
33 TP_PROTO(unsigned gpio, int get, int value),
35 TP_ARGS(gpio, get, value),
38 __field(unsigned, gpio)
44 __entry->gpio = gpio;
49 TP_printk("%u %3s %d", __entry->gpio,
/linux-4.1.27/arch/arm/plat-samsung/
H A Dsetup-camif.c11 #include <linux/gpio.h>
12 #include <plat/gpio-cfg.h>
13 #include <mach/gpio-samsung.h>
40 int gpio = gpio_start + i; s3c_camif_gpio_get() local
42 if (gpio == gpio_reset) s3c_camif_gpio_get()
45 ret = gpio_request(gpio, "camif"); s3c_camif_gpio_get()
47 ret = s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c_camif_gpio_get()
49 pr_err("failed to configure GPIO %d\n", gpio); s3c_camif_gpio_get()
51 gpio_free(gpio--); s3c_camif_gpio_get()
54 s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s3c_camif_gpio_get()
67 int gpio = gpio_start + i; s3c_camif_gpio_put() local
68 if (gpio != gpio_reset) s3c_camif_gpio_put()
69 gpio_free(gpio); s3c_camif_gpio_put()
/linux-4.1.27/drivers/gpio/
H A Dgpio-dwapb.c24 #include <linux/platform_data/gpio-dwapb.h>
71 struct dwapb_gpio *gpio; member in struct:dwapb_gpio_port
92 static inline u32 dwapb_read(struct dwapb_gpio *gpio, unsigned int offset) dwapb_read() argument
94 struct bgpio_chip *bgc = &gpio->ports[0].bgc; dwapb_read()
95 void __iomem *reg_base = gpio->regs; dwapb_read()
100 static inline void dwapb_write(struct dwapb_gpio *gpio, unsigned int offset, dwapb_write() argument
103 struct bgpio_chip *bgc = &gpio->ports[0].bgc; dwapb_write()
104 void __iomem *reg_base = gpio->regs; dwapb_write()
113 struct dwapb_gpio *gpio = port->gpio; dwapb_gpio_to_irq() local
115 return irq_find_mapping(gpio->domain, offset); dwapb_gpio_to_irq()
118 static void dwapb_toggle_trigger(struct dwapb_gpio *gpio, unsigned int offs) dwapb_toggle_trigger() argument
120 u32 v = dwapb_read(gpio, GPIO_INT_POLARITY); dwapb_toggle_trigger()
122 if (gpio_get_value(gpio->ports[0].bgc.gc.base + offs)) dwapb_toggle_trigger()
127 dwapb_write(gpio, GPIO_INT_POLARITY, v); dwapb_toggle_trigger()
130 static u32 dwapb_do_irq(struct dwapb_gpio *gpio) dwapb_do_irq() argument
132 u32 irq_status = readl_relaxed(gpio->regs + GPIO_INTSTATUS); dwapb_do_irq()
137 int gpio_irq = irq_find_mapping(gpio->domain, hwirq); dwapb_do_irq()
144 dwapb_toggle_trigger(gpio, hwirq); dwapb_do_irq()
152 struct dwapb_gpio *gpio = irq_get_handler_data(irq); dwapb_irq_handler() local
155 dwapb_do_irq(gpio); dwapb_irq_handler()
164 struct dwapb_gpio *gpio = igc->private; dwapb_irq_enable() local
165 struct bgpio_chip *bgc = &gpio->ports[0].bgc; dwapb_irq_enable()
170 val = dwapb_read(gpio, GPIO_INTEN); dwapb_irq_enable()
172 dwapb_write(gpio, GPIO_INTEN, val); dwapb_irq_enable()
179 struct dwapb_gpio *gpio = igc->private; dwapb_irq_disable() local
180 struct bgpio_chip *bgc = &gpio->ports[0].bgc; dwapb_irq_disable()
185 val = dwapb_read(gpio, GPIO_INTEN); dwapb_irq_disable()
187 dwapb_write(gpio, GPIO_INTEN, val); dwapb_irq_disable()
194 struct dwapb_gpio *gpio = igc->private; dwapb_irq_reqres() local
195 struct bgpio_chip *bgc = &gpio->ports[0].bgc; dwapb_irq_reqres()
198 dev_err(gpio->dev, "unable to lock HW IRQ %lu for IRQ\n", dwapb_irq_reqres()
208 struct dwapb_gpio *gpio = igc->private; dwapb_irq_relres() local
209 struct bgpio_chip *bgc = &gpio->ports[0].bgc; dwapb_irq_relres()
217 struct dwapb_gpio *gpio = igc->private; dwapb_irq_set_type() local
218 struct bgpio_chip *bgc = &gpio->ports[0].bgc; dwapb_irq_set_type()
227 level = dwapb_read(gpio, GPIO_INTTYPE_LEVEL); dwapb_irq_set_type()
228 polarity = dwapb_read(gpio, GPIO_INT_POLARITY); dwapb_irq_set_type()
233 dwapb_toggle_trigger(gpio, bit); dwapb_irq_set_type()
255 dwapb_write(gpio, GPIO_INTTYPE_LEVEL, level); dwapb_irq_set_type()
256 dwapb_write(gpio, GPIO_INT_POLARITY, polarity); dwapb_irq_set_type()
267 struct dwapb_gpio *gpio = port->gpio; dwapb_gpio_set_debounce() local
273 val_deb = dwapb_read(gpio, GPIO_PORTA_DEBOUNCE); dwapb_gpio_set_debounce()
275 dwapb_write(gpio, GPIO_PORTA_DEBOUNCE, val_deb | mask); dwapb_gpio_set_debounce()
277 dwapb_write(gpio, GPIO_PORTA_DEBOUNCE, val_deb & ~mask); dwapb_gpio_set_debounce()
287 struct dwapb_gpio *gpio = dev_id; dwapb_irq_handler_mfd() local
289 worked = dwapb_do_irq(gpio); dwapb_irq_handler_mfd()
294 static void dwapb_configure_irqs(struct dwapb_gpio *gpio, dwapb_configure_irqs() argument
305 gpio->domain = irq_domain_add_linear(node, ngpio, dwapb_configure_irqs()
306 &irq_generic_chip_ops, gpio); dwapb_configure_irqs()
307 if (!gpio->domain) dwapb_configure_irqs()
310 err = irq_alloc_domain_generic_chips(gpio->domain, ngpio, 2, dwapb_configure_irqs()
311 "gpio-dwapb", handle_level_irq, dwapb_configure_irqs()
315 dev_info(gpio->dev, "irq_alloc_domain_generic_chips failed\n"); dwapb_configure_irqs()
316 irq_domain_remove(gpio->domain); dwapb_configure_irqs()
317 gpio->domain = NULL; dwapb_configure_irqs()
321 irq_gc = irq_get_domain_generic_chip(gpio->domain, 0); dwapb_configure_irqs()
323 irq_domain_remove(gpio->domain); dwapb_configure_irqs()
324 gpio->domain = NULL; dwapb_configure_irqs()
328 irq_gc->reg_base = gpio->regs; dwapb_configure_irqs()
329 irq_gc->private = gpio; dwapb_configure_irqs()
352 irq_set_handler_data(pp->irq, gpio); dwapb_configure_irqs()
358 err = devm_request_irq(gpio->dev, pp->irq, dwapb_configure_irqs()
360 IRQF_SHARED, "gpio-dwapb-mfd", gpio); dwapb_configure_irqs()
362 dev_err(gpio->dev, "error requesting IRQ\n"); dwapb_configure_irqs()
363 irq_domain_remove(gpio->domain); dwapb_configure_irqs()
364 gpio->domain = NULL; dwapb_configure_irqs()
370 irq_create_mapping(gpio->domain, hwirq); dwapb_configure_irqs()
375 static void dwapb_irq_teardown(struct dwapb_gpio *gpio) dwapb_irq_teardown() argument
377 struct dwapb_gpio_port *port = &gpio->ports[0]; dwapb_irq_teardown()
382 if (!gpio->domain) dwapb_irq_teardown()
386 irq_dispose_mapping(irq_find_mapping(gpio->domain, hwirq)); dwapb_irq_teardown()
388 irq_domain_remove(gpio->domain); dwapb_irq_teardown()
389 gpio->domain = NULL; dwapb_irq_teardown()
392 static int dwapb_gpio_add_port(struct dwapb_gpio *gpio, dwapb_gpio_add_port() argument
400 port = &gpio->ports[offs]; dwapb_gpio_add_port()
401 port->gpio = gpio; dwapb_gpio_add_port()
405 port->ctx = devm_kzalloc(gpio->dev, sizeof(*port->ctx), GFP_KERNEL); dwapb_gpio_add_port()
410 dat = gpio->regs + GPIO_EXT_PORTA + (pp->idx * GPIO_EXT_PORT_SIZE); dwapb_gpio_add_port()
411 set = gpio->regs + GPIO_SWPORTA_DR + (pp->idx * GPIO_SWPORT_DR_SIZE); dwapb_gpio_add_port()
412 dirout = gpio->regs + GPIO_SWPORTA_DDR + dwapb_gpio_add_port()
415 err = bgpio_init(&port->bgc, gpio->dev, 4, dat, set, NULL, dirout, dwapb_gpio_add_port()
418 dev_err(gpio->dev, "failed to init gpio chip for %s\n", dwapb_gpio_add_port()
434 dwapb_configure_irqs(gpio, port, pp); dwapb_gpio_add_port()
438 dev_err(gpio->dev, "failed to register gpiochip for %s\n", dwapb_gpio_add_port()
446 static void dwapb_gpio_unregister(struct dwapb_gpio *gpio) dwapb_gpio_unregister() argument
450 for (m = 0; m < gpio->nr_ports; ++m) dwapb_gpio_unregister()
451 if (gpio->ports[m].is_registered) dwapb_gpio_unregister()
452 gpiochip_remove(&gpio->ports[m].bgc.gc); dwapb_gpio_unregister()
526 struct dwapb_gpio *gpio; dwapb_gpio_probe() local
540 gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); dwapb_gpio_probe()
541 if (!gpio) dwapb_gpio_probe()
544 gpio->dev = &pdev->dev; dwapb_gpio_probe()
545 gpio->nr_ports = pdata->nports; dwapb_gpio_probe()
547 gpio->ports = devm_kcalloc(&pdev->dev, gpio->nr_ports, dwapb_gpio_probe()
548 sizeof(*gpio->ports), GFP_KERNEL); dwapb_gpio_probe()
549 if (!gpio->ports) dwapb_gpio_probe()
553 gpio->regs = devm_ioremap_resource(&pdev->dev, res); dwapb_gpio_probe()
554 if (IS_ERR(gpio->regs)) dwapb_gpio_probe()
555 return PTR_ERR(gpio->regs); dwapb_gpio_probe()
557 for (i = 0; i < gpio->nr_ports; i++) { dwapb_gpio_probe()
558 err = dwapb_gpio_add_port(gpio, &pdata->properties[i], i); dwapb_gpio_probe()
562 platform_set_drvdata(pdev, gpio); dwapb_gpio_probe()
567 dwapb_gpio_unregister(gpio); dwapb_gpio_probe()
568 dwapb_irq_teardown(gpio); dwapb_gpio_probe()
575 struct dwapb_gpio *gpio = platform_get_drvdata(pdev); dwapb_gpio_remove() local
577 dwapb_gpio_unregister(gpio); dwapb_gpio_remove()
578 dwapb_irq_teardown(gpio); dwapb_gpio_remove()
584 { .compatible = "snps,dw-apb-gpio" },
593 struct dwapb_gpio *gpio = platform_get_drvdata(pdev); dwapb_gpio_suspend() local
594 struct bgpio_chip *bgc = &gpio->ports[0].bgc; dwapb_gpio_suspend()
599 for (i = 0; i < gpio->nr_ports; i++) { dwapb_gpio_suspend()
601 unsigned int idx = gpio->ports[i].idx; dwapb_gpio_suspend()
602 struct dwapb_context *ctx = gpio->ports[i].ctx; dwapb_gpio_suspend()
607 ctx->dir = dwapb_read(gpio, offset); dwapb_gpio_suspend()
610 ctx->data = dwapb_read(gpio, offset); dwapb_gpio_suspend()
613 ctx->ext = dwapb_read(gpio, offset); dwapb_gpio_suspend()
617 ctx->int_mask = dwapb_read(gpio, GPIO_INTMASK); dwapb_gpio_suspend()
618 ctx->int_en = dwapb_read(gpio, GPIO_INTEN); dwapb_gpio_suspend()
619 ctx->int_pol = dwapb_read(gpio, GPIO_INT_POLARITY); dwapb_gpio_suspend()
620 ctx->int_type = dwapb_read(gpio, GPIO_INTTYPE_LEVEL); dwapb_gpio_suspend()
621 ctx->int_deb = dwapb_read(gpio, GPIO_PORTA_DEBOUNCE); dwapb_gpio_suspend()
624 dwapb_write(gpio, GPIO_INTMASK, 0xffffffff); dwapb_gpio_suspend()
635 struct dwapb_gpio *gpio = platform_get_drvdata(pdev); dwapb_gpio_resume() local
636 struct bgpio_chip *bgc = &gpio->ports[0].bgc; dwapb_gpio_resume()
641 for (i = 0; i < gpio->nr_ports; i++) { dwapb_gpio_resume()
643 unsigned int idx = gpio->ports[i].idx; dwapb_gpio_resume()
644 struct dwapb_context *ctx = gpio->ports[i].ctx; dwapb_gpio_resume()
649 dwapb_write(gpio, offset, ctx->data); dwapb_gpio_resume()
652 dwapb_write(gpio, offset, ctx->dir); dwapb_gpio_resume()
655 dwapb_write(gpio, offset, ctx->ext); dwapb_gpio_resume()
659 dwapb_write(gpio, GPIO_INTTYPE_LEVEL, ctx->int_type); dwapb_gpio_resume()
660 dwapb_write(gpio, GPIO_INT_POLARITY, ctx->int_pol); dwapb_gpio_resume()
661 dwapb_write(gpio, GPIO_PORTA_DEBOUNCE, ctx->int_deb); dwapb_gpio_resume()
662 dwapb_write(gpio, GPIO_INTEN, ctx->int_en); dwapb_gpio_resume()
663 dwapb_write(gpio, GPIO_INTMASK, ctx->int_mask); dwapb_gpio_resume()
666 dwapb_write(gpio, GPIO_PORTA_EOI, 0xffffffff); dwapb_gpio_resume()
680 .name = "gpio-dwapb",
H A Dgpiolib-legacy.c1 #include <linux/gpio/consumer.h>
2 #include <linux/gpio/driver.h>
4 #include <linux/gpio.h>
8 void gpio_free(unsigned gpio) gpio_free() argument
10 gpiod_free(gpio_to_desc(gpio)); gpio_free()
16 * @gpio: the GPIO number
20 int gpio_request_one(unsigned gpio, unsigned long flags, const char *label) gpio_request_one() argument
25 desc = gpio_to_desc(gpio); gpio_request_one()
28 if (!desc && gpio_is_valid(gpio)) gpio_request_one()
67 int gpio_request(unsigned gpio, const char *label) gpio_request() argument
69 struct gpio_desc *desc = gpio_to_desc(gpio); gpio_request()
72 if (!desc && gpio_is_valid(gpio)) gpio_request()
81 * @array: array of the 'struct gpio'
84 int gpio_request_array(const struct gpio *array, size_t num) gpio_request_array()
89 err = gpio_request_one(array->gpio, array->flags, array->label); gpio_request_array()
97 gpio_free((--array)->gpio); gpio_request_array()
104 * @array: array of the 'struct gpio'
107 void gpio_free_array(const struct gpio *array, size_t num) gpio_free_array()
110 gpio_free((array++)->gpio); gpio_free_array()
H A Dgpio-mb86s7x.c2 * linux/drivers/gpio/gpio-mb86s7x.c
25 #include <linux/gpio/driver.h>
52 static int mb86s70_gpio_request(struct gpio_chip *gc, unsigned gpio) mb86s70_gpio_request() argument
60 val = readl(gchip->base + PFR(gpio)); mb86s70_gpio_request()
61 if (!(val & OFFSET(gpio))) { mb86s70_gpio_request()
66 val &= ~OFFSET(gpio); mb86s70_gpio_request()
67 writel(val, gchip->base + PFR(gpio)); mb86s70_gpio_request()
74 static void mb86s70_gpio_free(struct gpio_chip *gc, unsigned gpio) mb86s70_gpio_free() argument
82 val = readl(gchip->base + PFR(gpio)); mb86s70_gpio_free()
83 val |= OFFSET(gpio); mb86s70_gpio_free()
84 writel(val, gchip->base + PFR(gpio)); mb86s70_gpio_free()
89 static int mb86s70_gpio_direction_input(struct gpio_chip *gc, unsigned gpio) mb86s70_gpio_direction_input() argument
97 val = readl(gchip->base + DDR(gpio)); mb86s70_gpio_direction_input()
98 val &= ~OFFSET(gpio); mb86s70_gpio_direction_input()
99 writel(val, gchip->base + DDR(gpio)); mb86s70_gpio_direction_input()
107 unsigned gpio, int value) mb86s70_gpio_direction_output()
115 val = readl(gchip->base + PDR(gpio)); mb86s70_gpio_direction_output()
117 val |= OFFSET(gpio); mb86s70_gpio_direction_output()
119 val &= ~OFFSET(gpio); mb86s70_gpio_direction_output()
120 writel(val, gchip->base + PDR(gpio)); mb86s70_gpio_direction_output()
122 val = readl(gchip->base + DDR(gpio)); mb86s70_gpio_direction_output()
123 val |= OFFSET(gpio); mb86s70_gpio_direction_output()
124 writel(val, gchip->base + DDR(gpio)); mb86s70_gpio_direction_output()
131 static int mb86s70_gpio_get(struct gpio_chip *gc, unsigned gpio) mb86s70_gpio_get() argument
135 return !!(readl(gchip->base + PDR(gpio)) & OFFSET(gpio)); mb86s70_gpio_get()
138 static void mb86s70_gpio_set(struct gpio_chip *gc, unsigned gpio, int value) mb86s70_gpio_set() argument
146 val = readl(gchip->base + PDR(gpio)); mb86s70_gpio_set()
148 val |= OFFSET(gpio); mb86s70_gpio_set()
150 val &= ~OFFSET(gpio); mb86s70_gpio_set()
151 writel(val, gchip->base + PDR(gpio)); mb86s70_gpio_set()
197 dev_err(&pdev->dev, "couldn't register gpio driver\n"); mb86s70_gpio_probe()
215 { .compatible = "fujitsu,mb86s70-gpio" },
222 .name = "mb86s70-gpio",
236 MODULE_ALIAS("platform:mb86s70-gpio");
106 mb86s70_gpio_direction_output(struct gpio_chip *gc, unsigned gpio, int value) mb86s70_gpio_direction_output() argument
H A Dgpio-da9052.c18 #include <linux/gpio.h>
66 struct da9052_gpio *gpio = to_da9052_gpio(gc); da9052_gpio_get() local
70 ret = da9052_reg_read(gpio->da9052, da9052_gpio_get()
85 ret = da9052_reg_read(gpio->da9052, da9052_gpio_get()
88 ret = da9052_reg_read(gpio->da9052, da9052_gpio_get()
108 struct da9052_gpio *gpio = to_da9052_gpio(gc); da9052_gpio_set() local
112 ret = da9052_reg_update(gpio->da9052, (offset >> 1) + da9052_gpio_set()
117 dev_err(gpio->da9052->dev, da9052_gpio_set()
118 "Failed to updated gpio odd reg,%d", da9052_gpio_set()
121 ret = da9052_reg_update(gpio->da9052, (offset >> 1) + da9052_gpio_set()
126 dev_err(gpio->da9052->dev, da9052_gpio_set()
127 "Failed to updated gpio even reg,%d", da9052_gpio_set()
134 struct da9052_gpio *gpio = to_da9052_gpio(gc); da9052_gpio_direction_input() local
143 ret = da9052_reg_update(gpio->da9052, (offset >> 1) + da9052_gpio_direction_input()
149 ret = da9052_reg_update(gpio->da9052, (offset >> 1) + da9052_gpio_direction_input()
160 struct da9052_gpio *gpio = to_da9052_gpio(gc); da9052_gpio_direction_output() local
169 ret = da9052_reg_update(gpio->da9052, (offset >> 1) + da9052_gpio_direction_output()
175 ret = da9052_reg_update(gpio->da9052, (offset >> 1) + da9052_gpio_direction_output()
185 struct da9052_gpio *gpio = to_da9052_gpio(gc); da9052_gpio_to_irq() local
186 struct da9052 *da9052 = gpio->da9052; da9052_gpio_to_irq()
196 .label = "da9052-gpio",
210 struct da9052_gpio *gpio; da9052_gpio_probe() local
214 gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); da9052_gpio_probe()
215 if (!gpio) da9052_gpio_probe()
218 gpio->da9052 = dev_get_drvdata(pdev->dev.parent); da9052_gpio_probe()
219 pdata = dev_get_platdata(gpio->da9052->dev); da9052_gpio_probe()
221 gpio->gp = reference_gp; da9052_gpio_probe()
223 gpio->gp.base = pdata->gpio_base; da9052_gpio_probe()
225 ret = gpiochip_add(&gpio->gp); da9052_gpio_probe()
231 platform_set_drvdata(pdev, gpio); da9052_gpio_probe()
238 struct da9052_gpio *gpio = platform_get_drvdata(pdev); da9052_gpio_remove() local
240 gpiochip_remove(&gpio->gp); da9052_gpio_remove()
248 .name = "da9052-gpio",
257 MODULE_ALIAS("platform:da9052-gpio");
H A Dgpio-pcf857x.c21 #include <linux/gpio.h>
139 struct pcf857x *gpio = container_of(chip, struct pcf857x, chip); pcf857x_input() local
142 mutex_lock(&gpio->lock); pcf857x_input()
143 gpio->out |= (1 << offset); pcf857x_input()
144 status = gpio->write(gpio->client, gpio->out); pcf857x_input()
145 mutex_unlock(&gpio->lock); pcf857x_input()
152 struct pcf857x *gpio = container_of(chip, struct pcf857x, chip); pcf857x_get() local
155 value = gpio->read(gpio->client); pcf857x_get()
161 struct pcf857x *gpio = container_of(chip, struct pcf857x, chip); pcf857x_output() local
165 mutex_lock(&gpio->lock); pcf857x_output()
167 gpio->out |= bit; pcf857x_output()
169 gpio->out &= ~bit; pcf857x_output()
170 status = gpio->write(gpio->client, gpio->out); pcf857x_output()
171 mutex_unlock(&gpio->lock); pcf857x_output()
185 struct pcf857x *gpio = data; pcf857x_irq() local
188 status = gpio->read(gpio->client); pcf857x_irq()
190 spin_lock_irqsave(&gpio->slock, flags); pcf857x_irq()
193 * call the interrupt handler iff gpio is used as pcf857x_irq()
197 change = (gpio->status ^ status); pcf857x_irq()
198 for_each_set_bit(i, &change, gpio->chip.ngpio) pcf857x_irq()
199 handle_nested_irq(irq_find_mapping(gpio->chip.irqdomain, i)); pcf857x_irq()
200 gpio->status = status; pcf857x_irq()
202 spin_unlock_irqrestore(&gpio->slock, flags); pcf857x_irq()
219 struct pcf857x *gpio = irq_data_get_irq_chip_data(data); pcf857x_irq_set_wake() local
221 irq_set_irq_wake(gpio->client->irq, on); pcf857x_irq_set_wake()
244 struct pcf857x *gpio; pcf857x_probe() local
256 gpio = devm_kzalloc(&client->dev, sizeof(*gpio), GFP_KERNEL); pcf857x_probe()
257 if (!gpio) pcf857x_probe()
260 mutex_init(&gpio->lock); pcf857x_probe()
261 spin_lock_init(&gpio->slock); pcf857x_probe()
263 gpio->chip.base = pdata ? pdata->gpio_base : -1; pcf857x_probe()
264 gpio->chip.can_sleep = true; pcf857x_probe()
265 gpio->chip.dev = &client->dev; pcf857x_probe()
266 gpio->chip.owner = THIS_MODULE; pcf857x_probe()
267 gpio->chip.get = pcf857x_get; pcf857x_probe()
268 gpio->chip.set = pcf857x_set; pcf857x_probe()
269 gpio->chip.direction_input = pcf857x_input; pcf857x_probe()
270 gpio->chip.direction_output = pcf857x_output; pcf857x_probe()
271 gpio->chip.ngpio = id->driver_data; pcf857x_probe()
284 if (gpio->chip.ngpio == 8) { pcf857x_probe()
285 gpio->write = i2c_write_le8; pcf857x_probe()
286 gpio->read = i2c_read_le8; pcf857x_probe()
302 } else if (gpio->chip.ngpio == 16) { pcf857x_probe()
303 gpio->write = i2c_write_le16; pcf857x_probe()
304 gpio->read = i2c_read_le16; pcf857x_probe()
321 gpio->chip.label = client->name; pcf857x_probe()
323 gpio->client = client; pcf857x_probe()
324 i2c_set_clientdata(client, gpio); pcf857x_probe()
341 gpio->out = ~n_latch; pcf857x_probe()
342 gpio->status = gpio->out; pcf857x_probe()
344 status = gpiochip_add(&gpio->chip); pcf857x_probe()
350 status = gpiochip_irqchip_add(&gpio->chip, &pcf857x_irq_chip, pcf857x_probe()
361 dev_name(&client->dev), gpio); pcf857x_probe()
365 gpiochip_set_chained_irqchip(&gpio->chip, &pcf857x_irq_chip, pcf857x_probe()
374 gpio->chip.base, gpio->chip.ngpio, pcf857x_probe()
385 gpiochip_remove(&gpio->chip); pcf857x_probe()
397 struct pcf857x *gpio = i2c_get_clientdata(client); pcf857x_remove() local
402 gpio->chip.base, gpio->chip.ngpio, pcf857x_remove()
411 gpiochip_remove(&gpio->chip); pcf857x_remove()
H A Dgpio-crystalcove.c2 * gpio-crystalcove.c - Intel Crystal Cove GPIO Driver
20 #include <linux/gpio.h>
93 static inline int to_reg(int gpio, enum ctrl_register reg_type) to_reg() argument
97 if (gpio == 94) { to_reg()
102 if (gpio < 8) to_reg()
107 if (gpio < 8) to_reg()
113 return reg + gpio % 8; to_reg()
117 int gpio) crystalcove_update_irq_mask()
119 u8 mirqs0 = gpio < 8 ? MGPIO0IRQS0 : MGPIO1IRQS0; crystalcove_update_irq_mask()
120 int mask = BIT(gpio % 8); crystalcove_update_irq_mask()
128 static void crystalcove_update_irq_ctrl(struct crystalcove_gpio *cg, int gpio) crystalcove_update_irq_ctrl() argument
130 int reg = to_reg(gpio, CTRL_IN); crystalcove_update_irq_ctrl()
135 static int crystalcove_gpio_dir_in(struct gpio_chip *chip, unsigned gpio) crystalcove_gpio_dir_in() argument
139 if (gpio > CRYSTALCOVE_VGPIO_NUM) crystalcove_gpio_dir_in()
142 return regmap_write(cg->regmap, to_reg(gpio, CTRL_OUT), crystalcove_gpio_dir_in()
146 static int crystalcove_gpio_dir_out(struct gpio_chip *chip, unsigned gpio, crystalcove_gpio_dir_out() argument
151 if (gpio > CRYSTALCOVE_VGPIO_NUM) crystalcove_gpio_dir_out()
154 return regmap_write(cg->regmap, to_reg(gpio, CTRL_OUT), crystalcove_gpio_dir_out()
158 static int crystalcove_gpio_get(struct gpio_chip *chip, unsigned gpio) crystalcove_gpio_get() argument
164 if (gpio > CRYSTALCOVE_VGPIO_NUM) crystalcove_gpio_get()
167 ret = regmap_read(cg->regmap, to_reg(gpio, CTRL_IN), &val); crystalcove_gpio_get()
175 unsigned gpio, int value) crystalcove_gpio_set()
179 if (gpio > CRYSTALCOVE_VGPIO_NUM) crystalcove_gpio_set()
183 regmap_update_bits(cg->regmap, to_reg(gpio, CTRL_OUT), 1, 1); crystalcove_gpio_set()
185 regmap_update_bits(cg->regmap, to_reg(gpio, CTRL_OUT), 1, 0); crystalcove_gpio_set()
224 int gpio = data->hwirq; crystalcove_bus_sync_unlock() local
227 crystalcove_update_irq_ctrl(cg, gpio); crystalcove_bus_sync_unlock()
229 crystalcove_update_irq_mask(cg, gpio); crystalcove_bus_sync_unlock()
266 int gpio; crystalcove_gpio_irq_handler() local
278 for (gpio = 0; gpio < CRYSTALCOVE_GPIO_NUM; gpio++) { crystalcove_gpio_irq_handler()
279 if (pending & BIT(gpio)) { crystalcove_gpio_irq_handler()
280 virq = irq_find_mapping(cg->chip.irqdomain, gpio); crystalcove_gpio_irq_handler()
292 int gpio, offset; crystalcove_gpio_dbg_show() local
295 for (gpio = 0; gpio < CRYSTALCOVE_GPIO_NUM; gpio++) { crystalcove_gpio_dbg_show()
296 regmap_read(cg->regmap, to_reg(gpio, CTRL_OUT), &ctlo); crystalcove_gpio_dbg_show()
297 regmap_read(cg->regmap, to_reg(gpio, CTRL_IN), &ctli); crystalcove_gpio_dbg_show()
298 regmap_read(cg->regmap, gpio < 8 ? MGPIO0IRQS0 : MGPIO1IRQS0, crystalcove_gpio_dbg_show()
300 regmap_read(cg->regmap, gpio < 8 ? MGPIO0IRQSX : MGPIO1IRQSX, crystalcove_gpio_dbg_show()
302 regmap_read(cg->regmap, gpio < 8 ? GPIO0IRQ : GPIO1IRQ, crystalcove_gpio_dbg_show()
305 offset = gpio % 8; crystalcove_gpio_dbg_show()
306 seq_printf(s, " gpio-%-2d %s %s %s %s ctlo=%2x,%s %s %s\n", crystalcove_gpio_dbg_show()
307 gpio, ctlo & CTLO_DIR_OUT ? "out" : "in ", crystalcove_gpio_dbg_show()
350 dev_warn(&pdev->dev, "add gpio chip error: %d\n", retval); crystalcove_gpio_probe()
116 crystalcove_update_irq_mask(struct crystalcove_gpio *cg, int gpio) crystalcove_update_irq_mask() argument
174 crystalcove_gpio_set(struct gpio_chip *chip, unsigned gpio, int value) crystalcove_gpio_set() argument
H A Dgpio-mpc5200.c2 * MPC52xx gpio driver
28 #include <asm/gpio.h>
57 static int mpc52xx_wkup_gpio_get(struct gpio_chip *gc, unsigned int gpio) mpc52xx_wkup_gpio_get() argument
63 ret = (in_8(&regs->wkup_ival) >> (7 - gpio)) & 1; mpc52xx_wkup_gpio_get()
65 pr_debug("%s: gpio: %d ret: %d\n", __func__, gpio, ret); mpc52xx_wkup_gpio_get()
71 __mpc52xx_wkup_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) __mpc52xx_wkup_gpio_set() argument
79 chip->shadow_dvo |= 1 << (7 - gpio); __mpc52xx_wkup_gpio_set()
81 chip->shadow_dvo &= ~(1 << (7 - gpio)); __mpc52xx_wkup_gpio_set()
87 mpc52xx_wkup_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) mpc52xx_wkup_gpio_set() argument
93 __mpc52xx_wkup_gpio_set(gc, gpio, val); mpc52xx_wkup_gpio_set()
97 pr_debug("%s: gpio: %d val: %d\n", __func__, gpio, val); mpc52xx_wkup_gpio_set()
100 static int mpc52xx_wkup_gpio_dir_in(struct gpio_chip *gc, unsigned int gpio) mpc52xx_wkup_gpio_dir_in() argument
111 chip->shadow_ddr &= ~(1 << (7 - gpio)); mpc52xx_wkup_gpio_dir_in()
115 chip->shadow_gpioe |= 1 << (7 - gpio); mpc52xx_wkup_gpio_dir_in()
124 mpc52xx_wkup_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) mpc52xx_wkup_gpio_dir_out() argument
134 __mpc52xx_wkup_gpio_set(gc, gpio, val); mpc52xx_wkup_gpio_dir_out()
137 chip->shadow_ddr |= 1 << (7 - gpio); mpc52xx_wkup_gpio_dir_out()
141 chip->shadow_gpioe |= 1 << (7 - gpio); mpc52xx_wkup_gpio_dir_out()
146 pr_debug("%s: gpio: %d val: %d\n", __func__, gpio, val); mpc52xx_wkup_gpio_dir_out()
194 { .compatible = "fsl,mpc5200-gpio-wkup", },
200 .name = "mpc5200-gpio-wkup",
224 static int mpc52xx_simple_gpio_get(struct gpio_chip *gc, unsigned int gpio) mpc52xx_simple_gpio_get() argument
230 ret = (in_be32(&regs->simple_ival) >> (31 - gpio)) & 1; mpc52xx_simple_gpio_get()
236 __mpc52xx_simple_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) __mpc52xx_simple_gpio_set() argument
244 chip->shadow_dvo |= 1 << (31 - gpio); __mpc52xx_simple_gpio_set()
246 chip->shadow_dvo &= ~(1 << (31 - gpio)); __mpc52xx_simple_gpio_set()
251 mpc52xx_simple_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) mpc52xx_simple_gpio_set() argument
257 __mpc52xx_simple_gpio_set(gc, gpio, val); mpc52xx_simple_gpio_set()
261 pr_debug("%s: gpio: %d val: %d\n", __func__, gpio, val); mpc52xx_simple_gpio_set()
264 static int mpc52xx_simple_gpio_dir_in(struct gpio_chip *gc, unsigned int gpio) mpc52xx_simple_gpio_dir_in() argument
275 chip->shadow_ddr &= ~(1 << (31 - gpio)); mpc52xx_simple_gpio_dir_in()
279 chip->shadow_gpioe |= 1 << (31 - gpio); mpc52xx_simple_gpio_dir_in()
288 mpc52xx_simple_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) mpc52xx_simple_gpio_dir_out() argument
299 __mpc52xx_simple_gpio_set(gc, gpio, val); mpc52xx_simple_gpio_dir_out()
302 chip->shadow_ddr |= 1 << (31 - gpio); mpc52xx_simple_gpio_dir_out()
306 chip->shadow_gpioe |= 1 << (31 - gpio); mpc52xx_simple_gpio_dir_out()
311 pr_debug("%s: gpio: %d val: %d\n", __func__, gpio, val); mpc52xx_simple_gpio_dir_out()
350 { .compatible = "fsl,mpc5200-gpio", },
356 .name = "mpc5200-gpio",
385 MODULE_DESCRIPTION("Freescale MPC52xx gpio driver");
H A Dgpio-loongson.c22 #include <linux/gpio.h>
37 static int loongson_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) loongson_gpio_direction_input() argument
43 mask = 1 << gpio; loongson_gpio_direction_input()
53 unsigned gpio, int level) loongson_gpio_direction_output()
58 gpio_set_value(gpio, level); loongson_gpio_direction_output()
60 mask = 1 << gpio; loongson_gpio_direction_output()
69 static int loongson_gpio_get_value(struct gpio_chip *chip, unsigned gpio) loongson_gpio_get_value() argument
74 mask = 1 << (gpio + LOONGSON_GPIO_IN_OFFSET); loongson_gpio_get_value()
83 unsigned gpio, int value) loongson_gpio_set_value()
88 mask = 1 << gpio; loongson_gpio_set_value()
101 .label = "Loongson-gpio-chip",
52 loongson_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int level) loongson_gpio_direction_output() argument
82 loongson_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) loongson_gpio_set_value() argument
H A Dgpio-tegra.c2 * arch/arm/mach-tegra/gpio.c
25 #include <linux/gpio.h>
101 static void tegra_gpio_mask_write(u32 reg, int gpio, int value) tegra_gpio_mask_write() argument
105 val = 0x100 << GPIO_BIT(gpio); tegra_gpio_mask_write()
107 val |= 1 << GPIO_BIT(gpio); tegra_gpio_mask_write()
111 static void tegra_gpio_enable(int gpio) tegra_gpio_enable() argument
113 tegra_gpio_mask_write(GPIO_MSK_CNF(gpio), gpio, 1); tegra_gpio_enable() local
116 static void tegra_gpio_disable(int gpio) tegra_gpio_disable() argument
118 tegra_gpio_mask_write(GPIO_MSK_CNF(gpio), gpio, 0); tegra_gpio_disable() local
139 /* If gpio is in output mode then read from the out value */ tegra_gpio_get()
169 .label = "tegra-gpio",
182 int gpio = d->hwirq; tegra_gpio_irq_ack() local
184 tegra_gpio_writel(1 << GPIO_BIT(gpio), GPIO_INT_CLR(gpio)); tegra_gpio_irq_ack()
189 int gpio = d->hwirq; tegra_gpio_irq_mask() local
191 tegra_gpio_mask_write(GPIO_MSK_INT_ENB(gpio), gpio, 0); tegra_gpio_irq_mask() local
196 int gpio = d->hwirq; tegra_gpio_irq_unmask() local
198 tegra_gpio_mask_write(GPIO_MSK_INT_ENB(gpio), gpio, 1); tegra_gpio_irq_unmask() local
203 int gpio = d->hwirq; tegra_gpio_irq_set_type() local
205 int port = GPIO_PORT(gpio); tegra_gpio_irq_set_type()
236 ret = gpiochip_lock_as_irq(&tegra_gpio_chip, gpio); tegra_gpio_irq_set_type()
238 dev_err(dev, "unable to lock Tegra GPIO %d as IRQ\n", gpio); tegra_gpio_irq_set_type()
244 val = tegra_gpio_readl(GPIO_INT_LVL(gpio)); tegra_gpio_irq_set_type()
245 val &= ~(GPIO_INT_LVL_MASK << GPIO_BIT(gpio)); tegra_gpio_irq_set_type()
246 val |= lvl_type << GPIO_BIT(gpio); tegra_gpio_irq_set_type()
247 tegra_gpio_writel(val, GPIO_INT_LVL(gpio)); tegra_gpio_irq_set_type()
251 tegra_gpio_mask_write(GPIO_MSK_OE(gpio), gpio, 0); tegra_gpio_irq_set_type() local
252 tegra_gpio_enable(gpio); tegra_gpio_irq_set_type()
264 int gpio = d->hwirq; tegra_gpio_irq_shutdown() local
266 gpiochip_unlock_as_irq(&tegra_gpio_chip, gpio); tegra_gpio_irq_shutdown()
282 int gpio = tegra_gpio_compose(bank->bank, port, 0); tegra_gpio_irq_handler() local
283 unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) & tegra_gpio_irq_handler()
284 tegra_gpio_readl(GPIO_INT_ENB(gpio)); tegra_gpio_irq_handler()
285 u32 lvl = tegra_gpio_readl(GPIO_INT_LVL(gpio)); tegra_gpio_irq_handler()
288 tegra_gpio_writel(1 << pin, GPIO_INT_CLR(gpio)); tegra_gpio_irq_handler()
290 /* if gpio is edge triggered, clear condition tegra_gpio_irq_handler()
299 generic_handle_irq(gpio_to_irq(gpio + pin)); tegra_gpio_irq_handler()
321 unsigned int gpio = (b<<5) | (p<<3); tegra_gpio_resume() local
322 tegra_gpio_writel(bank->cnf[p], GPIO_CNF(gpio)); tegra_gpio_resume()
323 tegra_gpio_writel(bank->out[p], GPIO_OUT(gpio)); tegra_gpio_resume()
324 tegra_gpio_writel(bank->oe[p], GPIO_OE(gpio)); tegra_gpio_resume()
325 tegra_gpio_writel(bank->int_lvl[p], GPIO_INT_LVL(gpio)); tegra_gpio_resume()
326 tegra_gpio_writel(bank->int_enb[p], GPIO_INT_ENB(gpio)); tegra_gpio_resume()
345 unsigned int gpio = (b<<5) | (p<<3); tegra_gpio_suspend() local
346 bank->cnf[p] = tegra_gpio_readl(GPIO_CNF(gpio)); tegra_gpio_suspend()
347 bank->out[p] = tegra_gpio_readl(GPIO_OUT(gpio)); tegra_gpio_suspend()
348 bank->oe[p] = tegra_gpio_readl(GPIO_OE(gpio)); tegra_gpio_suspend()
349 bank->int_enb[p] = tegra_gpio_readl(GPIO_INT_ENB(gpio)); tegra_gpio_suspend()
350 bank->int_lvl[p] = tegra_gpio_readl(GPIO_INT_LVL(gpio)); tegra_gpio_suspend()
352 /* Enable gpio irq for wake up source */ tegra_gpio_suspend()
354 GPIO_INT_ENB(gpio)); tegra_gpio_suspend()
364 int gpio = d->hwirq; tegra_gpio_irq_set_wake() local
367 port = GPIO_PORT(gpio); tegra_gpio_irq_set_wake()
368 bit = GPIO_BIT(gpio); tegra_gpio_irq_set_wake()
412 { .compatible = "nvidia,tegra30-gpio", .data = &tegra30_gpio_config },
413 { .compatible = "nvidia,tegra20-gpio", .data = &tegra20_gpio_config },
429 int gpio; tegra_gpio_probe() local
489 int gpio = tegra_gpio_compose(i, j, 0); tegra_gpio_probe() local
490 tegra_gpio_writel(0x00, GPIO_INT_ENB(gpio)); tegra_gpio_probe()
502 for (gpio = 0; gpio < tegra_gpio_chip.ngpio; gpio++) { tegra_gpio_probe()
503 int irq = irq_create_mapping(irq_domain, gpio); tegra_gpio_probe()
506 bank = &tegra_gpio_banks[GPIO_BANK(gpio)]; tegra_gpio_probe()
530 .name = "tegra-gpio",
555 int gpio = tegra_gpio_compose(i, j, 0); dbg_gpio_show() local
559 tegra_gpio_readl(GPIO_CNF(gpio)), dbg_gpio_show()
560 tegra_gpio_readl(GPIO_OE(gpio)), dbg_gpio_show()
561 tegra_gpio_readl(GPIO_OUT(gpio)), dbg_gpio_show()
562 tegra_gpio_readl(GPIO_IN(gpio)), dbg_gpio_show()
563 tegra_gpio_readl(GPIO_INT_STA(gpio)), dbg_gpio_show()
564 tegra_gpio_readl(GPIO_INT_ENB(gpio)), dbg_gpio_show()
565 tegra_gpio_readl(GPIO_INT_LVL(gpio))); dbg_gpio_show()
H A Dgpio-da9055.c16 #include <linux/gpio.h>
45 struct da9055_gpio *gpio = to_da9055_gpio(gc); da9055_gpio_get() local
50 ret = da9055_reg_read(gpio->da9055, (offset >> 1) + DA9055_REG_GPIO0_1); da9055_gpio_get()
58 ret = da9055_reg_read(gpio->da9055, DA9055_REG_STATUS_B); da9055_gpio_get()
63 ret = da9055_reg_read(gpio->da9055, DA9055_REG_GPIO_MODE0_2); da9055_gpio_get()
74 struct da9055_gpio *gpio = to_da9055_gpio(gc); da9055_gpio_set() local
76 da9055_reg_update(gpio->da9055, da9055_gpio_set()
84 struct da9055_gpio *gpio = to_da9055_gpio(gc); da9055_gpio_direction_input() local
90 return da9055_reg_update(gpio->da9055, (offset >> 1) + da9055_gpio_direction_input()
100 struct da9055_gpio *gpio = to_da9055_gpio(gc); da9055_gpio_direction_output() local
107 ret = da9055_reg_update(gpio->da9055, (offset >> 1) + da9055_gpio_direction_output()
122 struct da9055_gpio *gpio = to_da9055_gpio(gc); da9055_gpio_to_irq() local
123 struct da9055 *da9055 = gpio->da9055; da9055_gpio_to_irq()
130 .label = "da9055-gpio",
144 struct da9055_gpio *gpio; da9055_gpio_probe() local
148 gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); da9055_gpio_probe()
149 if (!gpio) da9055_gpio_probe()
152 gpio->da9055 = dev_get_drvdata(pdev->dev.parent); da9055_gpio_probe()
153 pdata = dev_get_platdata(gpio->da9055->dev); da9055_gpio_probe()
155 gpio->gp = reference_gp; da9055_gpio_probe()
157 gpio->gp.base = pdata->gpio_base; da9055_gpio_probe()
159 ret = gpiochip_add(&gpio->gp); da9055_gpio_probe()
165 platform_set_drvdata(pdev, gpio); da9055_gpio_probe()
175 struct da9055_gpio *gpio = platform_get_drvdata(pdev); da9055_gpio_remove() local
177 gpiochip_remove(&gpio->gp); da9055_gpio_remove()
185 .name = "da9055-gpio",
204 MODULE_ALIAS("platform:da9055-gpio");
H A Dgpio-octeon.c12 #include <linux/gpio.h>
16 #include <asm/octeon/cvmx-gpio-defs.h>
44 struct octeon_gpio *gpio = container_of(chip, struct octeon_gpio, chip); octeon_gpio_dir_in() local
46 cvmx_write_csr(gpio->register_base + bit_cfg_reg(offset), 0); octeon_gpio_dir_in()
52 struct octeon_gpio *gpio = container_of(chip, struct octeon_gpio, chip); octeon_gpio_set() local
54 u64 reg = gpio->register_base + (value ? TX_SET : TX_CLEAR); octeon_gpio_set()
61 struct octeon_gpio *gpio = container_of(chip, struct octeon_gpio, chip); octeon_gpio_dir_out() local
69 cvmx_write_csr(gpio->register_base + bit_cfg_reg(offset), cfgx.u64); octeon_gpio_dir_out()
75 struct octeon_gpio *gpio = container_of(chip, struct octeon_gpio, chip); octeon_gpio_get() local
76 u64 read_bits = cvmx_read_csr(gpio->register_base + RX_DAT); octeon_gpio_get()
83 struct octeon_gpio *gpio; octeon_gpio_probe() local
88 gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); octeon_gpio_probe()
89 if (!gpio) octeon_gpio_probe()
91 chip = &gpio->chip; octeon_gpio_probe()
106 gpio->register_base = (u64)devm_ioremap(&pdev->dev, res_mem->start, octeon_gpio_probe()
110 chip->label = "octeon-gpio"; octeon_gpio_probe()
138 .compatible = "cavium,octeon-3860-gpio",
H A Dgpio-ucb1400.c17 struct ucb1400_gpio *gpio; ucb1400_gpio_dir_in() local
18 gpio = container_of(gc, struct ucb1400_gpio, gc); ucb1400_gpio_dir_in()
19 ucb1400_gpio_set_direction(gpio->ac97, off, 0); ucb1400_gpio_dir_in()
25 struct ucb1400_gpio *gpio; ucb1400_gpio_dir_out() local
26 gpio = container_of(gc, struct ucb1400_gpio, gc); ucb1400_gpio_dir_out()
27 ucb1400_gpio_set_direction(gpio->ac97, off, 1); ucb1400_gpio_dir_out()
28 ucb1400_gpio_set_value(gpio->ac97, off, val); ucb1400_gpio_dir_out()
34 struct ucb1400_gpio *gpio; ucb1400_gpio_get() local
35 gpio = container_of(gc, struct ucb1400_gpio, gc); ucb1400_gpio_get()
36 return ucb1400_gpio_get_value(gpio->ac97, off); ucb1400_gpio_get()
41 struct ucb1400_gpio *gpio; ucb1400_gpio_set() local
42 gpio = container_of(gc, struct ucb1400_gpio, gc); ucb1400_gpio_set()
43 ucb1400_gpio_set_value(gpio->ac97, off, val); ucb1400_gpio_set()
H A Dgpio-rdc321x.c28 #include <linux/gpio.h>
44 static int rdc_gpio_get_value(struct gpio_chip *chip, unsigned gpio) rdc_gpio_get_value() argument
51 reg = gpio < 32 ? gpch->reg1_data_base : gpch->reg2_data_base; rdc_gpio_get_value()
55 gpch->data_reg[gpio < 32 ? 0 : 1]); rdc_gpio_get_value()
59 return (1 << (gpio & 0x1f)) & value ? 1 : 0; rdc_gpio_get_value()
63 unsigned gpio, int value) rdc_gpio_set_value_impl()
66 int reg = (gpio < 32) ? 0 : 1; rdc_gpio_set_value_impl()
71 gpch->data_reg[reg] |= 1 << (gpio & 0x1f); rdc_gpio_set_value_impl()
73 gpch->data_reg[reg] &= ~(1 << (gpio & 0x1f)); rdc_gpio_set_value_impl()
82 unsigned gpio, int value) rdc_gpio_set_value()
88 rdc_gpio_set_value_impl(chip, gpio, value); rdc_gpio_set_value()
93 unsigned gpio, int value) rdc_gpio_config()
102 err = pci_read_config_dword(gpch->sb_pdev, gpio < 32 ? rdc_gpio_config()
107 reg |= 1 << (gpio & 0x1f); rdc_gpio_config()
109 err = pci_write_config_dword(gpch->sb_pdev, gpio < 32 ? rdc_gpio_config()
114 rdc_gpio_set_value_impl(chip, gpio, value); rdc_gpio_config()
123 static int rdc_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) rdc_gpio_direction_input() argument
125 return rdc_gpio_config(chip, gpio, 1); rdc_gpio_direction_input()
149 r = platform_get_resource_byname(pdev, IORESOURCE_IO, "gpio-reg1"); rdc321x_gpio_probe()
151 dev_err(&pdev->dev, "failed to get gpio-reg1 resource\n"); rdc321x_gpio_probe()
160 r = platform_get_resource_byname(pdev, IORESOURCE_IO, "gpio-reg2"); rdc321x_gpio_probe()
162 dev_err(&pdev->dev, "failed to get gpio-reg2 resource\n"); rdc321x_gpio_probe()
169 rdc321x_gpio_dev->chip.label = "rdc321x-gpio"; rdc321x_gpio_probe()
210 .driver.name = "rdc321x-gpio",
221 MODULE_ALIAS("platform:rdc321x-gpio");
62 rdc_gpio_set_value_impl(struct gpio_chip *chip, unsigned gpio, int value) rdc_gpio_set_value_impl() argument
81 rdc_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) rdc_gpio_set_value() argument
92 rdc_gpio_config(struct gpio_chip *chip, unsigned gpio, int value) rdc_gpio_config() argument
H A Dgpio-pxa.c2 * linux/arch/arm/plat-pxa/gpio.c
17 #include <linux/gpio.h>
18 #include <linux/gpio-pxa.h>
80 int (*set_wake)(unsigned int gpio, unsigned int on);
159 static inline struct pxa_gpio_chip *gpio_to_pxachip(unsigned gpio) gpio_to_pxachip() argument
161 return &pxa_gpio_chips[gpio_to_bank(gpio)]; gpio_to_pxachip()
177 static inline int __gpio_is_inverted(int gpio) __gpio_is_inverted() argument
179 if ((gpio_type == PXA26X_GPIO) && (gpio > 85)) __gpio_is_inverted()
190 static inline int __gpio_is_occupied(unsigned gpio) __gpio_is_occupied() argument
197 pxachip = gpio_to_pxachip(gpio); __gpio_is_occupied()
206 af = (gafr >> ((gpio & 0xf) * 2)) & 0x3; __gpio_is_occupied()
207 dir = gpdr & GPIO_bit(gpio); __gpio_is_occupied()
209 if (__gpio_is_inverted(gpio)) __gpio_is_occupied()
215 ret = gpdr & GPIO_bit(gpio); __gpio_is_occupied()
305 int i, gpio, nbanks = gpio_to_bank(gpio_end) + 1; pxa_init_gpio_chip() local
314 for (i = 0, gpio = 0; i < nbanks; i++, gpio += 32) { pxa_init_gpio_chip()
317 sprintf(chips[i].label, "gpio-%d", i); pxa_init_gpio_chip()
321 c->base = gpio; pxa_init_gpio_chip()
336 c->ngpio = (gpio + 31 > gpio_end) ? (gpio_end - gpio + 1) : 32; pxa_init_gpio_chip()
361 int gpio = pxa_irq_to_gpio(d->irq); pxa_gpio_irq_type() local
362 unsigned long gpdr, mask = GPIO_bit(gpio); pxa_gpio_irq_type()
364 c = gpio_to_pxachip(gpio); pxa_gpio_irq_type()
370 if ((c->irq_edge_rise | c->irq_edge_fall) & GPIO_bit(gpio)) pxa_gpio_irq_type()
373 if (__gpio_is_occupied(gpio)) pxa_gpio_irq_type()
381 if (__gpio_is_inverted(gpio)) pxa_gpio_irq_type()
398 pr_debug("%s: IRQ%d (GPIO%d) - edge%s%s\n", __func__, d->irq, gpio, pxa_gpio_irq_type()
407 int loop, gpio, gpio_base, n; pxa_gpio_demux_handler() local
415 for_each_gpio_chip(gpio, c) { for_each_gpio_chip()
435 int gpio = pxa_irq_to_gpio(d->irq); pxa_ack_muxed_gpio() local
436 struct pxa_gpio_chip *c = gpio_to_pxachip(gpio); pxa_ack_muxed_gpio()
438 writel_relaxed(GPIO_bit(gpio), c->regbase + GEDR_OFFSET); pxa_ack_muxed_gpio()
443 int gpio = pxa_irq_to_gpio(d->irq); pxa_mask_muxed_gpio() local
444 struct pxa_gpio_chip *c = gpio_to_pxachip(gpio); pxa_mask_muxed_gpio()
447 c->irq_mask &= ~GPIO_bit(gpio); pxa_mask_muxed_gpio()
449 grer = readl_relaxed(c->regbase + GRER_OFFSET) & ~GPIO_bit(gpio); pxa_mask_muxed_gpio()
450 gfer = readl_relaxed(c->regbase + GFER_OFFSET) & ~GPIO_bit(gpio); pxa_mask_muxed_gpio()
457 int gpio = pxa_irq_to_gpio(d->irq); pxa_gpio_set_wake() local
458 struct pxa_gpio_chip *c = gpio_to_pxachip(gpio); pxa_gpio_set_wake()
461 return c->set_wake(gpio, on); pxa_gpio_set_wake()
468 int gpio = pxa_irq_to_gpio(d->irq); pxa_unmask_muxed_gpio() local
469 struct pxa_gpio_chip *c = gpio_to_pxachip(gpio); pxa_unmask_muxed_gpio()
471 c->irq_mask |= GPIO_bit(gpio); pxa_unmask_muxed_gpio()
511 { .compatible = "intel,pxa25x-gpio", .data = &pxa25x_id, },
512 { .compatible = "intel,pxa26x-gpio", .data = &pxa26x_id, },
513 { .compatible = "intel,pxa27x-gpio", .data = &pxa27x_id, },
514 { .compatible = "intel,pxa3xx-gpio", .data = &pxa3xx_id, },
515 { .compatible = "marvell,pxa93x-gpio", .data = &pxa93x_id, },
516 { .compatible = "marvell,mmp-gpio", .data = &mmp_id, },
517 { .compatible = "marvell,mmp2-gpio", .data = &mmp2_id, },
518 { .compatible = "marvell,pxa1928-gpio", .data = &pxa1928_id, },
545 dev_err(&pdev->dev, "Failed to find gpio controller\n"); pxa_gpio_probe_dt()
578 int gpio, irq, ret, use_of = 0; pxa_gpio_probe() local
616 dev_err(&pdev->dev, "Error %ld to get gpio clock\n", pxa_gpio_probe()
632 for_each_gpio_chip(gpio, c) { for_each_gpio_chip()
673 { "pxa25x-gpio", (unsigned long)&pxa25x_id },
674 { "pxa26x-gpio", (unsigned long)&pxa26x_id },
675 { "pxa27x-gpio", (unsigned long)&pxa27x_id },
676 { "pxa3xx-gpio", (unsigned long)&pxa3xx_id },
677 { "pxa93x-gpio", (unsigned long)&pxa93x_id },
678 { "mmp-gpio", (unsigned long)&mmp_id },
679 { "mmp2-gpio", (unsigned long)&mmp2_id },
680 { "pxa1928-gpio", (unsigned long)&pxa1928_id },
687 .name = "pxa-gpio",
703 int gpio; pxa_gpio_suspend() local
705 for_each_gpio_chip(gpio, c) { for_each_gpio_chip()
720 int gpio; pxa_gpio_resume() local
722 for_each_gpio_chip(gpio, c) { for_each_gpio_chip()
H A Dgpio-zynq.c14 #include <linux/gpio/driver.h>
22 #define DRIVER_NAME "zynq-gpio"
87 * struct zynq_gpio - gpio device private data structure
105 * @pin_num: gpio pin number within the device
106 * @bank_num: an output parameter used to return the bank number of the gpio
109 * for the given gpio pin
152 * @pin: gpio pin number within the device
162 struct zynq_gpio *gpio = container_of(chip, struct zynq_gpio, chip); zynq_gpio_get_value() local
166 data = readl_relaxed(gpio->base_addr + zynq_gpio_get_value()
175 * @pin: gpio pin number within the device
180 * gpio pin to the specified value. The state is either 0 or non-zero.
186 struct zynq_gpio *gpio = container_of(chip, struct zynq_gpio, chip); zynq_gpio_set_value() local
206 writel_relaxed(state, gpio->base_addr + reg_offset); zynq_gpio_set_value()
212 * @pin: gpio pin number within the device
215 * the gpio pin as input.
223 struct zynq_gpio *gpio = container_of(chip, struct zynq_gpio, chip); zynq_gpio_dir_in() local
232 reg = readl_relaxed(gpio->base_addr + ZYNQ_GPIO_DIRM_OFFSET(bank_num)); zynq_gpio_dir_in()
234 writel_relaxed(reg, gpio->base_addr + ZYNQ_GPIO_DIRM_OFFSET(bank_num)); zynq_gpio_dir_in()
242 * @pin: gpio pin number within the device
256 struct zynq_gpio *gpio = container_of(chip, struct zynq_gpio, chip); zynq_gpio_dir_out() local
261 reg = readl_relaxed(gpio->base_addr + ZYNQ_GPIO_DIRM_OFFSET(bank_num)); zynq_gpio_dir_out()
263 writel_relaxed(reg, gpio->base_addr + ZYNQ_GPIO_DIRM_OFFSET(bank_num)); zynq_gpio_dir_out()
266 reg = readl_relaxed(gpio->base_addr + ZYNQ_GPIO_OUTEN_OFFSET(bank_num)); zynq_gpio_dir_out()
268 writel_relaxed(reg, gpio->base_addr + ZYNQ_GPIO_OUTEN_OFFSET(bank_num)); zynq_gpio_dir_out()
276 * zynq_gpio_irq_mask - Disable the interrupts for a gpio pin
279 * This function calculates gpio pin number from irq number and sets the
286 struct zynq_gpio *gpio = irq_data_get_irq_chip_data(irq_data); zynq_gpio_irq_mask() local
291 gpio->base_addr + ZYNQ_GPIO_INTDIS_OFFSET(bank_num)); zynq_gpio_irq_mask()
295 * zynq_gpio_irq_unmask - Enable the interrupts for a gpio pin
296 * @irq_data: irq data containing irq number of gpio pin for the interrupt
299 * This function calculates the gpio pin number from irq number and sets the
306 struct zynq_gpio *gpio = irq_data_get_irq_chip_data(irq_data); zynq_gpio_irq_unmask() local
311 gpio->base_addr + ZYNQ_GPIO_INTEN_OFFSET(bank_num)); zynq_gpio_irq_unmask()
315 * zynq_gpio_irq_ack - Acknowledge the interrupt of a gpio pin
316 * @irq_data: irq data containing irq number of gpio pin for the interrupt
319 * This function calculates gpio pin number from irq number and sets the bit
325 struct zynq_gpio *gpio = irq_data_get_irq_chip_data(irq_data); zynq_gpio_irq_ack() local
330 gpio->base_addr + ZYNQ_GPIO_INTSTS_OFFSET(bank_num)); zynq_gpio_irq_ack()
334 * zynq_gpio_irq_enable - Enable the interrupts for a gpio pin
335 * @irq_data: irq data containing irq number of gpio pin for the interrupt
357 * zynq_gpio_set_irq_type - Set the irq type for a gpio pin
358 * @irq_data: irq data containing irq number of gpio pin
359 * @type: interrupt type that is to be set for the gpio pin
361 * This function gets the gpio pin number and its bank from the gpio pin number
375 struct zynq_gpio *gpio = irq_data_get_irq_chip_data(irq_data); zynq_gpio_set_irq_type() local
380 int_type = readl_relaxed(gpio->base_addr + zynq_gpio_set_irq_type()
382 int_pol = readl_relaxed(gpio->base_addr + zynq_gpio_set_irq_type()
384 int_any = readl_relaxed(gpio->base_addr + zynq_gpio_set_irq_type()
419 gpio->base_addr + ZYNQ_GPIO_INTTYPE_OFFSET(bank_num)); zynq_gpio_set_irq_type()
421 gpio->base_addr + ZYNQ_GPIO_INTPOL_OFFSET(bank_num)); zynq_gpio_set_irq_type()
423 gpio->base_addr + ZYNQ_GPIO_INTANY_OFFSET(bank_num)); zynq_gpio_set_irq_type()
438 struct zynq_gpio *gpio = irq_data_get_irq_chip_data(data); zynq_gpio_set_wake() local
440 irq_set_irq_wake(gpio->irq, on); zynq_gpio_set_wake()
469 static void zynq_gpio_handle_bank_irq(struct zynq_gpio *gpio, zynq_gpio_handle_bank_irq() argument
474 struct irq_domain *irqdomain = gpio->chip.irqdomain; zynq_gpio_handle_bank_irq()
489 * zynq_gpio_irqhandler - IRQ handler for the gpio banks of a gpio device
490 * @irq: irq number of the gpio bank where interrupt has occurred
494 * gpio pin number which has triggered an interrupt. It then acks the triggered
497 * Note: A bug is reported if no handler is set for the gpio pin.
503 struct zynq_gpio *gpio = irq_get_handler_data(irq); zynq_gpio_irqhandler() local
509 int_sts = readl_relaxed(gpio->base_addr + zynq_gpio_irqhandler()
511 int_enb = readl_relaxed(gpio->base_addr + zynq_gpio_irqhandler()
513 zynq_gpio_handle_bank_irq(gpio, bank_num, int_sts & ~int_enb); zynq_gpio_irqhandler()
546 struct zynq_gpio *gpio = platform_get_drvdata(pdev); zynq_gpio_runtime_suspend() local
548 clk_disable_unprepare(gpio->clk); zynq_gpio_runtime_suspend()
556 struct zynq_gpio *gpio = platform_get_drvdata(pdev); zynq_gpio_runtime_resume() local
558 return clk_prepare_enable(gpio->clk); zynq_gpio_runtime_resume()
589 * This function allocates memory resources for the gpio device and registers
590 * all the banks of the device. It will also set up interrupts for the gpio
599 struct zynq_gpio *gpio; zynq_gpio_probe() local
603 gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); zynq_gpio_probe()
604 if (!gpio) zynq_gpio_probe()
607 platform_set_drvdata(pdev, gpio); zynq_gpio_probe()
610 gpio->base_addr = devm_ioremap_resource(&pdev->dev, res); zynq_gpio_probe()
611 if (IS_ERR(gpio->base_addr)) zynq_gpio_probe()
612 return PTR_ERR(gpio->base_addr); zynq_gpio_probe()
614 gpio->irq = platform_get_irq(pdev, 0); zynq_gpio_probe()
615 if (gpio->irq < 0) { zynq_gpio_probe()
617 return gpio->irq; zynq_gpio_probe()
620 /* configure the gpio chip */ zynq_gpio_probe()
621 chip = &gpio->chip; zynq_gpio_probe()
635 gpio->clk = devm_clk_get(&pdev->dev, NULL); zynq_gpio_probe()
636 if (IS_ERR(gpio->clk)) { zynq_gpio_probe()
638 return PTR_ERR(gpio->clk); zynq_gpio_probe()
640 ret = clk_prepare_enable(gpio->clk); zynq_gpio_probe()
646 /* report a bug if gpio chip registration fails */ zynq_gpio_probe()
649 dev_err(&pdev->dev, "Failed to add gpio chip\n"); zynq_gpio_probe()
655 writel_relaxed(ZYNQ_GPIO_IXR_DISABLE_ALL, gpio->base_addr + zynq_gpio_probe()
665 gpiochip_set_chained_irqchip(chip, &zynq_gpio_edge_irqchip, gpio->irq, zynq_gpio_probe()
676 clk_disable_unprepare(gpio->clk); zynq_gpio_probe()
689 struct zynq_gpio *gpio = platform_get_drvdata(pdev); zynq_gpio_remove() local
692 gpiochip_remove(&gpio->chip); zynq_gpio_remove()
693 clk_disable_unprepare(gpio->clk); zynq_gpio_remove()
699 { .compatible = "xlnx,zynq-gpio-1.0", },
H A Dgpio-iop.c2 * arch/arm/plat-iop/gpio.c
17 #include <linux/gpio.h>
75 static int iop3xx_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) iop3xx_gpio_direction_input() argument
77 gpio_line_config(gpio, GPIO_IN); iop3xx_gpio_direction_input()
81 static int iop3xx_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int level) iop3xx_gpio_direction_output() argument
83 gpio_line_set(gpio, level); iop3xx_gpio_direction_output()
84 gpio_line_config(gpio, GPIO_OUT); iop3xx_gpio_direction_output()
88 static int iop3xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio) iop3xx_gpio_get_value() argument
90 return gpio_line_get(gpio); iop3xx_gpio_get_value()
93 static void iop3xx_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) iop3xx_gpio_set_value() argument
95 gpio_line_set(gpio, value); iop3xx_gpio_set_value()
122 .name = "gpio-iop",
H A Dgpio-viperboard.c24 #include <linux/gpio.h>
69 struct gpio_chip gpioa; /* gpio a related things */
72 struct gpio_chip gpiob; /* gpio b related things */
83 "gpio-a sampling freq in Hz (default is 1000Hz) valid values: 10, 100, 1000, 10000, 100000, 1000000");
91 struct vprbrd_gpio *gpio = vprbrd_gpioa_get() local
93 struct vprbrd *vb = gpio->vb; vprbrd_gpioa_get()
97 if (gpio->gpioa_out & (1 << offset)) vprbrd_gpioa_get()
98 return gpio->gpioa_val & (1 << offset); vprbrd_gpioa_get()
142 struct vprbrd_gpio *gpio = vprbrd_gpioa_set() local
144 struct vprbrd *vb = gpio->vb; vprbrd_gpioa_set()
147 if (gpio->gpioa_out & (1 << offset)) { vprbrd_gpioa_set()
149 gpio->gpioa_val |= (1 << offset); vprbrd_gpioa_set()
151 gpio->gpioa_val &= ~(1 << offset); vprbrd_gpioa_set()
184 struct vprbrd_gpio *gpio = vprbrd_gpioa_direction_input() local
186 struct vprbrd *vb = gpio->vb; vprbrd_gpioa_direction_input()
189 gpio->gpioa_out &= ~(1 << offset); vprbrd_gpioa_direction_input()
222 struct vprbrd_gpio *gpio = vprbrd_gpioa_direction_output() local
224 struct vprbrd *vb = gpio->vb; vprbrd_gpioa_direction_output()
227 gpio->gpioa_out |= (1 << offset); vprbrd_gpioa_direction_output()
229 gpio->gpioa_val |= (1 << offset); vprbrd_gpioa_direction_output()
231 gpio->gpioa_val &= ~(1 << offset); vprbrd_gpioa_direction_output()
260 /* ----- end of gpio a chip ---------------------------------------------- */
290 struct vprbrd_gpio *gpio = vprbrd_gpiob_get() local
292 struct vprbrd *vb = gpio->vb; vprbrd_gpiob_get()
296 if (gpio->gpiob_out & (1 << offset)) vprbrd_gpiob_get()
297 return gpio->gpiob_val & (1 << offset); vprbrd_gpiob_get()
313 gpio->gpiob_val = be16_to_cpu(val); vprbrd_gpiob_get()
315 return (gpio->gpiob_val >> offset) & 0x1; vprbrd_gpiob_get()
322 struct vprbrd_gpio *gpio = vprbrd_gpiob_set() local
324 struct vprbrd *vb = gpio->vb; vprbrd_gpiob_set()
327 if (gpio->gpiob_out & (1 << offset)) { vprbrd_gpiob_set()
329 gpio->gpiob_val |= (1 << offset); vprbrd_gpiob_set()
331 gpio->gpiob_val &= ~(1 << offset); vprbrd_gpiob_set()
356 struct vprbrd_gpio *gpio = vprbrd_gpiob_direction_input() local
358 struct vprbrd *vb = gpio->vb; vprbrd_gpiob_direction_input()
360 gpio->gpiob_out &= ~(1 << offset); vprbrd_gpiob_direction_input()
378 struct vprbrd_gpio *gpio = vprbrd_gpiob_direction_output() local
380 struct vprbrd *vb = gpio->vb; vprbrd_gpiob_direction_output()
382 gpio->gpiob_out |= (1 << offset); vprbrd_gpiob_direction_output()
397 /* ----- end of gpio b chip ---------------------------------------------- */
410 /* registering gpio a */ vprbrd_gpio_probe()
411 vb_gpio->gpioa.label = "viperboard gpio a"; vprbrd_gpio_probe()
423 dev_err(vb_gpio->gpioa.dev, "could not add gpio a"); vprbrd_gpio_probe()
427 /* registering gpio b */ vprbrd_gpio_probe()
428 vb_gpio->gpiob.label = "viperboard gpio b"; vprbrd_gpio_probe()
440 dev_err(vb_gpio->gpiob.dev, "could not add gpio b"); vprbrd_gpio_probe()
465 .driver.name = "viperboard-gpio",
510 MODULE_ALIAS("platform:viperboard-gpio");
H A Dgpio-kempld.c23 #include <linux/gpio.h>
68 struct kempld_gpio_data *gpio kempld_gpio_get() local
70 struct kempld_device_data *pld = gpio->pld; kempld_gpio_get()
77 struct kempld_gpio_data *gpio kempld_gpio_set() local
79 struct kempld_device_data *pld = gpio->pld; kempld_gpio_set()
88 struct kempld_gpio_data *gpio kempld_gpio_direction_input() local
90 struct kempld_device_data *pld = gpio->pld; kempld_gpio_direction_input()
102 struct kempld_gpio_data *gpio kempld_gpio_direction_output() local
104 struct kempld_device_data *pld = gpio->pld; kempld_gpio_direction_output()
116 struct kempld_gpio_data *gpio kempld_gpio_get_direction() local
118 struct kempld_device_data *pld = gpio->pld; kempld_gpio_get_direction()
148 struct kempld_gpio_data *gpio; kempld_gpio_probe() local
158 gpio = devm_kzalloc(dev, sizeof(*gpio), GFP_KERNEL); kempld_gpio_probe()
159 if (!gpio) kempld_gpio_probe()
162 gpio->pld = pld; kempld_gpio_probe()
164 platform_set_drvdata(pdev, gpio); kempld_gpio_probe()
166 chip = &gpio->chip; kempld_gpio_probe()
167 chip->label = "gpio-kempld"; kempld_gpio_probe()
200 struct kempld_gpio_data *gpio = platform_get_drvdata(pdev); kempld_gpio_remove() local
202 gpiochip_remove(&gpio->chip); kempld_gpio_remove()
208 .name = "kempld-gpio",
219 MODULE_ALIAS("platform:kempld-gpio");
H A Dgpio-sta2x11.c5 * Based on gpio-ml-ioh.c, Copyright 2010 OKI Semiconductors Ltd.
26 #include <linux/gpio.h>
55 struct gpio_chip gpio; member in struct:gsta_gpio
72 * gpio methods
75 static void gsta_gpio_set(struct gpio_chip *gpio, unsigned nr, int val) gsta_gpio_set() argument
77 struct gsta_gpio *chip = container_of(gpio, struct gsta_gpio, gpio); gsta_gpio_set()
87 static int gsta_gpio_get(struct gpio_chip *gpio, unsigned nr) gsta_gpio_get() argument
89 struct gsta_gpio *chip = container_of(gpio, struct gsta_gpio, gpio); gsta_gpio_get()
96 static int gsta_gpio_direction_output(struct gpio_chip *gpio, unsigned nr, gsta_gpio_direction_output() argument
99 struct gsta_gpio *chip = container_of(gpio, struct gsta_gpio, gpio); gsta_gpio_direction_output()
112 static int gsta_gpio_direction_input(struct gpio_chip *gpio, unsigned nr) gsta_gpio_direction_input() argument
114 struct gsta_gpio *chip = container_of(gpio, struct gsta_gpio, gpio); gsta_gpio_direction_input()
122 static int gsta_gpio_to_irq(struct gpio_chip *gpio, unsigned offset) gsta_gpio_to_irq() argument
124 struct gsta_gpio *chip = container_of(gpio, struct gsta_gpio, gpio); gsta_gpio_to_irq()
130 struct gpio_chip *gpio = &chip->gpio; gsta_gpio_setup() local
135 * ConneXt device to start from gpio 0: it's the main chipset gsta_gpio_setup()
140 gpio->label = dev_name(chip->dev); gsta_gpio_setup()
141 gpio->owner = THIS_MODULE; gsta_gpio_setup()
142 gpio->direction_input = gsta_gpio_direction_input; gsta_gpio_setup()
143 gpio->get = gsta_gpio_get; gsta_gpio_setup()
144 gpio->direction_output = gsta_gpio_direction_output; gsta_gpio_setup()
145 gpio->set = gsta_gpio_set; gsta_gpio_setup()
146 gpio->dbg_show = NULL; gsta_gpio_setup()
147 gpio->base = gpio_base; gsta_gpio_setup()
148 gpio->ngpio = GSTA_NR_GPIO; gsta_gpio_setup()
149 gpio->can_sleep = false; gsta_gpio_setup()
150 gpio->to_irq = gsta_gpio_to_irq; gsta_gpio_setup()
153 * After the first device, turn to dynamic gpio numbers. gsta_gpio_setup()
162 * invoked on startup to configure gpio's according to platform data.
368 dev_err(&dev->dev, "no gpio config\n"); gsta_probe()
369 pr_debug("gpio config: %p\n", gpio_pdata); gsta_probe()
397 dev_warn(&dev->dev, "sta2x11 gpio: Can't get irq base (%i)\n", gsta_probe()
407 dev_err(&dev->dev, "sta2x11 gpio: Can't request irq (%i)\n", gsta_probe()
412 err = gpiochip_add(&chip->gpio); gsta_probe()
414 dev_err(&dev->dev, "sta2x11 gpio: Can't register (%i)\n", gsta_probe()
431 .name = "sta2x11-gpio",
H A Dgpio-bcm-kona.c17 #include <linux/gpio.h>
28 #define GPIO_BANK(gpio) ((gpio) >> 5)
29 #define GPIO_BIT(gpio) ((gpio) & (GPIO_PER_BANK - 1))
32 #define GPIO_CONTROL(gpio) (0x00000100 + ((gpio) << 2))
94 unsigned gpio) bcm_kona_gpio_lock_gpio()
98 int bank_id = GPIO_BANK(gpio); bcm_kona_gpio_lock_gpio()
103 val |= BIT(gpio); bcm_kona_gpio_lock_gpio()
110 unsigned gpio) bcm_kona_gpio_unlock_gpio()
114 int bank_id = GPIO_BANK(gpio); bcm_kona_gpio_unlock_gpio()
119 val &= ~BIT(gpio); bcm_kona_gpio_unlock_gpio()
125 static void bcm_kona_gpio_set(struct gpio_chip *chip, unsigned gpio, int value) bcm_kona_gpio_set() argument
129 int bank_id = GPIO_BANK(gpio); bcm_kona_gpio_set()
130 int bit = GPIO_BIT(gpio); bcm_kona_gpio_set()
139 val = readl(reg_base + GPIO_CONTROL(gpio)); bcm_kona_gpio_set()
156 static int bcm_kona_gpio_get(struct gpio_chip *chip, unsigned gpio) bcm_kona_gpio_get() argument
160 int bank_id = GPIO_BANK(gpio); bcm_kona_gpio_get()
161 int bit = GPIO_BIT(gpio); bcm_kona_gpio_get()
170 val = readl(reg_base + GPIO_CONTROL(gpio)); bcm_kona_gpio_get()
184 static int bcm_kona_gpio_request(struct gpio_chip *chip, unsigned gpio) bcm_kona_gpio_request() argument
188 bcm_kona_gpio_unlock_gpio(kona_gpio, gpio); bcm_kona_gpio_request()
192 static void bcm_kona_gpio_free(struct gpio_chip *chip, unsigned gpio) bcm_kona_gpio_free() argument
196 bcm_kona_gpio_lock_gpio(kona_gpio, gpio); bcm_kona_gpio_free()
199 static int bcm_kona_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) bcm_kona_gpio_direction_input() argument
210 val = readl(reg_base + GPIO_CONTROL(gpio)); bcm_kona_gpio_direction_input()
213 writel(val, reg_base + GPIO_CONTROL(gpio)); bcm_kona_gpio_direction_input()
221 unsigned gpio, int value) bcm_kona_gpio_direction_output()
225 int bank_id = GPIO_BANK(gpio); bcm_kona_gpio_direction_output()
226 int bit = GPIO_BIT(gpio); bcm_kona_gpio_direction_output()
234 val = readl(reg_base + GPIO_CONTROL(gpio)); bcm_kona_gpio_direction_output()
237 writel(val, reg_base + GPIO_CONTROL(gpio)); bcm_kona_gpio_direction_output()
249 static int bcm_kona_gpio_to_irq(struct gpio_chip *chip, unsigned gpio) bcm_kona_gpio_to_irq() argument
254 if (gpio >= kona_gpio->gpio_chip.ngpio) bcm_kona_gpio_to_irq()
256 return irq_create_mapping(kona_gpio->irq_domain, gpio); bcm_kona_gpio_to_irq()
259 static int bcm_kona_gpio_set_debounce(struct gpio_chip *chip, unsigned gpio, bcm_kona_gpio_set_debounce() argument
290 val = readl(reg_base + GPIO_CONTROL(gpio)); bcm_kona_gpio_set_debounce()
301 writel(val, reg_base + GPIO_CONTROL(gpio)); bcm_kona_gpio_set_debounce()
309 .label = "bcm-kona-gpio",
326 unsigned gpio = d->hwirq; bcm_kona_gpio_irq_ack() local
327 int bank_id = GPIO_BANK(gpio); bcm_kona_gpio_irq_ack()
328 int bit = GPIO_BIT(gpio); bcm_kona_gpio_irq_ack()
347 unsigned gpio = d->hwirq; bcm_kona_gpio_irq_mask() local
348 int bank_id = GPIO_BANK(gpio); bcm_kona_gpio_irq_mask()
349 int bit = GPIO_BIT(gpio); bcm_kona_gpio_irq_mask()
368 unsigned gpio = d->hwirq; bcm_kona_gpio_irq_unmask() local
369 int bank_id = GPIO_BANK(gpio); bcm_kona_gpio_irq_unmask()
370 int bit = GPIO_BIT(gpio); bcm_kona_gpio_irq_unmask()
389 unsigned gpio = d->hwirq; bcm_kona_gpio_irq_set_type() local
420 val = readl(reg_base + GPIO_CONTROL(gpio)); bcm_kona_gpio_irq_set_type()
423 writel(val, reg_base + GPIO_CONTROL(gpio)); bcm_kona_gpio_irq_set_type()
490 .name = "bcm-kona-gpio",
500 { .compatible = "brcm,kona-gpio" },
573 dev_err(dev, "Failed to find gpio controller\n"); bcm_kona_gpio_probe()
670 .name = "bcm-kona-gpio",
93 bcm_kona_gpio_lock_gpio(struct bcm_kona_gpio *kona_gpio, unsigned gpio) bcm_kona_gpio_lock_gpio() argument
109 bcm_kona_gpio_unlock_gpio(struct bcm_kona_gpio *kona_gpio, unsigned gpio) bcm_kona_gpio_unlock_gpio() argument
220 bcm_kona_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int value) bcm_kona_gpio_direction_output() argument
H A Dgpio-janz-ttl.c19 #include <linux/gpio.h>
48 struct gpio_chip gpio; member in struct:ttl_module
60 static int ttl_get_value(struct gpio_chip *gpio, unsigned offset) ttl_get_value() argument
62 struct ttl_module *mod = dev_get_drvdata(gpio->dev); ttl_get_value()
82 static void ttl_set_value(struct gpio_chip *gpio, unsigned offset, int value) ttl_set_value() argument
84 struct ttl_module *mod = dev_get_drvdata(gpio->dev); ttl_set_value()
148 struct gpio_chip *gpio; ttl_probe() local
174 gpio = &mod->gpio; ttl_probe()
175 gpio->dev = &pdev->dev; ttl_probe()
176 gpio->label = pdev->name; ttl_probe()
177 gpio->get = ttl_get_value; ttl_probe()
178 gpio->set = ttl_set_value; ttl_probe()
179 gpio->owner = THIS_MODULE; ttl_probe()
182 gpio->base = -1; ttl_probe()
183 gpio->ngpio = 20; ttl_probe()
185 ret = gpiochip_add(gpio); ttl_probe()
198 gpiochip_remove(&mod->gpio); ttl_remove()
H A Dgpio-xgene.c26 #include <linux/gpio/driver.h>
138 struct xgene_gpio *gpio = dev_get_drvdata(dev); xgene_gpio_suspend() local
144 gpio->set_dr_val[bank] = ioread32(gpio->base + bank_offset); xgene_gpio_suspend()
151 struct xgene_gpio *gpio = dev_get_drvdata(dev); xgene_gpio_resume() local
157 iowrite32(gpio->set_dr_val[bank], gpio->base + bank_offset); xgene_gpio_resume()
171 struct xgene_gpio *gpio; xgene_gpio_probe() local
174 gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); xgene_gpio_probe()
175 if (!gpio) { xgene_gpio_probe()
181 gpio->base = devm_ioremap_nocache(&pdev->dev, res->start, xgene_gpio_probe()
183 if (!gpio->base) { xgene_gpio_probe()
188 gpio->chip.ngpio = XGENE_MAX_GPIOS; xgene_gpio_probe()
190 spin_lock_init(&gpio->lock); xgene_gpio_probe()
191 gpio->chip.dev = &pdev->dev; xgene_gpio_probe()
192 gpio->chip.direction_input = xgene_gpio_dir_in; xgene_gpio_probe()
193 gpio->chip.direction_output = xgene_gpio_dir_out; xgene_gpio_probe()
194 gpio->chip.get = xgene_gpio_get; xgene_gpio_probe()
195 gpio->chip.set = xgene_gpio_set; xgene_gpio_probe()
196 gpio->chip.label = dev_name(&pdev->dev); xgene_gpio_probe()
197 gpio->chip.base = -1; xgene_gpio_probe()
199 platform_set_drvdata(pdev, gpio); xgene_gpio_probe()
201 err = gpiochip_add(&gpio->chip); xgene_gpio_probe()
217 struct xgene_gpio *gpio = platform_get_drvdata(pdev); xgene_gpio_remove() local
219 gpiochip_remove(&gpio->chip); xgene_gpio_remove()
224 { .compatible = "apm,xgene-gpio", },
231 .name = "xgene-gpio",
H A Dgpio-xilinx.c2 * Xilinx gpio driver for xps/axi_gpio IP.
23 #include <linux/gpio.h>
57 static inline int xgpio_index(struct xgpio_instance *chip, int gpio) xgpio_index() argument
59 if (gpio >= chip->gpio_width[0]) xgpio_index()
65 static inline int xgpio_regoffset(struct xgpio_instance *chip, int gpio) xgpio_regoffset() argument
67 if (xgpio_index(chip, gpio)) xgpio_regoffset()
73 static inline int xgpio_offset(struct xgpio_instance *chip, int gpio) xgpio_offset() argument
75 if (xgpio_index(chip, gpio)) xgpio_offset()
76 return gpio - chip->gpio_width[0]; xgpio_offset()
78 return gpio; xgpio_offset()
84 * @gpio: GPIO signal number.
92 static int xgpio_get(struct gpio_chip *gc, unsigned int gpio) xgpio_get() argument
100 xgpio_regoffset(chip, gpio)); xgpio_get()
102 return !!(val & BIT(xgpio_offset(chip, gpio))); xgpio_get()
108 * @gpio: GPIO signal number.
114 static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val) xgpio_set() argument
120 int index = xgpio_index(chip, gpio); xgpio_set()
121 int offset = xgpio_offset(chip, gpio); xgpio_set()
132 xgpio_regoffset(chip, gpio), chip->gpio_state[index]); xgpio_set()
140 * @gpio: GPIO signal number.
146 static int xgpio_dir_in(struct gpio_chip *gc, unsigned int gpio) xgpio_dir_in() argument
152 int index = xgpio_index(chip, gpio); xgpio_dir_in()
153 int offset = xgpio_offset(chip, gpio); xgpio_dir_in()
160 xgpio_regoffset(chip, gpio), chip->gpio_dir[index]); xgpio_dir_in()
170 * @gpio: GPIO signal number.
179 static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) xgpio_dir_out() argument
185 int index = xgpio_index(chip, gpio); xgpio_dir_out()
186 int offset = xgpio_offset(chip, gpio); xgpio_dir_out()
196 xgpio_regoffset(chip, gpio), chip->gpio_state[index]); xgpio_dir_out()
201 xgpio_regoffset(chip, gpio), chip->gpio_dir[index]); xgpio_dir_out()
276 if (of_property_read_u32(np, "xlnx,gpio-width", &chip->gpio_width[0])) xgpio_probe()
314 /* Call the OF gpio helper to setup and register the GPIO device */ xgpio_probe()
326 { .compatible = "xlnx,xps-gpio-1.00.a", },
336 .name = "gpio-xilinx",
H A Dgpio-dln2.c18 #include <linux/gpio.h>
19 #include <linux/gpio/driver.h>
52 struct gpio_chip gpio; member in struct:dln2_gpio
156 struct dln2_gpio *dln2 = container_of(chip, struct dln2_gpio, gpio); dln2_gpio_request()
197 struct dln2_gpio *dln2 = container_of(chip, struct dln2_gpio, gpio); dln2_gpio_free()
204 struct dln2_gpio *dln2 = container_of(chip, struct dln2_gpio, gpio); dln2_gpio_get_direction()
214 struct dln2_gpio *dln2 = container_of(chip, struct dln2_gpio, gpio); dln2_gpio_get()
229 struct dln2_gpio *dln2 = container_of(chip, struct dln2_gpio, gpio); dln2_gpio_set()
237 struct dln2_gpio *dln2 = container_of(chip, struct dln2_gpio, gpio); dln2_gpio_set_direction()
265 struct dln2_gpio *dln2 = container_of(chip, struct dln2_gpio, gpio); dln2_gpio_direction_output()
278 struct dln2_gpio *dln2 = container_of(chip, struct dln2_gpio, gpio); dln2_gpio_set_debounce()
305 struct dln2_gpio *dln2 = container_of(gc, struct dln2_gpio, gpio); dln2_irq_unmask()
314 struct dln2_gpio *dln2 = container_of(gc, struct dln2_gpio, gpio); dln2_irq_mask()
323 struct dln2_gpio *dln2 = container_of(gc, struct dln2_gpio, gpio); dln2_irq_set_type()
352 struct dln2_gpio *dln2 = container_of(gc, struct dln2_gpio, gpio); dln2_irq_bus_lock()
360 struct dln2_gpio *dln2 = container_of(gc, struct dln2_gpio, gpio); dln2_irq_bus_unlock()
380 dev_err(dln2->gpio.dev, "failed to set event\n"); dln2_irq_bus_unlock()
409 dev_err(dln2->gpio.dev, "short event message\n"); dln2_gpio_event()
414 if (pin >= dln2->gpio.ngpio) { dln2_gpio_event()
415 dev_err(dln2->gpio.dev, "out of bounds pin %d\n", pin); dln2_gpio_event()
419 irq = irq_find_mapping(dln2->gpio.irqdomain, pin); dln2_gpio_event()
421 dev_err(dln2->gpio.dev, "pin %d not mapped to IRQ\n", pin); dln2_gpio_event()
464 dln2->gpio.label = "dln2"; dln2_gpio_probe()
465 dln2->gpio.dev = dev; dln2_gpio_probe()
466 dln2->gpio.owner = THIS_MODULE; dln2_gpio_probe()
467 dln2->gpio.base = -1; dln2_gpio_probe()
468 dln2->gpio.ngpio = pins; dln2_gpio_probe()
469 dln2->gpio.exported = true; dln2_gpio_probe()
470 dln2->gpio.can_sleep = true; dln2_gpio_probe()
471 dln2->gpio.irq_not_threaded = true; dln2_gpio_probe()
472 dln2->gpio.set = dln2_gpio_set; dln2_gpio_probe()
473 dln2->gpio.get = dln2_gpio_get; dln2_gpio_probe()
474 dln2->gpio.request = dln2_gpio_request; dln2_gpio_probe()
475 dln2->gpio.free = dln2_gpio_free; dln2_gpio_probe()
476 dln2->gpio.get_direction = dln2_gpio_get_direction; dln2_gpio_probe()
477 dln2->gpio.direction_input = dln2_gpio_direction_input; dln2_gpio_probe()
478 dln2->gpio.direction_output = dln2_gpio_direction_output; dln2_gpio_probe()
479 dln2->gpio.set_debounce = dln2_gpio_set_debounce; dln2_gpio_probe()
483 ret = gpiochip_add(&dln2->gpio); dln2_gpio_probe()
485 dev_err(dev, "failed to add gpio chip: %d\n", ret); dln2_gpio_probe()
489 ret = gpiochip_irqchip_add(&dln2->gpio, &dln2_gpio_irqchip, 0, dln2_gpio_probe()
506 gpiochip_remove(&dln2->gpio); dln2_gpio_probe()
516 gpiochip_remove(&dln2->gpio); dln2_gpio_remove()
522 .driver.name = "dln2-gpio",
532 MODULE_ALIAS("platform:dln2-gpio");
H A Dgpio-mpc8xxx.c19 #include <linux/gpio.h>
47 static inline u32 mpc8xxx_gpio2mask(unsigned int gpio) mpc8xxx_gpio2mask() argument
49 return 1u << (MPC8XXX_GPIO_PINS - 1 - gpio); mpc8xxx_gpio2mask()
70 static int mpc8572_gpio_get(struct gpio_chip *gc, unsigned int gpio) mpc8572_gpio_get() argument
82 return (val | out_shadow) & mpc8xxx_gpio2mask(gpio); mpc8572_gpio_get()
85 static int mpc8xxx_gpio_get(struct gpio_chip *gc, unsigned int gpio) mpc8xxx_gpio_get() argument
89 return in_be32(mm->regs + GPIO_DAT) & mpc8xxx_gpio2mask(gpio); mpc8xxx_gpio_get()
92 static void mpc8xxx_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) mpc8xxx_gpio_set() argument
101 mpc8xxx_gc->data |= mpc8xxx_gpio2mask(gpio); mpc8xxx_gpio_set()
103 mpc8xxx_gc->data &= ~mpc8xxx_gpio2mask(gpio); mpc8xxx_gpio_set()
136 static int mpc8xxx_gpio_dir_in(struct gpio_chip *gc, unsigned int gpio) mpc8xxx_gpio_dir_in() argument
144 clrbits32(mm->regs + GPIO_DIR, mpc8xxx_gpio2mask(gpio)); mpc8xxx_gpio_dir_in()
151 static int mpc8xxx_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) mpc8xxx_gpio_dir_out() argument
157 mpc8xxx_gpio_set(gc, gpio, val); mpc8xxx_gpio_dir_out()
161 setbits32(mm->regs + GPIO_DIR, mpc8xxx_gpio2mask(gpio)); mpc8xxx_gpio_dir_out()
168 static int mpc5121_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) mpc5121_gpio_dir_out() argument
171 if (gpio >= 28) mpc5121_gpio_dir_out()
174 return mpc8xxx_gpio_dir_out(gc, gpio, val); mpc5121_gpio_dir_out()
269 unsigned long gpio = irqd_to_hwirq(d); mpc512x_irq_set_type() local
274 if (gpio < 16) { mpc512x_irq_set_type()
276 shift = (15 - gpio) * 2; mpc512x_irq_set_type()
279 shift = (15 - (gpio % 16)) * 2; mpc512x_irq_set_type()
311 .name = "mpc8xxx-gpio",
338 { .compatible = "fsl,mpc8349-gpio", },
339 { .compatible = "fsl,mpc8572-gpio", },
340 { .compatible = "fsl,mpc8610-gpio", },
341 { .compatible = "fsl,mpc5121-gpio", .data = mpc512x_irq_set_type, },
342 { .compatible = "fsl,pq3-gpio", },
343 { .compatible = "fsl,qoriq-gpio", },
370 gc->direction_output = of_device_is_compatible(np, "fsl,mpc5121-gpio") ? mpc8xxx_probe()
372 gc->get = of_device_is_compatible(np, "fsl,mpc8572-gpio") ? mpc8xxx_probe()
424 .name = "gpio-mpc8xxx",
H A Dgpio-msm-v2.c23 #include <linux/gpio.h>
63 * gpio. If this bit is 0, this register will not be updated.
111 #define GPIO_INTR_CFG_SU(gpio) (msm_gpio.msm_tlmm_base + 0x0400 + \
112 (0x04 * (gpio)))
113 #define GPIO_CONFIG(gpio) (msm_gpio.msm_tlmm_base + 0x1000 + \
114 (0x10 * (gpio)))
115 #define GPIO_IN_OUT(gpio) (msm_gpio.msm_tlmm_base + 0x1004 + \
116 (0x10 * (gpio)))
117 #define GPIO_INTR_CFG(gpio) (msm_gpio.msm_tlmm_base + 0x1008 + \
118 (0x10 * (gpio)))
119 #define GPIO_INTR_STATUS(gpio) (msm_gpio.msm_tlmm_base + 0x100c + \
120 (0x10 * (gpio)))
206 * - the input value of the gpio doesn't change during the attempt.
216 * Algorithm comes from Google's msmgpio driver, see mach-msm/gpio.c.
218 static void msm_gpio_update_dual_edge_pos(unsigned gpio) msm_gpio_update_dual_edge_pos() argument
224 val = readl(GPIO_IN_OUT(gpio)) & BIT(GPIO_IN); msm_gpio_update_dual_edge_pos()
226 clear_gpio_bits(BIT(INTR_POL_CTL), GPIO_INTR_CFG(gpio)); msm_gpio_update_dual_edge_pos()
228 set_gpio_bits(BIT(INTR_POL_CTL), GPIO_INTR_CFG(gpio)); msm_gpio_update_dual_edge_pos()
229 val2 = readl(GPIO_IN_OUT(gpio)) & BIT(GPIO_IN); msm_gpio_update_dual_edge_pos()
230 intstat = readl(GPIO_INTR_STATUS(gpio)) & BIT(INTR_STATUS); msm_gpio_update_dual_edge_pos()
241 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); msm_gpio_irq_ack() local
243 writel(BIT(INTR_STATUS), GPIO_INTR_STATUS(gpio)); msm_gpio_irq_ack()
244 if (test_bit(gpio, msm_gpio.dual_edge_irqs)) msm_gpio_irq_ack()
245 msm_gpio_update_dual_edge_pos(gpio); msm_gpio_irq_ack()
250 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); msm_gpio_irq_mask() local
254 writel(TARGET_PROC_NONE, GPIO_INTR_CFG_SU(gpio)); msm_gpio_irq_mask()
255 clear_gpio_bits(BIT(INTR_RAW_STATUS_EN) | BIT(INTR_ENABLE), GPIO_INTR_CFG(gpio)); msm_gpio_irq_mask()
256 __clear_bit(gpio, msm_gpio.enabled_irqs); msm_gpio_irq_mask()
262 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); msm_gpio_irq_unmask() local
266 __set_bit(gpio, msm_gpio.enabled_irqs); msm_gpio_irq_unmask()
267 set_gpio_bits(BIT(INTR_RAW_STATUS_EN) | BIT(INTR_ENABLE), GPIO_INTR_CFG(gpio)); msm_gpio_irq_unmask()
268 writel(TARGET_PROC_SCORPION, GPIO_INTR_CFG_SU(gpio)); msm_gpio_irq_unmask()
274 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); msm_gpio_irq_set_type() local
280 bits = readl(GPIO_INTR_CFG(gpio)); msm_gpio_irq_set_type()
286 __set_bit(gpio, msm_gpio.dual_edge_irqs); msm_gpio_irq_set_type()
288 __clear_bit(gpio, msm_gpio.dual_edge_irqs); msm_gpio_irq_set_type()
292 __clear_bit(gpio, msm_gpio.dual_edge_irqs); msm_gpio_irq_set_type()
300 writel(bits, GPIO_INTR_CFG(gpio)); msm_gpio_irq_set_type()
303 msm_gpio_update_dual_edge_pos(gpio); msm_gpio_irq_set_type()
334 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); msm_gpio_irq_set_wake() local
339 set_bit(gpio, msm_gpio.wake_irqs); msm_gpio_irq_set_wake()
341 clear_bit(gpio, msm_gpio.wake_irqs); msm_gpio_irq_set_wake()
434 { .compatible = "qcom,msm-gpio", },
H A Dgpio-timberdale.c24 #include <linux/gpio.h>
32 #define DRIVER_NAME "timb-gpio"
48 struct gpio_chip gpio; member in struct:timbgpio
53 static int timbgpio_update_bit(struct gpio_chip *gpio, unsigned index, timbgpio_update_bit() argument
56 struct timbgpio *tgpio = container_of(gpio, struct timbgpio, gpio); timbgpio_update_bit()
73 static int timbgpio_gpio_direction_input(struct gpio_chip *gpio, unsigned nr) timbgpio_gpio_direction_input() argument
75 return timbgpio_update_bit(gpio, nr, TGPIODIR, true); timbgpio_gpio_direction_input()
78 static int timbgpio_gpio_get(struct gpio_chip *gpio, unsigned nr) timbgpio_gpio_get() argument
80 struct timbgpio *tgpio = container_of(gpio, struct timbgpio, gpio); timbgpio_gpio_get()
87 static int timbgpio_gpio_direction_output(struct gpio_chip *gpio, timbgpio_gpio_direction_output() argument
90 return timbgpio_update_bit(gpio, nr, TGPIODIR, false); timbgpio_gpio_direction_output()
93 static void timbgpio_gpio_set(struct gpio_chip *gpio, timbgpio_gpio_set() argument
96 timbgpio_update_bit(gpio, nr, TGPIOVAL, val != 0); timbgpio_gpio_set()
99 static int timbgpio_to_irq(struct gpio_chip *gpio, unsigned offset) timbgpio_to_irq() argument
101 struct timbgpio *tgpio = container_of(gpio, struct timbgpio, gpio); timbgpio_to_irq()
145 if (offset < 0 || offset > tgpio->gpio.ngpio) timbgpio_irq_type()
211 for_each_set_bit(offset, &ipr, tgpio->gpio.ngpio) timbgpio_irq()
212 generic_handle_irq(timbgpio_to_irq(&tgpio->gpio, offset)); timbgpio_irq()
266 gc = &tgpio->gpio; timbgpio_probe()
325 gpiochip_remove(&tgpio->gpio); timbgpio_remove()
H A Dgpio-pch.c20 #include <linux/gpio.h>
90 * @gpio: Data for GPIO infrastructure.
102 struct gpio_chip gpio; member in struct:pch_gpio
109 static void pch_gpio_set(struct gpio_chip *gpio, unsigned nr, int val) pch_gpio_set() argument
112 struct pch_gpio *chip = container_of(gpio, struct pch_gpio, gpio); pch_gpio_set()
126 static int pch_gpio_get(struct gpio_chip *gpio, unsigned nr) pch_gpio_get() argument
128 struct pch_gpio *chip = container_of(gpio, struct pch_gpio, gpio); pch_gpio_get()
133 static int pch_gpio_direction_output(struct gpio_chip *gpio, unsigned nr, pch_gpio_direction_output() argument
136 struct pch_gpio *chip = container_of(gpio, struct pch_gpio, gpio); pch_gpio_direction_output()
159 static int pch_gpio_direction_input(struct gpio_chip *gpio, unsigned nr) pch_gpio_direction_input() argument
161 struct pch_gpio *chip = container_of(gpio, struct pch_gpio, gpio); pch_gpio_direction_input()
212 static int pch_gpio_to_irq(struct gpio_chip *gpio, unsigned offset) pch_gpio_to_irq() argument
214 struct pch_gpio *chip = container_of(gpio, struct pch_gpio, gpio); pch_gpio_to_irq()
220 struct gpio_chip *gpio = &chip->gpio; pch_gpio_setup() local
222 gpio->label = dev_name(chip->dev); pch_gpio_setup()
223 gpio->dev = chip->dev; pch_gpio_setup()
224 gpio->owner = THIS_MODULE; pch_gpio_setup()
225 gpio->direction_input = pch_gpio_direction_input; pch_gpio_setup()
226 gpio->get = pch_gpio_get; pch_gpio_setup()
227 gpio->direction_output = pch_gpio_direction_output; pch_gpio_setup()
228 gpio->set = pch_gpio_set; pch_gpio_setup()
229 gpio->dbg_show = NULL; pch_gpio_setup()
230 gpio->base = -1; pch_gpio_setup()
231 gpio->ngpio = gpio_pins[chip->ioh]; pch_gpio_setup()
232 gpio->can_sleep = false; pch_gpio_setup()
233 gpio->to_irq = pch_gpio_to_irq; pch_gpio_setup()
397 ret = gpiochip_add(&chip->gpio); pch_gpio_probe()
399 dev_err(&pdev->dev, "PCH gpio: Failed to register GPIO\n"); pch_gpio_probe()
405 dev_warn(&pdev->dev, "PCH gpio: Failed to get IRQ base num\n"); pch_gpio_probe()
431 gpiochip_remove(&chip->gpio); pch_gpio_probe()
458 gpiochip_remove(&chip->gpio); pch_gpio_remove()
/linux-4.1.27/arch/m68k/coldfire/
H A Dgpio.c26 int __mcfgpio_get_value(unsigned gpio) __mcfgpio_get_value() argument
28 return mcfgpio_read(__mcfgpio_ppdr(gpio)) & mcfgpio_bit(gpio); __mcfgpio_get_value()
32 void __mcfgpio_set_value(unsigned gpio, int value) __mcfgpio_set_value() argument
34 if (gpio < MCFGPIO_SCR_START) { __mcfgpio_set_value()
39 data = mcfgpio_read(__mcfgpio_podr(gpio)); __mcfgpio_set_value()
41 data |= mcfgpio_bit(gpio); __mcfgpio_set_value()
43 data &= ~mcfgpio_bit(gpio); __mcfgpio_set_value()
44 mcfgpio_write(data, __mcfgpio_podr(gpio)); __mcfgpio_set_value()
48 mcfgpio_write(mcfgpio_bit(gpio), __mcfgpio_set_value()
49 MCFGPIO_SETR_PORT(gpio)); __mcfgpio_set_value()
51 mcfgpio_write(~mcfgpio_bit(gpio), __mcfgpio_set_value()
52 MCFGPIO_CLRR_PORT(gpio)); __mcfgpio_set_value()
57 int __mcfgpio_direction_input(unsigned gpio) __mcfgpio_direction_input() argument
63 dir = mcfgpio_read(__mcfgpio_pddr(gpio)); __mcfgpio_direction_input()
64 dir &= ~mcfgpio_bit(gpio); __mcfgpio_direction_input()
65 mcfgpio_write(dir, __mcfgpio_pddr(gpio)); __mcfgpio_direction_input()
72 int __mcfgpio_direction_output(unsigned gpio, int value) __mcfgpio_direction_output() argument
78 data = mcfgpio_read(__mcfgpio_pddr(gpio)); __mcfgpio_direction_output()
79 data |= mcfgpio_bit(gpio); __mcfgpio_direction_output()
80 mcfgpio_write(data, __mcfgpio_pddr(gpio)); __mcfgpio_direction_output()
83 if (gpio < MCFGPIO_SCR_START) { __mcfgpio_direction_output()
84 data = mcfgpio_read(__mcfgpio_podr(gpio)); __mcfgpio_direction_output()
86 data |= mcfgpio_bit(gpio); __mcfgpio_direction_output()
88 data &= ~mcfgpio_bit(gpio); __mcfgpio_direction_output()
89 mcfgpio_write(data, __mcfgpio_podr(gpio)); __mcfgpio_direction_output()
92 mcfgpio_write(mcfgpio_bit(gpio), __mcfgpio_direction_output()
93 MCFGPIO_SETR_PORT(gpio)); __mcfgpio_direction_output()
95 mcfgpio_write(~mcfgpio_bit(gpio), __mcfgpio_direction_output()
96 MCFGPIO_CLRR_PORT(gpio)); __mcfgpio_direction_output()
103 int __mcfgpio_request(unsigned gpio) __mcfgpio_request() argument
109 void __mcfgpio_free(unsigned gpio) __mcfgpio_free() argument
111 __mcfgpio_direction_input(gpio); __mcfgpio_free()
162 .name = "gpio",
163 .dev_name = "gpio",
H A Dm5249.c92 u32 gpio; m5249_smc91x_init() local
95 gpio = readl(MCFSIM2_GPIOINTENABLE); m5249_smc91x_init()
96 writel(gpio | 0x40, MCFSIM2_GPIOINTENABLE); m5249_smc91x_init()
98 gpio = readl(MCFINTC2_INTPRI5); m5249_smc91x_init()
99 writel(gpio | 0x04000000, MCFINTC2_INTPRI5); m5249_smc91x_init()
/linux-4.1.27/drivers/ssb/
H A Ddriver_gpio.c11 #include <linux/gpio.h>
27 return container_of(chip, struct ssb_bus, gpio); ssb_gpio_get_bus()
31 static int ssb_gpio_to_irq(struct gpio_chip *chip, unsigned gpio) ssb_gpio_to_irq() argument
36 return irq_find_mapping(bus->irq_domain, gpio); ssb_gpio_to_irq()
46 static int ssb_gpio_chipco_get_value(struct gpio_chip *chip, unsigned gpio) ssb_gpio_chipco_get_value() argument
50 return !!ssb_chipco_gpio_in(&bus->chipco, 1 << gpio); ssb_gpio_chipco_get_value()
53 static void ssb_gpio_chipco_set_value(struct gpio_chip *chip, unsigned gpio, ssb_gpio_chipco_set_value() argument
58 ssb_chipco_gpio_out(&bus->chipco, 1 << gpio, value ? 1 << gpio : 0); ssb_gpio_chipco_set_value()
62 unsigned gpio) ssb_gpio_chipco_direction_input()
66 ssb_chipco_gpio_outen(&bus->chipco, 1 << gpio, 0); ssb_gpio_chipco_direction_input()
71 unsigned gpio, int value) ssb_gpio_chipco_direction_output()
75 ssb_chipco_gpio_outen(&bus->chipco, 1 << gpio, 1 << gpio); ssb_gpio_chipco_direction_output()
76 ssb_chipco_gpio_out(&bus->chipco, 1 << gpio, value ? 1 << gpio : 0); ssb_gpio_chipco_direction_output()
80 static int ssb_gpio_chipco_request(struct gpio_chip *chip, unsigned gpio) ssb_gpio_chipco_request() argument
84 ssb_chipco_gpio_control(&bus->chipco, 1 << gpio, 0); ssb_gpio_chipco_request()
86 ssb_chipco_gpio_pulldown(&bus->chipco, 1 << gpio, 0); ssb_gpio_chipco_request()
88 ssb_chipco_gpio_pullup(&bus->chipco, 1 << gpio, 1 << gpio); ssb_gpio_chipco_request()
93 static void ssb_gpio_chipco_free(struct gpio_chip *chip, unsigned gpio) ssb_gpio_chipco_free() argument
98 ssb_chipco_gpio_pullup(&bus->chipco, 1 << gpio, 0); ssb_gpio_chipco_free()
105 int gpio = irqd_to_hwirq(d); ssb_gpio_irq_chipco_mask() local
107 ssb_chipco_gpio_intmask(&bus->chipco, BIT(gpio), 0); ssb_gpio_irq_chipco_mask()
113 int gpio = irqd_to_hwirq(d); ssb_gpio_irq_chipco_unmask() local
114 u32 val = ssb_chipco_gpio_in(&bus->chipco, BIT(gpio)); ssb_gpio_irq_chipco_unmask()
116 ssb_chipco_gpio_polarity(&bus->chipco, BIT(gpio), val); ssb_gpio_irq_chipco_unmask()
117 ssb_chipco_gpio_intmask(&bus->chipco, BIT(gpio), BIT(gpio)); ssb_gpio_irq_chipco_unmask()
134 int gpio; ssb_gpio_irq_chipco_handler() local
139 for_each_set_bit(gpio, &irqs, bus->gpio.ngpio) ssb_gpio_irq_chipco_handler()
140 generic_handle_irq(ssb_gpio_to_irq(&bus->gpio, gpio)); ssb_gpio_irq_chipco_handler()
149 struct gpio_chip *chip = &bus->gpio; ssb_gpio_irq_chipco_domain_init()
150 int gpio, hwirq, err; ssb_gpio_irq_chipco_domain_init() local
161 for (gpio = 0; gpio < chip->ngpio; gpio++) { ssb_gpio_irq_chipco_domain_init()
162 int irq = irq_create_mapping(bus->irq_domain, gpio); ssb_gpio_irq_chipco_domain_init()
171 "gpio", bus); ssb_gpio_irq_chipco_domain_init()
181 for (gpio = 0; gpio < chip->ngpio; gpio++) { ssb_gpio_irq_chipco_domain_init()
182 int irq = irq_find_mapping(bus->irq_domain, gpio); ssb_gpio_irq_chipco_domain_init()
194 struct gpio_chip *chip = &bus->gpio; ssb_gpio_irq_chipco_domain_exit()
195 int gpio; ssb_gpio_irq_chipco_domain_exit() local
202 for (gpio = 0; gpio < chip->ngpio; gpio++) { ssb_gpio_irq_chipco_domain_exit()
203 int irq = irq_find_mapping(bus->irq_domain, gpio); ssb_gpio_irq_chipco_domain_exit()
222 struct gpio_chip *chip = &bus->gpio; ssb_gpio_chipco_init()
264 static int ssb_gpio_extif_get_value(struct gpio_chip *chip, unsigned gpio) ssb_gpio_extif_get_value() argument
268 return !!ssb_extif_gpio_in(&bus->extif, 1 << gpio); ssb_gpio_extif_get_value()
271 static void ssb_gpio_extif_set_value(struct gpio_chip *chip, unsigned gpio, ssb_gpio_extif_set_value() argument
276 ssb_extif_gpio_out(&bus->extif, 1 << gpio, value ? 1 << gpio : 0); ssb_gpio_extif_set_value()
280 unsigned gpio) ssb_gpio_extif_direction_input()
284 ssb_extif_gpio_outen(&bus->extif, 1 << gpio, 0); ssb_gpio_extif_direction_input()
289 unsigned gpio, int value) ssb_gpio_extif_direction_output()
293 ssb_extif_gpio_outen(&bus->extif, 1 << gpio, 1 << gpio); ssb_gpio_extif_direction_output()
294 ssb_extif_gpio_out(&bus->extif, 1 << gpio, value ? 1 << gpio : 0); ssb_gpio_extif_direction_output()
302 int gpio = irqd_to_hwirq(d); ssb_gpio_irq_extif_mask() local
304 ssb_extif_gpio_intmask(&bus->extif, BIT(gpio), 0); ssb_gpio_irq_extif_mask()
310 int gpio = irqd_to_hwirq(d); ssb_gpio_irq_extif_unmask() local
311 u32 val = ssb_extif_gpio_in(&bus->extif, BIT(gpio)); ssb_gpio_irq_extif_unmask()
313 ssb_extif_gpio_polarity(&bus->extif, BIT(gpio), val); ssb_gpio_irq_extif_unmask()
314 ssb_extif_gpio_intmask(&bus->extif, BIT(gpio), BIT(gpio)); ssb_gpio_irq_extif_unmask()
331 int gpio; ssb_gpio_irq_extif_handler() local
336 for_each_set_bit(gpio, &irqs, bus->gpio.ngpio) ssb_gpio_irq_extif_handler()
337 generic_handle_irq(ssb_gpio_to_irq(&bus->gpio, gpio)); ssb_gpio_irq_extif_handler()
346 struct gpio_chip *chip = &bus->gpio; ssb_gpio_irq_extif_domain_init()
347 int gpio, hwirq, err; ssb_gpio_irq_extif_domain_init() local
358 for (gpio = 0; gpio < chip->ngpio; gpio++) { ssb_gpio_irq_extif_domain_init()
359 int irq = irq_create_mapping(bus->irq_domain, gpio); ssb_gpio_irq_extif_domain_init()
368 "gpio", bus); ssb_gpio_irq_extif_domain_init()
377 for (gpio = 0; gpio < chip->ngpio; gpio++) { ssb_gpio_irq_extif_domain_init()
378 int irq = irq_find_mapping(bus->irq_domain, gpio); ssb_gpio_irq_extif_domain_init()
390 struct gpio_chip *chip = &bus->gpio; ssb_gpio_irq_extif_domain_exit()
391 int gpio; ssb_gpio_irq_extif_domain_exit() local
397 for (gpio = 0; gpio < chip->ngpio; gpio++) { ssb_gpio_irq_extif_domain_exit()
398 int irq = irq_find_mapping(bus->irq_domain, gpio); ssb_gpio_irq_extif_domain_exit()
417 struct gpio_chip *chip = &bus->gpio; ssb_gpio_extif_init()
478 gpiochip_remove(&bus->gpio); ssb_gpio_unregister()
61 ssb_gpio_chipco_direction_input(struct gpio_chip *chip, unsigned gpio) ssb_gpio_chipco_direction_input() argument
70 ssb_gpio_chipco_direction_output(struct gpio_chip *chip, unsigned gpio, int value) ssb_gpio_chipco_direction_output() argument
279 ssb_gpio_extif_direction_input(struct gpio_chip *chip, unsigned gpio) ssb_gpio_extif_direction_input() argument
288 ssb_gpio_extif_direction_output(struct gpio_chip *chip, unsigned gpio, int value) ssb_gpio_extif_direction_output() argument
/linux-4.1.27/arch/unicore32/include/asm/
H A Dgpio.h2 * linux/arch/unicore32/include/asm/gpio.h
19 #include <asm-generic/gpio.h>
67 static inline int gpio_get_value(unsigned gpio) gpio_get_value() argument
69 if (__builtin_constant_p(gpio) && (gpio <= GPIO_MAX)) gpio_get_value()
70 return readl(GPIO_GPLR) & GPIO_GPIO(gpio); gpio_get_value()
72 return __gpio_get_value(gpio); gpio_get_value()
75 static inline void gpio_set_value(unsigned gpio, int value) gpio_set_value() argument
77 if (__builtin_constant_p(gpio) && (gpio <= GPIO_MAX)) gpio_set_value()
79 writel(GPIO_GPIO(gpio), GPIO_GPSR); gpio_set_value()
81 writel(GPIO_GPIO(gpio), GPIO_GPCR); gpio_set_value()
83 __gpio_set_value(gpio, value); gpio_set_value()
88 static inline unsigned gpio_to_irq(unsigned gpio) gpio_to_irq() argument
90 if ((gpio < IRQ_GPIOHIGH) && (FIELD(1, 1, gpio) & readl(GPIO_GPIR))) gpio_to_irq()
91 return IRQ_GPIOLOW0 + gpio; gpio_to_irq()
93 return IRQ_GPIO0 + gpio; gpio_to_irq()
/linux-4.1.27/arch/mips/include/asm/mach-bcm63xx/
H A Dgpio.h6 #define gpio_to_irq(gpio) -1
13 #include <asm-generic/gpio.h>
/linux-4.1.27/drivers/net/wireless/brcm80211/brcmsmac/
H A Dled.c3 #include <linux/gpio.h>
21 if (wl->radio_led.gpio == -1) brcms_radio_led_ctrl()
28 gpio_set_value(wl->radio_led.gpio, 1); brcms_radio_led_ctrl()
30 gpio_set_value(wl->radio_led.gpio, 0); brcms_radio_led_ctrl()
47 if (wl->radio_led.gpio != -1) brcms_led_unregister()
48 gpio_free(wl->radio_led.gpio); brcms_led_unregister()
57 struct gpio_chip *bcma_gpio = &cc_drv->gpio; brcms_led_register()
63 unsigned gpio = -1; brcms_led_register() local
67 radio_led->gpio = -1; brcms_led_register()
77 gpio = bcma_gpio->base + i; brcms_led_register()
84 if (gpio == -1 || !gpio_is_valid(gpio)) brcms_led_register()
87 /* request and configure LED gpio */ brcms_led_register()
88 err = gpio_request_one(gpio, brcms_led_register()
93 wiphy_err(wl->wiphy, "requesting led gpio %d failed (err: %d)\n", brcms_led_register()
94 gpio, err); brcms_led_register()
97 err = gpio_direction_output(gpio, 1); brcms_led_register()
99 wiphy_err(wl->wiphy, "cannot set led gpio %d to output (err: %d)\n", brcms_led_register()
100 gpio, err); brcms_led_register()
119 wiphy_info(wl->wiphy, "registered radio enabled led device: %s gpio: %d\n", brcms_led_register()
121 gpio); brcms_led_register()
122 radio_led->gpio = gpio; brcms_led_register()
/linux-4.1.27/arch/sh/include/asm/
H A Dgpio.h2 * include/asm-sh/gpio.h
19 #include <cpu/gpio.h>
23 #include <asm-generic/gpio.h>
27 static inline int gpio_get_value(unsigned gpio) gpio_get_value() argument
29 return __gpio_get_value(gpio); gpio_get_value()
32 static inline void gpio_set_value(unsigned gpio, int value) gpio_set_value() argument
34 __gpio_set_value(gpio, value); gpio_set_value()
37 static inline int gpio_cansleep(unsigned gpio) gpio_cansleep() argument
39 return __gpio_cansleep(gpio); gpio_cansleep()
42 static inline int gpio_to_irq(unsigned gpio) gpio_to_irq() argument
44 return __gpio_to_irq(gpio); gpio_to_irq()
/linux-4.1.27/arch/mips/bcm63xx/
H A Dgpio.c14 #include <linux/gpio.h>
39 unsigned gpio, int val) bcm63xx_gpio_set()
46 if (gpio >= chip->ngpio) bcm63xx_gpio_set()
49 if (gpio < 32) { bcm63xx_gpio_set()
51 mask = 1 << gpio; bcm63xx_gpio_set()
55 mask = 1 << (gpio - 32); bcm63xx_gpio_set()
68 static int bcm63xx_gpio_get(struct gpio_chip *chip, unsigned gpio) bcm63xx_gpio_get() argument
73 if (gpio >= chip->ngpio) bcm63xx_gpio_get()
76 if (gpio < 32) { bcm63xx_gpio_get()
78 mask = 1 << gpio; bcm63xx_gpio_get()
81 mask = 1 << (gpio - 32); bcm63xx_gpio_get()
88 unsigned gpio, int dir) bcm63xx_gpio_set_direction()
95 if (gpio >= chip->ngpio) bcm63xx_gpio_set_direction()
98 if (gpio < 32) { bcm63xx_gpio_set_direction()
100 mask = 1 << gpio; bcm63xx_gpio_set_direction()
103 mask = 1 << (gpio - 32); bcm63xx_gpio_set_direction()
118 static int bcm63xx_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) bcm63xx_gpio_direction_input() argument
120 return bcm63xx_gpio_set_direction(chip, gpio, BCM63XX_GPIO_DIR_IN); bcm63xx_gpio_direction_input()
124 unsigned gpio, int value) bcm63xx_gpio_direction_output()
126 bcm63xx_gpio_set(chip, gpio, value); bcm63xx_gpio_direction_output()
127 return bcm63xx_gpio_set_direction(chip, gpio, BCM63XX_GPIO_DIR_OUT); bcm63xx_gpio_direction_output()
132 .label = "bcm63xx-gpio",
38 bcm63xx_gpio_set(struct gpio_chip *chip, unsigned gpio, int val) bcm63xx_gpio_set() argument
87 bcm63xx_gpio_set_direction(struct gpio_chip *chip, unsigned gpio, int dir) bcm63xx_gpio_set_direction() argument
123 bcm63xx_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int value) bcm63xx_gpio_direction_output() argument
/linux-4.1.27/include/asm-generic/
H A Dgpio.h12 #include <linux/gpio/driver.h>
13 #include <linux/gpio/consumer.h>
47 struct gpio;
53 /* caller holds gpio_lock *OR* gpio is marked as requested */ gpio_to_chip()
54 static inline struct gpio_chip *gpio_to_chip(unsigned gpio) gpio_to_chip() argument
56 return gpiod_to_chip(gpio_to_desc(gpio)); gpio_to_chip()
62 extern int gpio_request(unsigned gpio, const char *label);
63 extern void gpio_free(unsigned gpio);
65 static inline int gpio_direction_input(unsigned gpio) gpio_direction_input() argument
67 return gpiod_direction_input(gpio_to_desc(gpio)); gpio_direction_input()
69 static inline int gpio_direction_output(unsigned gpio, int value) gpio_direction_output() argument
71 return gpiod_direction_output_raw(gpio_to_desc(gpio), value); gpio_direction_output()
74 static inline int gpio_set_debounce(unsigned gpio, unsigned debounce) gpio_set_debounce() argument
76 return gpiod_set_debounce(gpio_to_desc(gpio), debounce); gpio_set_debounce()
79 static inline int gpio_get_value_cansleep(unsigned gpio) gpio_get_value_cansleep() argument
81 return gpiod_get_raw_value_cansleep(gpio_to_desc(gpio)); gpio_get_value_cansleep()
83 static inline void gpio_set_value_cansleep(unsigned gpio, int value) gpio_set_value_cansleep() argument
85 return gpiod_set_raw_value_cansleep(gpio_to_desc(gpio), value); gpio_set_value_cansleep()
89 /* A platform's <asm/gpio.h> code may want to inline the I/O calls when
93 static inline int __gpio_get_value(unsigned gpio) __gpio_get_value() argument
95 return gpiod_get_raw_value(gpio_to_desc(gpio)); __gpio_get_value()
97 static inline void __gpio_set_value(unsigned gpio, int value) __gpio_set_value() argument
99 return gpiod_set_raw_value(gpio_to_desc(gpio), value); __gpio_set_value()
102 static inline int __gpio_cansleep(unsigned gpio) __gpio_cansleep() argument
104 return gpiod_cansleep(gpio_to_desc(gpio)); __gpio_cansleep()
107 static inline int __gpio_to_irq(unsigned gpio) __gpio_to_irq() argument
109 return gpiod_to_irq(gpio_to_desc(gpio)); __gpio_to_irq()
112 extern int gpio_request_one(unsigned gpio, unsigned long flags, const char *label);
113 extern int gpio_request_array(const struct gpio *array, size_t num);
114 extern void gpio_free_array(const struct gpio *array, size_t num);
120 static inline int gpio_export(unsigned gpio, bool direction_may_change) gpio_export() argument
122 return gpiod_export(gpio_to_desc(gpio), direction_may_change); gpio_export()
126 unsigned gpio) gpio_export_link()
128 return gpiod_export_link(dev, name, gpio_to_desc(gpio)); gpio_export_link()
131 static inline int gpio_sysfs_set_active_low(unsigned gpio, int value) gpio_sysfs_set_active_low() argument
133 return gpiod_sysfs_set_active_low(gpio_to_desc(gpio), value); gpio_sysfs_set_active_low()
136 static inline void gpio_unexport(unsigned gpio) gpio_unexport() argument
138 gpiod_unexport(gpio_to_desc(gpio)); gpio_unexport()
153 static inline int gpio_cansleep(unsigned gpio) gpio_cansleep() argument
158 static inline int gpio_get_value_cansleep(unsigned gpio) gpio_get_value_cansleep() argument
161 return __gpio_get_value(gpio); gpio_get_value_cansleep()
164 static inline void gpio_set_value_cansleep(unsigned gpio, int value) gpio_set_value_cansleep() argument
167 __gpio_set_value(gpio, value); gpio_set_value_cansleep()
125 gpio_export_link(struct device *dev, const char *name, unsigned gpio) gpio_export_link() argument
/linux-4.1.27/arch/sh/boards/mach-sdk7786/
H A DMakefile3 obj-$(CONFIG_GPIOLIB) += gpio.o
H A Dgpio.c12 #include <linux/gpio.h>
25 static int usrgpir_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) usrgpir_gpio_direction_input() argument
31 static int usrgpir_gpio_get(struct gpio_chip *chip, unsigned gpio) usrgpir_gpio_get() argument
33 return !!(fpga_read_reg(USRGPIR) & (1 << gpio)); usrgpir_gpio_get()
/linux-4.1.27/arch/blackfin/mach-bf538/
H A DMakefile6 obj-$(CONFIG_GPIOLIB) += ext-gpio.o
H A Dext-gpio.c12 #include <asm/gpio.h>
37 static int bf538_gpio_get_value(struct gpio_chip *chip, unsigned gpio) bf538_gpio_get_value() argument
40 return !!(read_PORTIO(port) & (1u << gpio)); bf538_gpio_get_value()
43 static void bf538_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) bf538_gpio_set_value() argument
47 write_PORTIO_SET(port, (1u << gpio)); bf538_gpio_set_value()
49 write_PORTIO_CLEAR(port, (1u << gpio)); bf538_gpio_set_value()
52 static int bf538_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) bf538_gpio_direction_input() argument
55 write_PORTIO_DIR(port, read_PORTIO_DIR(port) & ~(1u << gpio)); bf538_gpio_direction_input()
56 write_PORTIO_INEN(port, read_PORTIO_INEN(port) | (1u << gpio)); bf538_gpio_direction_input()
60 static int bf538_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int value) bf538_gpio_direction_output() argument
63 write_PORTIO_INEN(port, read_PORTIO_INEN(port) & ~(1u << gpio)); bf538_gpio_direction_output()
64 bf538_gpio_set_value(port, gpio, value); bf538_gpio_direction_output()
65 write_PORTIO_DIR(port, read_PORTIO_DIR(port) | (1u << gpio)); bf538_gpio_direction_output()
69 static int bf538_gpio_request(struct gpio_chip *chip, unsigned gpio) bf538_gpio_request() argument
71 return bfin_special_gpio_request(chip->base + gpio, chip->label); bf538_gpio_request()
74 static void bf538_gpio_free(struct gpio_chip *chip, unsigned gpio) bf538_gpio_free() argument
76 return bfin_special_gpio_free(chip->base + gpio); bf538_gpio_free()
/linux-4.1.27/arch/mips/include/asm/mach-pmcs-msp71xx/
H A Dmsp_gpio_macros.h129 /* This gives you the 'register relative offset gpio' number */
130 #define OFFSET_GPIO_NUMBER(gpio) (gpio - MSP_GPIO_OFFSET[gpio])
132 /* These take the 'register relative offset gpio' number */
143 #define BASIC_DATA_MASK(gpio) \
144 BASIC_DATA_REG_MASK(OFFSET_GPIO_NUMBER(gpio))
145 #define BASIC_MODE_MASK(gpio) \
146 BASIC_MODE_REG_MASK(OFFSET_GPIO_NUMBER(gpio))
147 #define BASIC_MODE(mode, gpio) \
148 BASIC_MODE_REG_VALUE(mode, OFFSET_GPIO_NUMBER(gpio))
149 #define BASIC_MODE_SHIFT(gpio) \
150 BASIC_MODE_REG_SHIFT(OFFSET_GPIO_NUMBER(gpio))
151 #define BASIC_MODE_FROM_REG(data, gpio) \
152 BASIC_MODE_REG_FROM_REG(data, OFFSET_GPIO_NUMBER(gpio))
174 /* This gives the 'register relative offset gpio' number */
175 #define EXTENDED_OFFSET_GPIO(gpio) (gpio < 24 ? gpio - 16 : gpio - 24)
177 /* These take the 'register relative offset gpio' number */
184 #define EXTENDED_DISABLE(gpio) \
185 EXTENDED_REG_DISABLE(EXTENDED_OFFSET_GPIO(gpio))
186 #define EXTENDED_ENABLE(gpio) \
187 EXTENDED_REG_ENABLE(EXTENDED_OFFSET_GPIO(gpio))
188 #define EXTENDED_SET(gpio) \
189 EXTENDED_REG_SET(EXTENDED_OFFSET_GPIO(gpio))
190 #define EXTENDED_CLR(gpio) \
191 EXTENDED_REG_CLR(EXTENDED_OFFSET_GPIO(gpio))
200 static inline enum msp_gpio_data msp_gpio_pin_get(unsigned int gpio) msp_gpio_pin_get() argument
204 if (gpio >= MSP_NUM_GPIOS) msp_gpio_pin_get()
207 if (gpio < 16) { msp_gpio_pin_get()
208 pinhi_mask = BASIC_DATA_MASK(gpio); msp_gpio_pin_get()
215 pinhi_mask = EXTENDED_ENABLE(gpio) | EXTENDED_CLR(gpio); msp_gpio_pin_get()
216 pinhi_mask2 = EXTENDED_SET(gpio); msp_gpio_pin_get()
218 if (((*MSP_GPIO_DATA_REGISTER[gpio] & pinhi_mask) == pinhi_mask) || msp_gpio_pin_get()
219 (*MSP_GPIO_DATA_REGISTER[gpio] & pinhi_mask2)) msp_gpio_pin_get()
226 static inline void msp_gpio_pin_set(enum msp_gpio_data data, unsigned int gpio) msp_gpio_pin_set() argument
228 if (gpio >= MSP_NUM_GPIOS) msp_gpio_pin_set()
231 if (gpio < 16) { msp_gpio_pin_set()
233 toggle_reg32(MSP_GPIO_DATA_REGISTER[gpio], msp_gpio_pin_set()
234 BASIC_DATA_MASK(gpio)); msp_gpio_pin_set()
236 set_reg32(MSP_GPIO_DATA_REGISTER[gpio], msp_gpio_pin_set()
237 BASIC_DATA_MASK(gpio)); msp_gpio_pin_set()
239 clear_reg32(MSP_GPIO_DATA_REGISTER[gpio], msp_gpio_pin_set()
240 BASIC_DATA_MASK(gpio)); msp_gpio_pin_set()
250 custom_read_reg32(MSP_GPIO_DATA_REGISTER[gpio], msp_gpio_pin_set()
252 if (tmpdata & EXTENDED_CLR(gpio)) msp_gpio_pin_set()
253 tmpdata = EXTENDED_CLR(gpio); msp_gpio_pin_set()
255 tmpdata = EXTENDED_SET(gpio); msp_gpio_pin_set()
256 custom_write_reg32(MSP_GPIO_DATA_REGISTER[gpio], msp_gpio_pin_set()
262 newdata = EXTENDED_SET(gpio); msp_gpio_pin_set()
264 newdata = EXTENDED_CLR(gpio); msp_gpio_pin_set()
265 set_value_reg32(MSP_GPIO_DATA_REGISTER[gpio], msp_gpio_pin_set()
272 static inline void msp_gpio_pin_hi(unsigned int gpio) msp_gpio_pin_hi() argument
274 msp_gpio_pin_set(MSP_GPIO_HI, gpio); msp_gpio_pin_hi()
278 static inline void msp_gpio_pin_lo(unsigned int gpio) msp_gpio_pin_lo() argument
280 msp_gpio_pin_set(MSP_GPIO_LO, gpio); msp_gpio_pin_lo()
284 static inline void msp_gpio_pin_toggle(unsigned int gpio) msp_gpio_pin_toggle() argument
286 msp_gpio_pin_set(MSP_GPIO_TOGGLE, gpio); msp_gpio_pin_toggle()
290 static inline enum msp_gpio_mode msp_gpio_pin_get_mode(unsigned int gpio) msp_gpio_pin_get_mode() argument
295 if (gpio >= MSP_NUM_GPIOS) msp_gpio_pin_get_mode()
298 data = *MSP_GPIO_MODE_REGISTER[gpio]; msp_gpio_pin_get_mode()
300 if (gpio < 16) { msp_gpio_pin_get_mode()
301 retval = BASIC_MODE_FROM_REG(data, gpio); msp_gpio_pin_get_mode()
304 if (data & EXTENDED_ENABLE(gpio)) msp_gpio_pin_get_mode()
317 static inline int msp_gpio_pin_mode(enum msp_gpio_mode mode, unsigned int gpio) msp_gpio_pin_mode() argument
321 if ((1 << gpio) & ~MSP_GPIO_MODE_ALLOWED[mode]) msp_gpio_pin_mode()
324 if (gpio >= MSP_NUM_GPIOS) msp_gpio_pin_mode()
327 if (gpio < 16) { msp_gpio_pin_mode()
328 modemask = BASIC_MODE_MASK(gpio); msp_gpio_pin_mode()
329 newmode = BASIC_MODE(mode, gpio); msp_gpio_pin_mode()
333 newmode = EXTENDED_DISABLE(gpio); msp_gpio_pin_mode()
335 newmode = EXTENDED_ENABLE(gpio); msp_gpio_pin_mode()
338 set_value_reg32(MSP_GPIO_MODE_REGISTER[gpio], modemask, newmode); msp_gpio_pin_mode()
/linux-4.1.27/arch/powerpc/sysdev/
H A Dppc4xx_gpio.c2 * PPC4xx gpio driver
30 #include <linux/gpio.h>
34 #define GPIO_MASK(gpio) (0x80000000 >> (gpio))
35 #define GPIO_MASK2(gpio) (0xc0000000 >> ((gpio) * 2))
67 * There are a maximum of 32 gpios in each gpio controller.
76 static int ppc4xx_gpio_get(struct gpio_chip *gc, unsigned int gpio) ppc4xx_gpio_get() argument
81 return in_be32(&regs->ir) & GPIO_MASK(gpio); ppc4xx_gpio_get()
85 __ppc4xx_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) __ppc4xx_gpio_set() argument
91 setbits32(&regs->or, GPIO_MASK(gpio)); __ppc4xx_gpio_set()
93 clrbits32(&regs->or, GPIO_MASK(gpio)); __ppc4xx_gpio_set()
97 ppc4xx_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) ppc4xx_gpio_set() argument
105 __ppc4xx_gpio_set(gc, gpio, val); ppc4xx_gpio_set()
109 pr_debug("%s: gpio: %d val: %d\n", __func__, gpio, val); ppc4xx_gpio_set()
112 static int ppc4xx_gpio_dir_in(struct gpio_chip *gc, unsigned int gpio) ppc4xx_gpio_dir_in() argument
122 clrbits32(&regs->odr, GPIO_MASK(gpio)); ppc4xx_gpio_dir_in()
125 clrbits32(&regs->tcr, GPIO_MASK(gpio)); ppc4xx_gpio_dir_in()
128 if (gpio < 16) { ppc4xx_gpio_dir_in()
129 clrbits32(&regs->osrl, GPIO_MASK2(gpio)); ppc4xx_gpio_dir_in()
130 clrbits32(&regs->tsrl, GPIO_MASK2(gpio)); ppc4xx_gpio_dir_in()
132 clrbits32(&regs->osrh, GPIO_MASK2(gpio)); ppc4xx_gpio_dir_in()
133 clrbits32(&regs->tsrh, GPIO_MASK2(gpio)); ppc4xx_gpio_dir_in()
142 ppc4xx_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) ppc4xx_gpio_dir_out() argument
152 __ppc4xx_gpio_set(gc, gpio, val); ppc4xx_gpio_dir_out()
155 clrbits32(&regs->odr, GPIO_MASK(gpio)); ppc4xx_gpio_dir_out()
158 setbits32(&regs->tcr, GPIO_MASK(gpio)); ppc4xx_gpio_dir_out()
161 if (gpio < 16) { ppc4xx_gpio_dir_out()
162 clrbits32(&regs->osrl, GPIO_MASK2(gpio)); ppc4xx_gpio_dir_out()
163 clrbits32(&regs->tsrl, GPIO_MASK2(gpio)); ppc4xx_gpio_dir_out()
165 clrbits32(&regs->osrh, GPIO_MASK2(gpio)); ppc4xx_gpio_dir_out()
166 clrbits32(&regs->tsrh, GPIO_MASK2(gpio)); ppc4xx_gpio_dir_out()
171 pr_debug("%s: gpio: %d val: %d\n", __func__, gpio, val); ppc4xx_gpio_dir_out()
180 for_each_compatible_node(np, NULL, "ibm,ppc4xx-gpio") { ppc4xx_add_gpiochips()
H A Dsimple_gpio.c22 #include <linux/gpio.h>
45 static int u8_gpio_get(struct gpio_chip *gc, unsigned int gpio) u8_gpio_get() argument
49 return in_8(mm_gc->regs) & u8_pin2mask(gpio); u8_gpio_get()
52 static void u8_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) u8_gpio_set() argument
61 u8_gc->data |= u8_pin2mask(gpio); u8_gpio_set()
63 u8_gc->data &= ~u8_pin2mask(gpio); u8_gpio_set()
70 static int u8_gpio_dir_in(struct gpio_chip *gc, unsigned int gpio) u8_gpio_dir_in() argument
75 static int u8_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) u8_gpio_dir_out() argument
77 u8_gpio_set(gc, gpio, val); u8_gpio_dir_out()
/linux-4.1.27/arch/avr32/boards/atstk1000/
H A Dsetup.c75 { .name = "led0:amber", .gpio = GPIO_PIN_PB( 8), },
76 { .name = "led1:amber", .gpio = GPIO_PIN_PB( 9), },
77 { .name = "led2:amber", .gpio = GPIO_PIN_PB(10), },
78 { .name = "led3:amber", .gpio = GPIO_PIN_PB(13), },
79 { .name = "led4:amber", .gpio = GPIO_PIN_PB(14), },
80 { .name = "led5:amber", .gpio = GPIO_PIN_PB(15), },
81 { .name = "led6:amber", .gpio = GPIO_PIN_PB(16), },
82 { .name = "led7:amber", .gpio = GPIO_PIN_PB(30),
86 { .name = "r1:red", .gpio = GPIO_PIN_PB( 8), },
87 { .name = "g1:green", .gpio = GPIO_PIN_PB(10), },
88 { .name = "b1:blue", .gpio = GPIO_PIN_PB(14), },
90 { .name = "r2:red", .gpio = GPIO_PIN_PB( 9),
92 { .name = "g2:green", .gpio = GPIO_PIN_PB(13), },
93 { .name = "b2:blue", .gpio = GPIO_PIN_PB(15),
105 .name = "leds-gpio",
106 .id = 2, /* gpio block J2 */
117 at32_select_gpio(stk1000_j2_led[i].gpio, AT32_GPIOF_OUTPUT); atstk1000_setup_j2_leds()
/linux-4.1.27/drivers/mfd/
H A Dwm8350-gpio.c20 #include <linux/mfd/wm8350/gpio.h>
23 static int gpio_set_dir(struct wm8350 *wm8350, int gpio, int dir) gpio_set_dir() argument
31 1 << gpio); gpio_set_dir()
35 1 << gpio); gpio_set_dir()
40 static int wm8350_gpio_set_debounce(struct wm8350 *wm8350, int gpio, int db) wm8350_gpio_set_debounce() argument
44 1 << gpio); wm8350_gpio_set_debounce()
47 WM8350_GPIO_DEBOUNCE, 1 << gpio); wm8350_gpio_set_debounce()
50 static int gpio_set_func(struct wm8350 *wm8350, int gpio, int func) gpio_set_func() argument
55 switch (gpio) { gpio_set_func()
143 static int gpio_set_pull_up(struct wm8350 *wm8350, int gpio, int up) gpio_set_pull_up() argument
148 1 << gpio); gpio_set_pull_up()
152 1 << gpio); gpio_set_pull_up()
155 static int gpio_set_pull_down(struct wm8350 *wm8350, int gpio, int down) gpio_set_pull_down() argument
160 1 << gpio); gpio_set_pull_down()
164 1 << gpio); gpio_set_pull_down()
167 static int gpio_set_polarity(struct wm8350 *wm8350, int gpio, int pol) gpio_set_polarity() argument
172 1 << gpio); gpio_set_polarity()
176 1 << gpio); gpio_set_polarity()
179 static int gpio_set_invert(struct wm8350 *wm8350, int gpio, int invert) gpio_set_invert() argument
182 return wm8350_set_bits(wm8350, WM8350_GPIO_INT_MODE, 1 << gpio); gpio_set_invert()
185 WM8350_GPIO_INT_MODE, 1 << gpio); gpio_set_invert()
188 int wm8350_gpio_config(struct wm8350 *wm8350, int gpio, int dir, int func, wm8350_gpio_config() argument
193 if (gpio_set_pull_up(wm8350, gpio, 0)) wm8350_gpio_config()
195 if (gpio_set_pull_down(wm8350, gpio, 0)) wm8350_gpio_config()
198 if (gpio_set_pull_down(wm8350, gpio, 0)) wm8350_gpio_config()
200 if (gpio_set_pull_up(wm8350, gpio, 1)) wm8350_gpio_config()
203 if (gpio_set_pull_up(wm8350, gpio, 0)) wm8350_gpio_config()
205 if (gpio_set_pull_down(wm8350, gpio, 1)) wm8350_gpio_config()
209 if (gpio_set_invert(wm8350, gpio, invert)) wm8350_gpio_config()
211 if (gpio_set_polarity(wm8350, gpio, pol)) wm8350_gpio_config()
213 if (wm8350_gpio_set_debounce(wm8350, gpio, debounce)) wm8350_gpio_config()
215 if (gpio_set_dir(wm8350, gpio, dir)) wm8350_gpio_config()
217 return gpio_set_func(wm8350, gpio, func); wm8350_gpio_config()
H A Dpcf50633-gpio.c21 #include <linux/mfd/pcf50633/gpio.h>
38 int pcf50633_gpio_set(struct pcf50633 *pcf, int gpio, u8 val) pcf50633_gpio_set() argument
42 reg = gpio - PCF50633_GPIO1 + PCF50633_REG_GPIO1CFG; pcf50633_gpio_set()
48 u8 pcf50633_gpio_get(struct pcf50633 *pcf, int gpio) pcf50633_gpio_get() argument
52 reg = gpio - PCF50633_GPIO1 + PCF50633_REG_GPIO1CFG; pcf50633_gpio_get()
59 int pcf50633_gpio_invert_set(struct pcf50633 *pcf, int gpio, int invert) pcf50633_gpio_invert_set() argument
63 reg = gpio - PCF50633_GPIO1 + PCF50633_REG_GPIO1CFG; pcf50633_gpio_invert_set()
70 int pcf50633_gpio_invert_get(struct pcf50633 *pcf, int gpio) pcf50633_gpio_invert_get() argument
74 reg = gpio - PCF50633_GPIO1 + PCF50633_REG_GPIO1CFG; pcf50633_gpio_invert_get()
82 int gpio, int regulator, int on) pcf50633_gpio_power_supply_set()
89 val = !!on << (gpio - PCF50633_GPIO1); pcf50633_gpio_power_supply_set()
90 mask = 1 << (gpio - PCF50633_GPIO1); pcf50633_gpio_power_supply_set()
81 pcf50633_gpio_power_supply_set(struct pcf50633 *pcf, int gpio, int regulator, int on) pcf50633_gpio_power_supply_set() argument
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/
H A Dbase.c30 nvkm_gpio_drive(struct nvkm_gpio *gpio, int idx, int line, int dir, int out) nvkm_gpio_drive() argument
32 const struct nvkm_gpio_impl *impl = (void *)nv_object(gpio)->oclass; nvkm_gpio_drive()
33 return impl->drive ? impl->drive(gpio, line, dir, out) : -ENODEV; nvkm_gpio_drive()
37 nvkm_gpio_sense(struct nvkm_gpio *gpio, int idx, int line) nvkm_gpio_sense() argument
39 const struct nvkm_gpio_impl *impl = (void *)nv_object(gpio)->oclass; nvkm_gpio_sense()
40 return impl->sense ? impl->sense(gpio, line) : -ENODEV; nvkm_gpio_sense()
44 nvkm_gpio_find(struct nvkm_gpio *gpio, int idx, u8 tag, u8 line, nvkm_gpio_find() argument
47 struct nvkm_bios *bios = nvkm_bios(gpio); nvkm_gpio_find()
59 if (nv_device_match(nv_object(gpio), 0x0189, 0x10de, 0x0010)) { nvkm_gpio_find()
75 nvkm_gpio_set(struct nvkm_gpio *gpio, int idx, u8 tag, u8 line, int state) nvkm_gpio_set() argument
80 ret = nvkm_gpio_find(gpio, idx, tag, line, &func); nvkm_gpio_set()
84 ret = nvkm_gpio_drive(gpio, idx, func.line, dir, out); nvkm_gpio_set()
91 nvkm_gpio_get(struct nvkm_gpio *gpio, int idx, u8 tag, u8 line) nvkm_gpio_get() argument
96 ret = nvkm_gpio_find(gpio, idx, tag, line, &func); nvkm_gpio_get()
98 ret = nvkm_gpio_sense(gpio, idx, func.line); nvkm_gpio_get()
109 struct nvkm_gpio *gpio = container_of(event, typeof(*gpio), event); nvkm_gpio_intr_fini() local
110 const struct nvkm_gpio_impl *impl = (void *)nv_object(gpio)->oclass; nvkm_gpio_intr_fini()
111 impl->intr_mask(gpio, type, 1 << index, 0); nvkm_gpio_intr_fini()
117 struct nvkm_gpio *gpio = container_of(event, typeof(*gpio), event); nvkm_gpio_intr_init() local
118 const struct nvkm_gpio_impl *impl = (void *)nv_object(gpio)->oclass; nvkm_gpio_intr_init()
119 impl->intr_mask(gpio, type, 1 << index, 1 << index); nvkm_gpio_intr_init()
139 struct nvkm_gpio *gpio = nvkm_gpio(subdev); nvkm_gpio_intr() local
140 const struct nvkm_gpio_impl *impl = (void *)nv_object(gpio)->oclass; nvkm_gpio_intr()
143 impl->intr_stat(gpio, &hi, &lo); nvkm_gpio_intr()
150 nvkm_event_send(&gpio->event, rep.mask, i, &rep, sizeof(rep)); nvkm_gpio_intr()
165 struct nvkm_gpio *gpio = nvkm_gpio(object); _nvkm_gpio_fini() local
168 impl->intr_mask(gpio, NVKM_GPIO_TOGGLED, mask, 0); _nvkm_gpio_fini()
169 impl->intr_stat(gpio, &mask, &mask); _nvkm_gpio_fini()
171 return nvkm_subdev_fini(&gpio->base, suspend); _nvkm_gpio_fini()
188 struct nvkm_gpio *gpio = nvkm_gpio(object); _nvkm_gpio_init() local
191 ret = nvkm_subdev_init(&gpio->base); _nvkm_gpio_init()
195 if (gpio->reset && dmi_check_system(gpio_reset_ids)) _nvkm_gpio_init()
196 gpio->reset(gpio, DCB_GPIO_UNUSED); _nvkm_gpio_init()
204 struct nvkm_gpio *gpio = (void *)object; _nvkm_gpio_dtor() local
205 nvkm_event_fini(&gpio->event); _nvkm_gpio_dtor()
206 nvkm_subdev_destroy(&gpio->base); _nvkm_gpio_dtor()
214 struct nvkm_gpio *gpio; nvkm_gpio_create_() local
218 "gpio", length, pobject); nvkm_gpio_create_()
219 gpio = *pobject; nvkm_gpio_create_()
223 gpio->find = nvkm_gpio_find; nvkm_gpio_create_()
224 gpio->set = nvkm_gpio_set; nvkm_gpio_create_()
225 gpio->get = nvkm_gpio_get; nvkm_gpio_create_()
226 gpio->reset = impl->reset; nvkm_gpio_create_()
229 &gpio->event); nvkm_gpio_create_()
233 nv_subdev(gpio)->intr = nvkm_gpio_intr; nvkm_gpio_create_()
242 struct nvkm_gpio *gpio; _nvkm_gpio_ctor() local
245 ret = nvkm_gpio_create(parent, engine, oclass, &gpio); _nvkm_gpio_ctor()
246 *pobject = nv_object(gpio); _nvkm_gpio_ctor()
H A Dpriv.h3 #include <subdev/gpio.h>
8 struct nvkm_gpio *gpio = (p); \
9 _nvkm_gpio_dtor(nv_object(gpio)); \
12 struct nvkm_gpio *gpio = (p); \
13 _nvkm_gpio_init(nv_object(gpio)); \
16 struct nvkm_gpio *gpio = (p); \
17 _nvkm_gpio_fini(nv_object(gpio), (s)); \
40 * given set of gpio lines
44 /* configure gpio direction and output value */
47 /* sense current state of given gpio line */
H A Dg94.c27 g94_gpio_intr_stat(struct nvkm_gpio *gpio, u32 *hi, u32 *lo) g94_gpio_intr_stat() argument
29 u32 intr0 = nv_rd32(gpio, 0x00e054); g94_gpio_intr_stat()
30 u32 intr1 = nv_rd32(gpio, 0x00e074); g94_gpio_intr_stat()
31 u32 stat0 = nv_rd32(gpio, 0x00e050) & intr0; g94_gpio_intr_stat()
32 u32 stat1 = nv_rd32(gpio, 0x00e070) & intr1; g94_gpio_intr_stat()
35 nv_wr32(gpio, 0x00e054, intr0); g94_gpio_intr_stat()
36 nv_wr32(gpio, 0x00e074, intr1); g94_gpio_intr_stat()
40 g94_gpio_intr_mask(struct nvkm_gpio *gpio, u32 type, u32 mask, u32 data) g94_gpio_intr_mask() argument
42 u32 inte0 = nv_rd32(gpio, 0x00e050); g94_gpio_intr_mask()
43 u32 inte1 = nv_rd32(gpio, 0x00e070); g94_gpio_intr_mask()
54 nv_wr32(gpio, 0x00e050, inte0); g94_gpio_intr_mask()
55 nv_wr32(gpio, 0x00e070, inte1); g94_gpio_intr_mask()
H A Dgk104.c27 gk104_gpio_intr_stat(struct nvkm_gpio *gpio, u32 *hi, u32 *lo) gk104_gpio_intr_stat() argument
29 u32 intr0 = nv_rd32(gpio, 0x00dc00); gk104_gpio_intr_stat()
30 u32 intr1 = nv_rd32(gpio, 0x00dc80); gk104_gpio_intr_stat()
31 u32 stat0 = nv_rd32(gpio, 0x00dc08) & intr0; gk104_gpio_intr_stat()
32 u32 stat1 = nv_rd32(gpio, 0x00dc88) & intr1; gk104_gpio_intr_stat()
35 nv_wr32(gpio, 0x00dc00, intr0); gk104_gpio_intr_stat()
36 nv_wr32(gpio, 0x00dc80, intr1); gk104_gpio_intr_stat()
40 gk104_gpio_intr_mask(struct nvkm_gpio *gpio, u32 type, u32 mask, u32 data) gk104_gpio_intr_mask() argument
42 u32 inte0 = nv_rd32(gpio, 0x00dc08); gk104_gpio_intr_mask()
43 u32 inte1 = nv_rd32(gpio, 0x00dc88); gk104_gpio_intr_mask()
54 nv_wr32(gpio, 0x00dc08, inte0); gk104_gpio_intr_mask()
55 nv_wr32(gpio, 0x00dc88, inte1); gk104_gpio_intr_mask()
H A Dnv50.c27 nv50_gpio_reset(struct nvkm_gpio *gpio, u8 match) nv50_gpio_reset() argument
29 struct nvkm_bios *bios = nvkm_bios(gpio); nv50_gpio_reset()
50 gpio->set(gpio, 0, func, line, defs); nv50_gpio_reset()
52 nv_mask(gpio, reg, 0x00010001 << lsh, val << lsh); nv50_gpio_reset()
70 nv50_gpio_drive(struct nvkm_gpio *gpio, int line, int dir, int out) nv50_gpio_drive() argument
77 nv_mask(gpio, reg, 3 << shift, (((dir ^ 1) << 1) | out) << shift); nv50_gpio_drive()
82 nv50_gpio_sense(struct nvkm_gpio *gpio, int line) nv50_gpio_sense() argument
89 return !!(nv_rd32(gpio, reg) & (4 << shift)); nv50_gpio_sense()
93 nv50_gpio_intr_stat(struct nvkm_gpio *gpio, u32 *hi, u32 *lo) nv50_gpio_intr_stat() argument
95 u32 intr = nv_rd32(gpio, 0x00e054); nv50_gpio_intr_stat()
96 u32 stat = nv_rd32(gpio, 0x00e050) & intr; nv50_gpio_intr_stat()
99 nv_wr32(gpio, 0x00e054, intr); nv50_gpio_intr_stat()
103 nv50_gpio_intr_mask(struct nvkm_gpio *gpio, u32 type, u32 mask, u32 data) nv50_gpio_intr_mask() argument
105 u32 inte = nv_rd32(gpio, 0x00e050); nv50_gpio_intr_mask()
110 nv_wr32(gpio, 0x00e050, inte); nv50_gpio_intr_mask()
H A Dgf110.c27 gf110_gpio_reset(struct nvkm_gpio *gpio, u8 match) gf110_gpio_reset() argument
29 struct nvkm_bios *bios = nvkm_bios(gpio); gf110_gpio_reset()
46 gpio->set(gpio, 0, func, line, defs); gf110_gpio_reset()
48 nv_mask(gpio, 0x00d610 + (line * 4), 0xff, unk0); gf110_gpio_reset()
50 nv_mask(gpio, 0x00d740 + (unk1 * 4), 0xff, line); gf110_gpio_reset()
55 gf110_gpio_drive(struct nvkm_gpio *gpio, int line, int dir, int out) gf110_gpio_drive() argument
58 nv_mask(gpio, 0x00d610 + (line * 4), 0x00003000, data); gf110_gpio_drive()
59 nv_mask(gpio, 0x00d604, 0x00000001, 0x00000001); /* update? */ gf110_gpio_drive()
64 gf110_gpio_sense(struct nvkm_gpio *gpio, int line) gf110_gpio_sense() argument
66 return !!(nv_rd32(gpio, 0x00d610 + (line * 4)) & 0x00004000); gf110_gpio_sense()
H A Dnv10.c29 nv10_gpio_sense(struct nvkm_gpio *gpio, int line) nv10_gpio_sense() argument
33 line = nv_rd32(gpio, 0x600818) >> line; nv10_gpio_sense()
38 line = nv_rd32(gpio, 0x60081c) >> line; nv10_gpio_sense()
43 line = nv_rd32(gpio, 0x600850) >> line; nv10_gpio_sense()
51 nv10_gpio_drive(struct nvkm_gpio *gpio, int line, int dir, int out) nv10_gpio_drive() argument
76 nv_mask(gpio, reg, mask << line, data << line); nv10_gpio_drive()
81 nv10_gpio_intr_stat(struct nvkm_gpio *gpio, u32 *hi, u32 *lo) nv10_gpio_intr_stat() argument
83 u32 intr = nv_rd32(gpio, 0x001104); nv10_gpio_intr_stat()
84 u32 stat = nv_rd32(gpio, 0x001144) & intr; nv10_gpio_intr_stat()
87 nv_wr32(gpio, 0x001104, intr); nv10_gpio_intr_stat()
91 nv10_gpio_intr_mask(struct nvkm_gpio *gpio, u32 type, u32 mask, u32 data) nv10_gpio_intr_mask() argument
93 u32 inte = nv_rd32(gpio, 0x001144); nv10_gpio_intr_mask()
98 nv_wr32(gpio, 0x001144, inte); nv10_gpio_intr_mask()
/linux-4.1.27/drivers/rtc/
H A Drtc-ds2404.c18 #include <linux/gpio.h>
46 unsigned int gpio; member in struct:ds2404_gpio
50 struct ds2404_gpio *gpio; member in struct:ds2404
66 ds2404_gpio[DS2404_RST].gpio = pdata->gpio_rst; ds2404_gpio_map()
67 ds2404_gpio[DS2404_CLK].gpio = pdata->gpio_clk; ds2404_gpio_map()
68 ds2404_gpio[DS2404_DQ].gpio = pdata->gpio_dq; ds2404_gpio_map()
71 err = gpio_request(ds2404_gpio[i].gpio, ds2404_gpio[i].name); ds2404_gpio_map()
73 dev_err(&pdev->dev, "error mapping gpio %s: %d\n", ds2404_gpio_map()
78 gpio_direction_output(ds2404_gpio[i].gpio, 1); ds2404_gpio_map()
81 chip->gpio = ds2404_gpio; ds2404_gpio_map()
86 gpio_free(ds2404_gpio[i].gpio); ds2404_gpio_map()
95 gpio_free(ds2404_gpio[i].gpio); ds2404_gpio_unmap()
105 gpio_set_value(ds2404_gpio[DS2404_RST].gpio, 0); ds2404_reset()
107 gpio_set_value(ds2404_gpio[DS2404_RST].gpio, 1); ds2404_reset()
108 gpio_set_value(ds2404_gpio[DS2404_CLK].gpio, 0); ds2404_reset()
109 gpio_direction_output(ds2404_gpio[DS2404_DQ].gpio, 0); ds2404_reset()
117 gpio_direction_output(ds2404_gpio[DS2404_DQ].gpio, 1); ds2404_write_byte()
119 gpio_set_value(ds2404_gpio[DS2404_DQ].gpio, byte & (1 << i)); ds2404_write_byte()
121 gpio_set_value(ds2404_gpio[DS2404_CLK].gpio, 1); ds2404_write_byte()
123 gpio_set_value(ds2404_gpio[DS2404_CLK].gpio, 0); ds2404_write_byte()
133 gpio_direction_input(ds2404_gpio[DS2404_DQ].gpio); ds2404_read_byte()
136 gpio_set_value(ds2404_gpio[DS2404_CLK].gpio, 0); ds2404_read_byte()
138 if (gpio_get_value(ds2404_gpio[DS2404_DQ].gpio)) ds2404_read_byte()
140 gpio_set_value(ds2404_gpio[DS2404_CLK].gpio, 1); ds2404_read_byte()
191 gpio_direction_input(ds2404_gpio[DS2404_DQ].gpio); ds2404_write_memory()
192 while (gpio_get_value(ds2404_gpio[DS2404_DQ].gpio)) ds2404_write_memory()
242 chip->gpio[DS2404_RST].gpio, chip->gpio[DS2404_CLK].gpio, rtc_probe()
243 chip->gpio[DS2404_DQ].gpio); rtc_probe()
H A Drtc-v3020.c30 #include <linux/gpio.h>
54 unsigned int gpio; member in struct:v3020_gpio
63 struct v3020_gpio *gpio; member in struct:v3020
122 v3020_gpio[V3020_CS].gpio = pdata->gpio_cs; v3020_gpio_map()
123 v3020_gpio[V3020_WR].gpio = pdata->gpio_wr; v3020_gpio_map()
124 v3020_gpio[V3020_RD].gpio = pdata->gpio_rd; v3020_gpio_map()
125 v3020_gpio[V3020_IO].gpio = pdata->gpio_io; v3020_gpio_map()
128 err = gpio_request(v3020_gpio[i].gpio, v3020_gpio[i].name); v3020_gpio_map()
132 gpio_direction_output(v3020_gpio[i].gpio, 1); v3020_gpio_map()
135 chip->gpio = v3020_gpio; v3020_gpio_map()
141 gpio_free(v3020_gpio[i].gpio); v3020_gpio_map()
151 gpio_free(v3020_gpio[i].gpio); v3020_gpio_unmap()
156 gpio_direction_output(chip->gpio[V3020_IO].gpio, bit); v3020_gpio_write_bit()
157 gpio_set_value(chip->gpio[V3020_CS].gpio, 0); v3020_gpio_write_bit()
158 gpio_set_value(chip->gpio[V3020_WR].gpio, 0); v3020_gpio_write_bit()
160 gpio_set_value(chip->gpio[V3020_WR].gpio, 1); v3020_gpio_write_bit()
161 gpio_set_value(chip->gpio[V3020_CS].gpio, 1); v3020_gpio_write_bit()
168 gpio_direction_input(chip->gpio[V3020_IO].gpio); v3020_gpio_read_bit()
169 gpio_set_value(chip->gpio[V3020_CS].gpio, 0); v3020_gpio_read_bit()
170 gpio_set_value(chip->gpio[V3020_RD].gpio, 0); v3020_gpio_read_bit()
172 bit = !!gpio_get_value(chip->gpio[V3020_IO].gpio); v3020_gpio_read_bit()
174 gpio_set_value(chip->gpio[V3020_RD].gpio, 1); v3020_gpio_read_bit()
175 gpio_set_value(chip->gpio[V3020_CS].gpio, 1); v3020_gpio_read_bit()
345 chip->gpio[V3020_CS].gpio, chip->gpio[V3020_WR].gpio, rtc_probe()
346 chip->gpio[V3020_RD].gpio, chip->gpio[V3020_IO].gpio); rtc_probe()
/linux-4.1.27/drivers/pcmcia/
H A Dpxa2xx_colibri.c17 #include <linux/gpio.h>
47 static struct gpio colibri_pcmcia_gpios[] = {
65 skt->socket.pci_irq = gpio_to_irq(colibri_pcmcia_gpios[READY].gpio); colibri_pcmcia_hw_init()
66 skt->stat[SOC_STAT_CD].irq = gpio_to_irq(colibri_pcmcia_gpios[DETECT].gpio); colibri_pcmcia_hw_init()
83 state->detect = !!gpio_get_value(colibri_pcmcia_gpios[DETECT].gpio); colibri_pcmcia_socket_state()
84 state->ready = !!gpio_get_value(colibri_pcmcia_gpios[READY].gpio); colibri_pcmcia_socket_state()
85 state->bvd1 = !!gpio_get_value(colibri_pcmcia_gpios[BVD1].gpio); colibri_pcmcia_socket_state()
86 state->bvd2 = !!gpio_get_value(colibri_pcmcia_gpios[BVD2].gpio); colibri_pcmcia_socket_state()
95 gpio_set_value(colibri_pcmcia_gpios[PPEN].gpio, colibri_pcmcia_configure_socket()
97 gpio_set_value(colibri_pcmcia_gpios[RESET].gpio, colibri_pcmcia_configure_socket()
130 colibri_pcmcia_gpios[RESET].gpio = COLIBRI270_RESET_GPIO; colibri_pcmcia_init()
131 colibri_pcmcia_gpios[PPEN].gpio = COLIBRI270_PPEN_GPIO; colibri_pcmcia_init()
132 colibri_pcmcia_gpios[BVD1].gpio = COLIBRI270_BVD1_GPIO; colibri_pcmcia_init()
133 colibri_pcmcia_gpios[BVD2].gpio = COLIBRI270_BVD2_GPIO; colibri_pcmcia_init()
134 colibri_pcmcia_gpios[DETECT].gpio = COLIBRI270_DETECT_GPIO; colibri_pcmcia_init()
135 colibri_pcmcia_gpios[READY].gpio = COLIBRI270_READY_GPIO; colibri_pcmcia_init()
138 colibri_pcmcia_gpios[RESET].gpio = COLIBRI320_RESET_GPIO; colibri_pcmcia_init()
139 colibri_pcmcia_gpios[PPEN].gpio = COLIBRI320_PPEN_GPIO; colibri_pcmcia_init()
140 colibri_pcmcia_gpios[BVD1].gpio = COLIBRI320_BVD1_GPIO; colibri_pcmcia_init()
141 colibri_pcmcia_gpios[BVD2].gpio = COLIBRI320_BVD2_GPIO; colibri_pcmcia_init()
142 colibri_pcmcia_gpios[DETECT].gpio = COLIBRI320_DETECT_GPIO; colibri_pcmcia_init()
143 colibri_pcmcia_gpios[READY].gpio = COLIBRI320_READY_GPIO; colibri_pcmcia_init()
H A Dpxa2xx_vpac270.c14 #include <linux/gpio.h>
20 #include <asm/gpio.h>
25 static struct gpio vpac270_pcmcia_gpios[] = {
30 static struct gpio vpac270_cf_gpios[] = {
42 skt->stat[SOC_STAT_CD].gpio = GPIO84_VPAC270_PCMCIA_CD; vpac270_pcmcia_hw_init()
44 skt->stat[SOC_STAT_RDY].gpio = GPIO35_VPAC270_PCMCIA_RDY; vpac270_pcmcia_hw_init()
50 skt->stat[SOC_STAT_CD].gpio = GPIO17_VPAC270_CF_CD; vpac270_pcmcia_hw_init()
52 skt->stat[SOC_STAT_RDY].gpio = GPIO12_VPAC270_CF_RDY; vpac270_pcmcia_hw_init()
H A Dsa1100_assabet.c13 #include <linux/gpio.h>
22 skt->stat[SOC_STAT_CD].gpio = ASSABET_GPIO_CF_CD; assabet_pcmcia_hw_init()
24 skt->stat[SOC_STAT_BVD1].gpio = ASSABET_GPIO_CF_BVD1; assabet_pcmcia_hw_init()
26 skt->stat[SOC_STAT_BVD2].gpio = ASSABET_GPIO_CF_BVD2; assabet_pcmcia_hw_init()
28 skt->stat[SOC_STAT_RDY].gpio = ASSABET_GPIO_CF_IRQ; assabet_pcmcia_hw_init()
H A Dsa1100_cerf.c13 #include <linux/gpio.h>
31 skt->stat[SOC_STAT_CD].gpio = CERF_GPIO_CF_CD; cerf_pcmcia_hw_init()
33 skt->stat[SOC_STAT_BVD1].gpio = CERF_GPIO_CF_BVD1; cerf_pcmcia_hw_init()
35 skt->stat[SOC_STAT_BVD2].gpio = CERF_GPIO_CF_BVD2; cerf_pcmcia_hw_init()
37 skt->stat[SOC_STAT_RDY].gpio = CERF_GPIO_CF_IRQ; cerf_pcmcia_hw_init()
/linux-4.1.27/arch/mips/include/asm/mach-ath79/
H A Dgpio.h17 #include <asm-generic/gpio.h>
19 int gpio_to_irq(unsigned gpio);
21 int gpio_get_value(unsigned gpio);
22 void gpio_set_value(unsigned gpio, int value);
/linux-4.1.27/arch/arm/mach-pxa/include/mach/
H A Dreset.h15 * @gpio: gpio nr
16 * @output: set gpio as output instead of input during normal work
19 extern int init_gpio_reset(int gpio, int output, int level);
H A Daudio.h9 * @reset_gpio: AC97 reset gpio (normally gpio113 or gpio95)
10 * a -1 value means no gpio will be used for reset
15 * the default behaviour on these CPUs is to consider gpio 113 as the
/linux-4.1.27/arch/arm/mach-iop32x/
H A Dgpio-iop32x.h7 platform_device_register_simple("gpio-iop", 0, register_iop32x_gpio()
/linux-4.1.27/arch/arm/mach-pxa/
H A Dmfp-pxa2xx.c15 #include <linux/gpio.h>
16 #include <linux/gpio-pxa.h>
47 unsigned int mux_mask; /* bit mask of muxed gpio bits, 0 if no mux */
55 static int __mfp_config_gpio(unsigned gpio, unsigned long c) __mfp_config_gpio() argument
57 unsigned long gafr, mask = GPIO_bit(gpio); __mfp_config_gpio()
58 int bank = gpio_to_bank(gpio); __mfp_config_gpio()
59 int uorl = !!(gpio & 0x10); /* GAFRx_U or GAFRx_L ? */ __mfp_config_gpio()
60 int shft = (gpio & 0xf) << 1; __mfp_config_gpio()
76 if (is_out ^ gpio_desc[gpio].dir_inverted) __mfp_config_gpio()
77 GPDR(gpio) |= mask; __mfp_config_gpio()
79 GPDR(gpio) &= ~mask; __mfp_config_gpio()
97 __func__, gpio); __mfp_config_gpio()
101 if (is_out ^ gpio_desc[gpio].dir_inverted) __mfp_config_gpio()
109 if ((c & MFP_LPM_CAN_WAKEUP) && !gpio_desc[gpio].can_wakeup) { __mfp_config_gpio()
110 pr_warn("%s: GPIO%d unable to wakeup\n", __func__, gpio); __mfp_config_gpio()
115 pr_warn("%s: output GPIO%d unable to wakeup\n", __func__, gpio); __mfp_config_gpio()
124 int gpio = mfp_to_gpio(mfp); __mfp_validate() local
126 if ((mfp > MFP_PIN_GPIO127) || !gpio_desc[gpio].valid) { __mfp_validate()
127 pr_warn("%s: GPIO%d is invalid pin\n", __func__, gpio); __mfp_validate()
131 return gpio; __mfp_validate()
138 int i, gpio; pxa2xx_mfp_config() local
142 gpio = __mfp_validate(MFP_PIN(*c)); pxa2xx_mfp_config()
143 if (gpio < 0) pxa2xx_mfp_config()
148 gpio_desc[gpio].config = *c; pxa2xx_mfp_config()
149 __mfp_config_gpio(gpio, *c); pxa2xx_mfp_config()
158 int gpio; pxa2xx_mfp_set_lpm() local
160 gpio = __mfp_validate(mfp); pxa2xx_mfp_set_lpm()
161 if (gpio < 0) pxa2xx_mfp_set_lpm()
166 c = gpio_desc[gpio].config; pxa2xx_mfp_set_lpm()
168 __mfp_config_gpio(gpio, c); pxa2xx_mfp_set_lpm()
173 int gpio_set_wake(unsigned int gpio, unsigned int on) gpio_set_wake() argument
178 if (gpio > mfp_to_gpio(MFP_PIN_GPIO127)) gpio_set_wake()
181 d = &gpio_desc[gpio]; gpio_set_wake()
262 unsigned int i, gpio, mask = 0; keypad_set_wake() local
267 gpio = pxa27x_pkwr_gpio[i]; keypad_set_wake()
268 d = &gpio_desc[gpio]; keypad_set_wake()
275 mask |= gpio_desc[gpio].mask; keypad_set_wake()
294 #define INIT_GPIO_DESC_MUXED(mux, gpio) \
296 gpio_desc[(gpio)].can_wakeup = 1; \
297 gpio_desc[(gpio)].mask = PWER_ ## mux ## _GPIO ##gpio; \
298 gpio_desc[(gpio)].mux_mask = PWER_ ## mux ## _MASK; \
303 int i, gpio; pxa27x_mfp_init() local
318 gpio = pxa27x_pkwr_gpio[i]; pxa27x_mfp_init()
319 gpio_desc[gpio].can_wakeup = 1; pxa27x_mfp_init()
320 gpio_desc[gpio].keypad_gpio = 1; pxa27x_mfp_init()
321 gpio_desc[gpio].mask = 1 << i; pxa27x_mfp_init()
H A Dcsb701.c13 .gpio = 1,
30 .gpio = 11,
36 .name = "gpio-keys",
47 .name = "leds-gpio",
H A Dreset.c9 #include <linux/gpio.h>
25 int init_gpio_reset(int gpio, int output, int level) init_gpio_reset() argument
29 rc = gpio_request(gpio, "reset generator"); init_gpio_reset()
36 rc = gpio_direction_output(gpio, level); init_gpio_reset()
38 rc = gpio_direction_input(gpio); init_gpio_reset()
41 gpio_free(gpio); init_gpio_reset()
47 reset_gpio = gpio; init_gpio_reset()
54 * This covers various types of logic connecting gpio pin
/linux-4.1.27/include/linux/platform_data/
H A Dmmc-pxamci.h17 int gpio_card_detect; /* gpio detecting card insertion */
18 int gpio_card_ro; /* gpio detecting read only toggle */
19 bool gpio_card_ro_invert; /* gpio ro is inverted */
20 int gpio_power; /* gpio powering up MMC bus */
21 bool gpio_power_invert; /* gpio power is inverted */
H A Dgpio-davinci.h22 #include <asm-generic/gpio.h>
44 * basic gpio routines
49 #define GPIO_TO_PIN(bank, gpio) (16 * (bank) + (gpio))
51 static inline u32 __gpio_mask(unsigned gpio) __gpio_mask() argument
53 return 1 << (gpio % 32); __gpio_mask()
H A Dpca953x.h22 unsigned gpio, unsigned ngpio,
25 unsigned gpio, unsigned ngpio,
H A Dmmc-esdhc-imx.h16 ESDHC_WP_NONE, /* no WP, neither controller nor gpio */
18 ESDHC_WP_GPIO, /* external gpio pin for WP */
22 ESDHC_CD_NONE, /* no CD, neither controller nor gpio */
24 ESDHC_CD_GPIO, /* external gpio pin for CD */
33 * @wp_gpio: gpio for write_protect
34 * @cd_gpio: gpio for card_detect interrupt
/linux-4.1.27/arch/blackfin/kernel/
H A Dbfin_gpio.c14 #include <linux/gpio.h>
59 # error no gpio arrays defined
112 static void gpio_error(unsigned gpio) gpio_error() argument
114 printk(KERN_ERR "bfin-gpio: GPIO %d wasn't requested!\n", gpio); gpio_error()
150 DECLARE_RESERVED_MAP(gpio, GPIO_BANK_NUM);
154 inline int check_gpio(unsigned gpio) check_gpio() argument
156 if (gpio >= MAX_BLACKFIN_GPIOS) check_gpio()
161 static void port_setup(unsigned gpio, unsigned short usage) port_setup() argument
171 if (gpio < MAX_BLACKFIN_GPIOS || gpio >= MAX_RESOURCES) port_setup()
174 gpio -= MAX_BLACKFIN_GPIOS; port_setup()
177 *port_fer[gpio_bank(gpio)] |= gpio_bit(gpio); port_setup()
179 *port_fer[gpio_bank(gpio)] &= ~gpio_bit(gpio); port_setup()
184 if (check_gpio(gpio)) port_setup()
189 *port_fer[gpio_bank(gpio)] &= ~gpio_bit(gpio); port_setup()
191 *port_fer[gpio_bank(gpio)] |= gpio_bit(gpio); port_setup()
339 * gpio - GPIO Number between 0 and MAX_BLACKFIN_GPIOS
354 void set_gpio_ ## name(unsigned gpio, unsigned short arg) \
359 gpio_array[gpio_bank(gpio)]->name |= gpio_bit(gpio); \
361 gpio_array[gpio_bank(gpio)]->name &= ~gpio_bit(gpio); \
375 void set_gpio_ ## name(unsigned gpio, unsigned short arg) \ SET_GPIO()
381 gpio_array[gpio_bank(gpio)]->name ## _set = gpio_bit(gpio); \ SET_GPIO()
383 gpio_array[gpio_bank(gpio)]->name ## _clear = gpio_bit(gpio); \ SET_GPIO()
395 void set_gpio_toggle(unsigned gpio)
400 gpio_array[gpio_bank(gpio)]->toggle = gpio_bit(gpio);
412 void set_gpiop_ ## name(unsigned gpio, unsigned short arg) \
417 gpio_array[gpio_bank(gpio)]->name = arg; \
436 unsigned short get_gpio_ ## name(unsigned gpio) \
442 ret = 0x01 & (gpio_array[gpio_bank(gpio)]->name >> gpio_sub_n(gpio)); \
463 unsigned short get_gpiop_ ## name(unsigned gpio) \
469 ret = (gpio_array[gpio_bank(gpio)]->name); \
512 * gpio - GPIO Number between 0 and MAX_BLACKFIN_GPIOS
526 int bfin_gpio_pm_wakeup_ctrl(unsigned gpio, unsigned ctrl) bfin_gpio_pm_wakeup_ctrl() argument
530 if (check_gpio(gpio) < 0) bfin_gpio_pm_wakeup_ctrl()
535 reserve(wakeup, gpio); bfin_gpio_pm_wakeup_ctrl()
537 unreserve(wakeup, gpio); bfin_gpio_pm_wakeup_ctrl()
539 set_gpio_maskb(gpio, ctrl); bfin_gpio_pm_wakeup_ctrl()
675 if (unlikely(!check_gpio(ident) && is_reserved(gpio, ident, 1))) { peripheral_request()
791 * gpio PIO Number between 0 and MAX_BLACKFIN_GPIOS
801 int bfin_gpio_request(unsigned gpio, const char *label) bfin_gpio_request() argument
805 if (check_gpio(gpio) < 0) bfin_gpio_request()
816 if (cmp_label(gpio, label) == 0) { bfin_gpio_request()
821 if (unlikely(is_reserved(gpio, gpio, 1))) { bfin_gpio_request()
824 printk(KERN_ERR "bfin-gpio: GPIO %d is already reserved by %s !\n", bfin_gpio_request()
825 gpio, get_label(gpio)); bfin_gpio_request()
829 if (unlikely(is_reserved(peri, gpio, 1))) { bfin_gpio_request()
833 "bfin-gpio: GPIO %d is already reserved as Peripheral by %s !\n", bfin_gpio_request()
834 gpio, get_label(gpio)); bfin_gpio_request()
838 if (unlikely(is_reserved(gpio_irq, gpio, 1))) { bfin_gpio_request()
839 printk(KERN_NOTICE "bfin-gpio: GPIO %d is already reserved as gpio-irq!" bfin_gpio_request()
840 " (Documentation/blackfin/bfin-gpio-notes.txt)\n", gpio); bfin_gpio_request()
841 } else { /* Reset POLAR setting when acquiring a gpio for the first time */ bfin_gpio_request()
842 set_gpio_polar(gpio, 0); bfin_gpio_request()
845 reserve(gpio, gpio); bfin_gpio_request()
846 set_label(gpio, label); bfin_gpio_request()
850 port_setup(gpio, GPIO_USAGE); bfin_gpio_request()
856 void bfin_gpio_free(unsigned gpio) bfin_gpio_free() argument
860 if (check_gpio(gpio) < 0) bfin_gpio_free()
867 if (unlikely(!is_reserved(gpio, gpio, 0))) { bfin_gpio_free()
870 gpio_error(gpio); bfin_gpio_free()
875 unreserve(gpio, gpio); bfin_gpio_free()
877 set_label(gpio, "free"); bfin_gpio_free()
886 int bfin_special_gpio_request(unsigned gpio, const char *label) bfin_special_gpio_request() argument
898 if (cmp_label(gpio, label) == 0) { bfin_special_gpio_request()
903 if (unlikely(is_reserved(special_gpio, gpio, 1))) { bfin_special_gpio_request()
905 printk(KERN_ERR "bfin-gpio: GPIO %d is already reserved by %s !\n", bfin_special_gpio_request()
906 gpio, get_label(gpio)); bfin_special_gpio_request()
910 if (unlikely(is_reserved(peri, gpio, 1))) { bfin_special_gpio_request()
913 "bfin-gpio: GPIO %d is already reserved as Peripheral by %s !\n", bfin_special_gpio_request()
914 gpio, get_label(gpio)); bfin_special_gpio_request()
919 reserve(special_gpio, gpio); bfin_special_gpio_request()
920 reserve(peri, gpio); bfin_special_gpio_request()
922 set_label(gpio, label); bfin_special_gpio_request()
924 port_setup(gpio, GPIO_USAGE); bfin_special_gpio_request()
930 void bfin_special_gpio_free(unsigned gpio) bfin_special_gpio_free() argument
938 if (unlikely(!is_reserved(special_gpio, gpio, 0))) { bfin_special_gpio_free()
939 gpio_error(gpio); bfin_special_gpio_free()
944 unreserve(special_gpio, gpio); bfin_special_gpio_free()
945 unreserve(peri, gpio); bfin_special_gpio_free()
946 set_label(gpio, "free"); bfin_special_gpio_free()
953 int bfin_gpio_irq_request(unsigned gpio, const char *label) bfin_gpio_irq_request() argument
957 if (check_gpio(gpio) < 0) bfin_gpio_irq_request()
962 if (unlikely(is_reserved(peri, gpio, 1))) { bfin_gpio_irq_request()
966 "bfin-gpio: GPIO %d is already reserved as Peripheral by %s !\n", bfin_gpio_irq_request()
967 gpio, get_label(gpio)); bfin_gpio_irq_request()
971 if (unlikely(is_reserved(gpio, gpio, 1))) bfin_gpio_irq_request()
972 printk(KERN_NOTICE "bfin-gpio: GPIO %d is already reserved by %s! " bfin_gpio_irq_request()
973 "(Documentation/blackfin/bfin-gpio-notes.txt)\n", bfin_gpio_irq_request()
974 gpio, get_label(gpio)); bfin_gpio_irq_request()
976 reserve(gpio_irq, gpio); bfin_gpio_irq_request()
977 set_label(gpio, label); bfin_gpio_irq_request()
981 port_setup(gpio, GPIO_USAGE); bfin_gpio_irq_request()
986 void bfin_gpio_irq_free(unsigned gpio) bfin_gpio_irq_free() argument
990 if (check_gpio(gpio) < 0) bfin_gpio_irq_free()
995 if (unlikely(!is_reserved(gpio_irq, gpio, 0))) { bfin_gpio_irq_free()
998 gpio_error(gpio); bfin_gpio_irq_free()
1003 unreserve(gpio_irq, gpio); bfin_gpio_irq_free()
1005 set_label(gpio, "free"); bfin_gpio_irq_free()
1010 static inline void __bfin_gpio_direction_input(unsigned gpio) __bfin_gpio_direction_input() argument
1012 gpio_array[gpio_bank(gpio)]->dir &= ~gpio_bit(gpio); __bfin_gpio_direction_input()
1013 gpio_array[gpio_bank(gpio)]->inen |= gpio_bit(gpio); __bfin_gpio_direction_input()
1016 int bfin_gpio_direction_input(unsigned gpio) bfin_gpio_direction_input() argument
1020 if (unlikely(!is_reserved(gpio, gpio, 0))) { bfin_gpio_direction_input()
1021 gpio_error(gpio); bfin_gpio_direction_input()
1026 __bfin_gpio_direction_input(gpio); bfin_gpio_direction_input()
1034 void bfin_gpio_irq_prepare(unsigned gpio) bfin_gpio_irq_prepare() argument
1036 port_setup(gpio, GPIO_USAGE); bfin_gpio_irq_prepare()
1039 void bfin_gpio_set_value(unsigned gpio, int arg) bfin_gpio_set_value() argument
1042 gpio_array[gpio_bank(gpio)]->data_set = gpio_bit(gpio); bfin_gpio_set_value()
1044 gpio_array[gpio_bank(gpio)]->data_clear = gpio_bit(gpio); bfin_gpio_set_value()
1048 int bfin_gpio_direction_output(unsigned gpio, int value) bfin_gpio_direction_output() argument
1052 if (unlikely(!is_reserved(gpio, gpio, 0))) { bfin_gpio_direction_output()
1053 gpio_error(gpio); bfin_gpio_direction_output()
1059 gpio_array[gpio_bank(gpio)]->inen &= ~gpio_bit(gpio); bfin_gpio_direction_output()
1060 gpio_set_value(gpio, value); bfin_gpio_direction_output()
1061 gpio_array[gpio_bank(gpio)]->dir |= gpio_bit(gpio); bfin_gpio_direction_output()
1070 int bfin_gpio_get_value(unsigned gpio) bfin_gpio_get_value() argument
1074 if (unlikely(get_gpio_edge(gpio))) { bfin_gpio_get_value()
1077 set_gpio_edge(gpio, 0); bfin_gpio_get_value()
1078 ret = get_gpio_data(gpio); bfin_gpio_get_value()
1079 set_gpio_edge(gpio, 1); bfin_gpio_get_value()
1083 return get_gpio_data(gpio); bfin_gpio_get_value()
1099 unsigned short gpio = P_IDENT(pin); bfin_reset_boot_spi_cs() local
1100 port_setup(gpio, GPIO_USAGE); bfin_reset_boot_spi_cs()
1101 gpio_array[gpio_bank(gpio)]->data_set = gpio_bit(gpio); bfin_reset_boot_spi_cs()
1109 int c, irq, gpio; gpio_proc_show() local
1113 gpio = is_reserved(gpio, c, 1); gpio_proc_show()
1114 if (!check_gpio(c) && (gpio || irq)) gpio_proc_show()
1116 get_label(c), (gpio && irq) ? " *" : "", gpio_proc_show()
1143 proc_gpio = proc_create("gpio", 0, NULL, &gpio_proc_ops); gpio_register_proc()
1150 static int bfin_gpiolib_direction_input(struct gpio_chip *chip, unsigned gpio) bfin_gpiolib_direction_input() argument
1152 return bfin_gpio_direction_input(gpio); bfin_gpiolib_direction_input()
1155 static int bfin_gpiolib_direction_output(struct gpio_chip *chip, unsigned gpio, int level) bfin_gpiolib_direction_output() argument
1157 return bfin_gpio_direction_output(gpio, level); bfin_gpiolib_direction_output()
1160 static int bfin_gpiolib_get_value(struct gpio_chip *chip, unsigned gpio) bfin_gpiolib_get_value() argument
1162 return bfin_gpio_get_value(gpio); bfin_gpiolib_get_value()
1165 static void bfin_gpiolib_set_value(struct gpio_chip *chip, unsigned gpio, int value) bfin_gpiolib_set_value() argument
1167 return bfin_gpio_set_value(gpio, value); bfin_gpiolib_set_value()
1170 static int bfin_gpiolib_gpio_request(struct gpio_chip *chip, unsigned gpio) bfin_gpiolib_gpio_request() argument
1172 return bfin_gpio_request(gpio, chip->label); bfin_gpiolib_gpio_request()
1175 static void bfin_gpiolib_gpio_free(struct gpio_chip *chip, unsigned gpio) bfin_gpiolib_gpio_free() argument
1177 return bfin_gpio_free(gpio); bfin_gpiolib_gpio_free()
1180 static int bfin_gpiolib_gpio_to_irq(struct gpio_chip *chip, unsigned gpio) bfin_gpiolib_gpio_to_irq() argument
1182 return gpio + GPIO_IRQ_BASE; bfin_gpiolib_gpio_to_irq()
/linux-4.1.27/arch/arm/mach-s3c64xx/
H A Dmach-smartq7.c13 #include <linux/gpio.h>
25 #include <mach/regs-gpio.h>
26 #include <mach/gpio-samsung.h>
31 #include <plat/gpio-cfg.h>
41 .gpio = S3C64XX_GPN(8),
46 .gpio = S3C64XX_GPN(9),
56 .name = "leds-gpio",
64 .gpio = S3C64XX_GPL(14),
72 .gpio = S3C64XX_GPN(2),
80 .gpio = S3C64XX_GPN(3),
88 .gpio = S3C64XX_GPN(4),
96 .gpio = S3C64XX_GPN(12),
104 .gpio = S3C64XX_GPN(15),
119 .name = "gpio-keys",
H A Dmach-smartq5.c13 #include <linux/gpio.h>
25 #include <mach/regs-gpio.h>
26 #include <mach/gpio-samsung.h>
31 #include <plat/gpio-cfg.h>
41 .gpio = S3C64XX_GPN(8),
46 .gpio = S3C64XX_GPN(9),
56 .name = "leds-gpio",
64 .gpio = S3C64XX_GPL(14),
72 .gpio = S3C64XX_GPN(2),
80 .gpio = S3C64XX_GPN(12),
88 .gpio = S3C64XX_GPN(15),
103 .name = "gpio-keys",
H A Dsetup-spi.c11 #include <linux/gpio.h>
12 #include <plat/gpio-cfg.h>
13 #include <mach/gpio-samsung.h>
H A Dsetup-i2c0.c8 * Base S3C64XX I2C bus 0 gpio configuration
17 #include <linux/gpio.h>
22 #include <plat/gpio-cfg.h>
23 #include <mach/gpio-samsung.h>
H A Dsetup-i2c1.c8 * Base S3C64XX I2C bus 1 gpio configuration
17 #include <linux/gpio.h>
22 #include <plat/gpio-cfg.h>
23 #include <mach/gpio-samsung.h>
H A Dsetup-fb-24bpp.c18 #include <linux/gpio.h>
21 #include <plat/gpio-cfg.h>
22 #include <mach/gpio-samsung.h>
H A Dsetup-keypad.c13 #include <linux/gpio.h>
14 #include <plat/gpio-cfg.h>
16 #include <mach/gpio-samsung.h>
/linux-4.1.27/drivers/input/mouse/
H A Dgpio_mouse.c14 #include <linux/gpio.h>
24 struct gpio_mouse_platform_data *gpio = dev->private; gpio_mouse_scan() local
28 if (gpio->bleft >= 0) gpio_mouse_scan()
30 gpio_get_value(gpio->bleft) ^ gpio->polarity); gpio_mouse_scan()
31 if (gpio->bmiddle >= 0) gpio_mouse_scan()
33 gpio_get_value(gpio->bmiddle) ^ gpio->polarity); gpio_mouse_scan()
34 if (gpio->bright >= 0) gpio_mouse_scan()
36 gpio_get_value(gpio->bright) ^ gpio->polarity); gpio_mouse_scan()
38 x = (gpio_get_value(gpio->right) ^ gpio->polarity) gpio_mouse_scan()
39 - (gpio_get_value(gpio->left) ^ gpio->polarity); gpio_mouse_scan()
40 y = (gpio_get_value(gpio->down) ^ gpio->polarity) gpio_mouse_scan()
41 - (gpio_get_value(gpio->up) ^ gpio->polarity); gpio_mouse_scan()
/linux-4.1.27/arch/powerpc/platforms/85xx/
H A Dsgy_cts1000.c29 .compatible = "sgy,gpio-halt",
44 int trigger, gpio; gpio_halt_cb() local
49 gpio = of_get_gpio_flags(halt_node, 0, &flags); gpio_halt_cb()
51 if (!gpio_is_valid(gpio)) gpio_halt_cb()
56 printk(KERN_INFO "gpio-halt: triggering GPIO.\n"); gpio_halt_cb()
59 gpio_set_value(gpio, trigger); gpio_halt_cb()
66 printk(KERN_INFO "gpio-halt: shutdown due to power button IRQ.\n"); gpio_halt_irq()
76 int gpio, err, irq; gpio_halt_probe() local
92 /* Get the gpio number relative to the dynamic base. */ gpio_halt_probe()
93 gpio = of_get_gpio_flags(halt_node, 0, &flags); gpio_halt_probe()
94 if (!gpio_is_valid(gpio)) gpio_halt_probe()
97 err = gpio_request(gpio, "gpio-halt"); gpio_halt_probe()
99 printk(KERN_ERR "gpio-halt: error requesting GPIO %d.\n", gpio_halt_probe()
100 gpio); gpio_halt_probe()
107 gpio_direction_output(gpio, !trigger); gpio_halt_probe()
112 IRQF_TRIGGER_FALLING, "gpio-halt", halt_node); gpio_halt_probe()
114 printk(KERN_ERR "gpio-halt: error requesting IRQ %d for " gpio_halt_probe()
115 "GPIO %d.\n", irq, gpio); gpio_halt_probe()
116 gpio_free(gpio); gpio_halt_probe()
125 printk(KERN_INFO "gpio-halt: registered GPIO %d (%d trigger, %d" gpio_halt_probe()
126 " irq).\n", gpio, trigger, irq); gpio_halt_probe()
134 int gpio = of_get_gpio(halt_node, 0); gpio_halt_remove() local
142 gpio_free(gpio); gpio_halt_remove()
151 /* We match on the gpio bus itself and scan the children since they
155 .compatible = "fsl,qoriq-gpio",
163 .name = "gpio-halt",
/linux-4.1.27/drivers/pinctrl/
H A Dpinctrl-coh901.c18 #include <linux/gpio.h>
62 struct u300_gpio *gpio; member in struct:u300_gpio_port
87 * Macro to expand to read a specific register found in the "gpio"
88 * struct. It requires the struct u300_gpio *gpio variable to exist in
94 (gpio->base + (pin >> 3) * gpio->stride + gpio->reg)
97 * Provides a bitmask for a specific gpio pin inside an 8-bit GPIO
213 * @chip: the gpio chip member of the structure u300_gpio
226 int gpio = chip->base + offset; u300_gpio_request() local
228 return pinctrl_request_gpio(gpio); u300_gpio_request()
233 int gpio = chip->base + offset; u300_gpio_free() local
235 pinctrl_free_gpio(gpio); u300_gpio_free()
240 struct u300_gpio *gpio = to_u300_gpio(chip); u300_gpio_get() local
247 struct u300_gpio *gpio = to_u300_gpio(chip); u300_gpio_set() local
264 struct u300_gpio *gpio = to_u300_gpio(chip); u300_gpio_direction_input() local
280 struct u300_gpio *gpio = to_u300_gpio(chip); u300_gpio_direction_output() local
311 struct u300_gpio *gpio = to_u300_gpio(chip); u300_gpio_config_get() local
369 struct u300_gpio *gpio = to_u300_gpio(chip); u300_gpio_config_set() local
410 dev_err(gpio->dev, "illegal configuration requested\n"); u300_gpio_config_set()
418 .label = "u300-gpio-chip",
428 static void u300_toggle_trigger(struct u300_gpio *gpio, unsigned offset) u300_toggle_trigger() argument
434 if (u300_gpio_get(&gpio->chip, offset)) { u300_toggle_trigger()
437 dev_dbg(gpio->dev, "next IRQ on falling edge on pin %d\n", u300_toggle_trigger()
442 dev_dbg(gpio->dev, "next IRQ on rising edge on pin %d\n", u300_toggle_trigger()
450 struct u300_gpio *gpio = to_u300_gpio(chip); u300_gpio_irq_type() local
451 struct u300_gpio_port *port = &gpio->ports[d->hwirq >> 3]; u300_gpio_irq_type()
462 dev_dbg(gpio->dev, u300_gpio_irq_type()
466 u300_toggle_trigger(gpio, offset); u300_gpio_irq_type()
468 dev_dbg(gpio->dev, "trigger on rising edge on pin %d\n", u300_gpio_irq_type()
474 dev_dbg(gpio->dev, "trigger on falling edge on pin %d\n", u300_gpio_irq_type()
487 struct u300_gpio *gpio = to_u300_gpio(chip); u300_gpio_irq_enable() local
488 struct u300_gpio_port *port = &gpio->ports[d->hwirq >> 3]; u300_gpio_irq_enable()
493 dev_dbg(gpio->dev, "enable IRQ for hwirq %lu on port %s, offset %d\n", u300_gpio_irq_enable()
504 struct u300_gpio *gpio = to_u300_gpio(chip); u300_gpio_irq_disable() local
516 .name = "u300-gpio-irqchip",
526 struct u300_gpio *gpio = to_u300_gpio(chip); u300_gpio_irq_handler() local
527 struct u300_gpio_port *port = &gpio->ports[irq - chip->base]; u300_gpio_irq_handler()
548 dev_dbg(gpio->dev, "GPIO IRQ %d on pin %d\n", u300_gpio_irq_handler()
556 u300_toggle_trigger(gpio, offset); u300_gpio_irq_handler()
563 static void __init u300_gpio_init_pin(struct u300_gpio *gpio, u300_gpio_init_pin() argument
569 u300_gpio_direction_output(&gpio->chip, offset, conf->outval); u300_gpio_init_pin()
572 u300_gpio_config_set(&gpio->chip, offset, u300_gpio_init_pin()
576 u300_gpio_config_set(&gpio->chip, offset, u300_gpio_init_pin()
579 dev_dbg(gpio->dev, "set up pin %d as output, value: %d\n", u300_gpio_init_pin()
582 u300_gpio_direction_input(&gpio->chip, offset); u300_gpio_init_pin()
585 u300_gpio_set(&gpio->chip, offset, 0); u300_gpio_init_pin()
588 u300_gpio_config_set(&gpio->chip, offset, conf->bias_mode); u300_gpio_init_pin()
590 dev_dbg(gpio->dev, "set up pin %d as input, bias: %04x\n", u300_gpio_init_pin()
595 static void __init u300_gpio_init_coh901571(struct u300_gpio *gpio) u300_gpio_init_coh901571() argument
606 u300_gpio_init_pin(gpio, offset, conf); u300_gpio_init_coh901571()
643 struct u300_gpio *gpio; u300_gpio_probe() local
651 gpio = devm_kzalloc(&pdev->dev, sizeof(struct u300_gpio), GFP_KERNEL); u300_gpio_probe()
652 if (gpio == NULL) u300_gpio_probe()
655 gpio->chip = u300_gpio_chip; u300_gpio_probe()
656 gpio->chip.ngpio = U300_GPIO_NUM_PORTS * U300_GPIO_PINS_PER_PORT; u300_gpio_probe()
657 gpio->chip.dev = &pdev->dev; u300_gpio_probe()
658 gpio->chip.base = 0; u300_gpio_probe()
659 gpio->dev = &pdev->dev; u300_gpio_probe()
662 gpio->base = devm_ioremap_resource(&pdev->dev, memres); u300_gpio_probe()
663 if (IS_ERR(gpio->base)) u300_gpio_probe()
664 return PTR_ERR(gpio->base); u300_gpio_probe()
666 gpio->clk = devm_clk_get(gpio->dev, NULL); u300_gpio_probe()
667 if (IS_ERR(gpio->clk)) { u300_gpio_probe()
668 err = PTR_ERR(gpio->clk); u300_gpio_probe()
669 dev_err(gpio->dev, "could not get GPIO clock\n"); u300_gpio_probe()
673 err = clk_prepare_enable(gpio->clk); u300_gpio_probe()
675 dev_err(gpio->dev, "could not enable GPIO clock\n"); u300_gpio_probe()
679 dev_info(gpio->dev, u300_gpio_probe()
681 gpio->stride = U300_GPIO_PORT_STRIDE; u300_gpio_probe()
682 gpio->pcr = U300_GPIO_PXPCR; u300_gpio_probe()
683 gpio->dor = U300_GPIO_PXPDOR; u300_gpio_probe()
684 gpio->dir = U300_GPIO_PXPDIR; u300_gpio_probe()
685 gpio->per = U300_GPIO_PXPER; u300_gpio_probe()
686 gpio->icr = U300_GPIO_PXICR; u300_gpio_probe()
687 gpio->ien = U300_GPIO_PXIEN; u300_gpio_probe()
688 gpio->iev = U300_GPIO_PXIEV; u300_gpio_probe()
691 val = readl(gpio->base + U300_GPIO_CR); u300_gpio_probe()
692 dev_info(gpio->dev, "COH901571/3 block version: %d, " \ u300_gpio_probe()
698 gpio->base + U300_GPIO_CR); u300_gpio_probe()
699 u300_gpio_init_coh901571(gpio); u300_gpio_probe()
702 gpio->chip.of_node = pdev->dev.of_node; u300_gpio_probe()
704 err = gpiochip_add(&gpio->chip); u300_gpio_probe()
706 dev_err(gpio->dev, "unable to add gpiochip: %d\n", err); u300_gpio_probe()
710 err = gpiochip_irqchip_add(&gpio->chip, u300_gpio_probe()
716 dev_err(gpio->dev, "no GPIO irqchip\n"); u300_gpio_probe()
722 struct u300_gpio_port *port = &gpio->ports[portno]; u300_gpio_probe()
724 snprintf(port->name, 8, "gpio%d", portno); u300_gpio_probe()
726 port->gpio = gpio; u300_gpio_probe()
730 gpiochip_set_chained_irqchip(&gpio->chip, u300_gpio_probe()
736 writel(0x0, gpio->base + portno * gpio->stride + ifr); u300_gpio_probe()
738 dev_dbg(gpio->dev, "initialized %d GPIO ports\n", portno); u300_gpio_probe()
747 err = gpiochip_add_pin_range(&gpio->chip, "pinctrl-u300", u300_gpio_probe()
753 platform_set_drvdata(pdev, gpio); u300_gpio_probe()
759 gpiochip_remove(&gpio->chip); u300_gpio_probe()
761 clk_disable_unprepare(gpio->clk); u300_gpio_probe()
768 struct u300_gpio *gpio = platform_get_drvdata(pdev); u300_gpio_remove() local
771 writel(0x00000000U, gpio->base + U300_GPIO_CR); u300_gpio_remove()
773 gpiochip_remove(&gpio->chip); u300_gpio_remove()
774 clk_disable_unprepare(gpio->clk); u300_gpio_remove()
779 { .compatible = "stericsson,gpio-coh901" },
785 .name = "u300-gpio",
/linux-4.1.27/drivers/leds/trigger/
H A Dledtrig-gpio.c15 #include <linux/gpio.h>
27 unsigned inverted; /* true when gpio is inverted */
28 unsigned gpio; /* gpio that triggers the leds */ member in struct:gpio_trig_data
48 if (!gpio_data->gpio) gpio_trig_work()
51 tmp = gpio_get_value_cansleep(gpio_data->gpio); gpio_trig_work()
136 return sprintf(buf, "%u\n", gpio_data->gpio); gpio_trig_gpio_show()
144 unsigned gpio; gpio_trig_gpio_store() local
147 ret = sscanf(buf, "%u", &gpio); gpio_trig_gpio_store()
149 dev_err(dev, "couldn't read gpio number\n"); gpio_trig_gpio_store()
154 if (gpio_data->gpio == gpio) gpio_trig_gpio_store()
157 if (!gpio) { gpio_trig_gpio_store()
158 if (gpio_data->gpio != 0) gpio_trig_gpio_store()
159 free_irq(gpio_to_irq(gpio_data->gpio), led); gpio_trig_gpio_store()
160 gpio_data->gpio = 0; gpio_trig_gpio_store()
164 ret = request_irq(gpio_to_irq(gpio), gpio_trig_irq, gpio_trig_gpio_store()
166 | IRQF_TRIGGER_FALLING, "ledtrig-gpio", led); gpio_trig_gpio_store()
170 if (gpio_data->gpio != 0) gpio_trig_gpio_store()
171 free_irq(gpio_to_irq(gpio_data->gpio), led); gpio_trig_gpio_store()
172 gpio_data->gpio = gpio; gpio_trig_gpio_store()
177 static DEVICE_ATTR(gpio, 0644, gpio_trig_gpio_show, gpio_trig_gpio_store);
226 if (gpio_data->gpio != 0) gpio_trig_deactivate()
227 free_irq(gpio_to_irq(gpio_data->gpio), led); gpio_trig_deactivate()
234 .name = "gpio",
/linux-4.1.27/include/linux/
H A Dgpio.h6 /* see Documentation/gpio/gpio-legacy.txt */
34 * struct gpio - a structure describing a GPIO with configuration
35 * @gpio: the GPIO number
39 struct gpio { struct
40 unsigned gpio; member in struct:gpio
48 #include <asm/gpio.h>
51 #include <asm-generic/gpio.h>
53 static inline int gpio_get_value(unsigned int gpio) gpio_get_value() argument
55 return __gpio_get_value(gpio); gpio_get_value()
58 static inline void gpio_set_value(unsigned int gpio, int value) gpio_set_value() argument
60 __gpio_set_value(gpio, value); gpio_set_value()
63 static inline int gpio_cansleep(unsigned int gpio) gpio_cansleep() argument
65 return __gpio_cansleep(gpio); gpio_cansleep()
68 static inline int gpio_to_irq(unsigned int gpio) gpio_to_irq() argument
70 return __gpio_to_irq(gpio); gpio_to_irq()
84 int devm_gpio_request(struct device *dev, unsigned gpio, const char *label);
85 int devm_gpio_request_one(struct device *dev, unsigned gpio,
87 void devm_gpio_free(struct device *dev, unsigned int gpio);
104 static inline int gpio_request(unsigned gpio, const char *label) gpio_request() argument
109 static inline int gpio_request_one(unsigned gpio, gpio_request_one() argument
115 static inline int gpio_request_array(const struct gpio *array, size_t num) gpio_request_array()
120 static inline void gpio_free(unsigned gpio) gpio_free() argument
128 static inline void gpio_free_array(const struct gpio *array, size_t num) gpio_free_array()
136 static inline int gpio_direction_input(unsigned gpio) gpio_direction_input() argument
141 static inline int gpio_direction_output(unsigned gpio, int value) gpio_direction_output() argument
146 static inline int gpio_set_debounce(unsigned gpio, unsigned debounce) gpio_set_debounce() argument
151 static inline int gpio_get_value(unsigned gpio) gpio_get_value() argument
158 static inline void gpio_set_value(unsigned gpio, int value) gpio_set_value() argument
164 static inline int gpio_cansleep(unsigned gpio) gpio_cansleep() argument
171 static inline int gpio_get_value_cansleep(unsigned gpio) gpio_get_value_cansleep() argument
178 static inline void gpio_set_value_cansleep(unsigned gpio, int value) gpio_set_value_cansleep() argument
184 static inline int gpio_export(unsigned gpio, bool direction_may_change) gpio_export() argument
192 unsigned gpio) gpio_export_link()
199 static inline int gpio_sysfs_set_active_low(unsigned gpio, int value) gpio_sysfs_set_active_low() argument
206 static inline void gpio_unexport(unsigned gpio) gpio_unexport() argument
212 static inline int gpio_to_irq(unsigned gpio) gpio_to_irq() argument
263 static inline int devm_gpio_request(struct device *dev, unsigned gpio, devm_gpio_request() argument
270 static inline int devm_gpio_request_one(struct device *dev, unsigned gpio, devm_gpio_request_one() argument
277 static inline void devm_gpio_free(struct device *dev, unsigned int gpio) devm_gpio_free() argument
191 gpio_export_link(struct device *dev, const char *name, unsigned gpio) gpio_export_link() argument
H A Dgpio-pxa.h6 #define gpio_to_bank(gpio) ((gpio) >> 5)
18 int (*gpio_set_wake)(unsigned int gpio, unsigned int on);
H A Ducb1400.h29 #include <linux/gpio.h>
125 static inline u16 ucb1400_gpio_get_value(struct snd_ac97 *ac97, u16 gpio) ucb1400_gpio_get_value() argument
127 return ucb1400_reg_read(ac97, UCB_IO_DATA) & (1 << gpio); ucb1400_gpio_get_value()
130 static inline void ucb1400_gpio_set_value(struct snd_ac97 *ac97, u16 gpio, ucb1400_gpio_set_value() argument
134 ucb1400_reg_read(ac97, UCB_IO_DATA) | (1 << gpio) : ucb1400_gpio_set_value()
135 ucb1400_reg_read(ac97, UCB_IO_DATA) & ~(1 << gpio)); ucb1400_gpio_set_value()
138 static inline u16 ucb1400_gpio_get_direction(struct snd_ac97 *ac97, u16 gpio) ucb1400_gpio_get_direction() argument
140 return ucb1400_reg_read(ac97, UCB_IO_DIR) & (1 << gpio); ucb1400_gpio_get_direction()
143 static inline void ucb1400_gpio_set_direction(struct snd_ac97 *ac97, u16 gpio, ucb1400_gpio_set_direction() argument
147 ucb1400_reg_read(ac97, UCB_IO_DIR) | (1 << gpio) : ucb1400_gpio_set_direction()
148 ucb1400_reg_read(ac97, UCB_IO_DIR) & ~(1 << gpio)); ucb1400_gpio_set_direction()
/linux-4.1.27/drivers/gpu/drm/gma500/
H A Dintel_gmbus.c102 static u32 get_reserved(struct intel_gpio *gpio) get_reserved() argument
104 struct drm_psb_private *dev_priv = gpio->dev_priv; get_reserved()
108 reserved = GMBUS_REG_READ(gpio->reg) & get_reserved()
117 struct intel_gpio *gpio = data; get_clock() local
118 struct drm_psb_private *dev_priv = gpio->dev_priv; get_clock()
119 u32 reserved = get_reserved(gpio); get_clock()
120 GMBUS_REG_WRITE(gpio->reg, reserved | GPIO_CLOCK_DIR_MASK); get_clock()
121 GMBUS_REG_WRITE(gpio->reg, reserved); get_clock()
122 return (GMBUS_REG_READ(gpio->reg) & GPIO_CLOCK_VAL_IN) != 0; get_clock()
127 struct intel_gpio *gpio = data; get_data() local
128 struct drm_psb_private *dev_priv = gpio->dev_priv; get_data()
129 u32 reserved = get_reserved(gpio); get_data()
130 GMBUS_REG_WRITE(gpio->reg, reserved | GPIO_DATA_DIR_MASK); get_data()
131 GMBUS_REG_WRITE(gpio->reg, reserved); get_data()
132 return (GMBUS_REG_READ(gpio->reg) & GPIO_DATA_VAL_IN) != 0; get_data()
137 struct intel_gpio *gpio = data; set_clock() local
138 struct drm_psb_private *dev_priv = gpio->dev_priv; set_clock()
139 u32 reserved = get_reserved(gpio); set_clock()
148 GMBUS_REG_WRITE(gpio->reg, reserved | clock_bits); set_clock()
149 GMBUS_REG_READ(gpio->reg); /* Posting */ set_clock()
154 struct intel_gpio *gpio = data; set_data() local
155 struct drm_psb_private *dev_priv = gpio->dev_priv; set_data()
156 u32 reserved = get_reserved(gpio); set_data()
165 GMBUS_REG_WRITE(gpio->reg, reserved | data_bits); set_data()
166 GMBUS_REG_READ(gpio->reg); set_data()
182 struct intel_gpio *gpio; intel_gpio_create() local
187 gpio = kzalloc(sizeof(struct intel_gpio), GFP_KERNEL); intel_gpio_create()
188 if (gpio == NULL) intel_gpio_create()
191 gpio->reg = map_pin_to_reg[pin]; intel_gpio_create()
192 gpio->dev_priv = dev_priv; intel_gpio_create()
194 snprintf(gpio->adapter.name, sizeof(gpio->adapter.name), intel_gpio_create()
196 gpio->adapter.owner = THIS_MODULE; intel_gpio_create()
197 gpio->adapter.algo_data = &gpio->algo; intel_gpio_create()
198 gpio->adapter.dev.parent = &dev_priv->dev->pdev->dev; intel_gpio_create()
199 gpio->algo.setsda = set_data; intel_gpio_create()
200 gpio->algo.setscl = set_clock; intel_gpio_create()
201 gpio->algo.getsda = get_data; intel_gpio_create()
202 gpio->algo.getscl = get_clock; intel_gpio_create()
203 gpio->algo.udelay = I2C_RISEFALL_TIME; intel_gpio_create()
204 gpio->algo.timeout = usecs_to_jiffies(2200); intel_gpio_create()
205 gpio->algo.data = gpio; intel_gpio_create()
207 if (i2c_bit_add_bus(&gpio->adapter)) intel_gpio_create()
210 return &gpio->adapter; intel_gpio_create()
213 kfree(gpio); intel_gpio_create()
223 struct intel_gpio *gpio = container_of(adapter, intel_i2c_quirk_xfer() local
231 set_data(gpio, 1); intel_i2c_quirk_xfer()
232 set_clock(gpio, 1); intel_i2c_quirk_xfer()
237 set_data(gpio, 1); intel_i2c_quirk_xfer()
238 set_clock(gpio, 1); intel_i2c_quirk_xfer()
/linux-4.1.27/drivers/net/wireless/ath/ath5k/
H A Dgpio.c103 * @gpio: GPIO pin to set as input
106 ath5k_hw_set_gpio_input(struct ath5k_hw *ah, u32 gpio) ath5k_hw_set_gpio_input() argument
108 if (gpio >= AR5K_NUM_GPIO) ath5k_hw_set_gpio_input()
112 (ath5k_hw_reg_read(ah, AR5K_GPIOCR) & ~AR5K_GPIOCR_OUT(gpio)) ath5k_hw_set_gpio_input()
113 | AR5K_GPIOCR_IN(gpio), AR5K_GPIOCR); ath5k_hw_set_gpio_input()
121 * @gpio: The GPIO pin to set as output
124 ath5k_hw_set_gpio_output(struct ath5k_hw *ah, u32 gpio) ath5k_hw_set_gpio_output() argument
126 if (gpio >= AR5K_NUM_GPIO) ath5k_hw_set_gpio_output()
130 (ath5k_hw_reg_read(ah, AR5K_GPIOCR) & ~AR5K_GPIOCR_OUT(gpio)) ath5k_hw_set_gpio_output()
131 | AR5K_GPIOCR_OUT(gpio), AR5K_GPIOCR); ath5k_hw_set_gpio_output()
139 * @gpio: The GPIO pin to read
142 ath5k_hw_get_gpio(struct ath5k_hw *ah, u32 gpio) ath5k_hw_get_gpio() argument
144 if (gpio >= AR5K_NUM_GPIO) ath5k_hw_get_gpio()
148 return ((ath5k_hw_reg_read(ah, AR5K_GPIODI) & AR5K_GPIODI_M) >> gpio) & ath5k_hw_get_gpio()
155 * @gpio: The GPIO pin to set
159 ath5k_hw_set_gpio(struct ath5k_hw *ah, u32 gpio, u32 val) ath5k_hw_set_gpio() argument
163 if (gpio >= AR5K_NUM_GPIO) ath5k_hw_set_gpio()
169 data &= ~(1 << gpio); ath5k_hw_set_gpio()
170 data |= (val & 1) << gpio; ath5k_hw_set_gpio()
180 * @gpio: The GPIO pin to use
189 ath5k_hw_set_gpio_intr(struct ath5k_hw *ah, unsigned int gpio, ath5k_hw_set_gpio_intr() argument
194 if (gpio >= AR5K_NUM_GPIO) ath5k_hw_set_gpio_intr()
201 ~(AR5K_GPIOCR_INT_SEL(gpio) | AR5K_GPIOCR_INT_SELH | ath5k_hw_set_gpio_intr()
202 AR5K_GPIOCR_INT_ENA | AR5K_GPIOCR_OUT(gpio))) | ath5k_hw_set_gpio_intr()
203 (AR5K_GPIOCR_INT_SEL(gpio) | AR5K_GPIOCR_INT_ENA); ath5k_hw_set_gpio_intr()
H A Drfkill.c41 ATH5K_DBG(ah, ATH5K_DEBUG_ANY, "rfkill disable (gpio:%d polarity:%d)\n", ath5k_rfkill_disable()
42 ah->rf_kill.gpio, ah->rf_kill.polarity); ath5k_rfkill_disable()
43 ath5k_hw_set_gpio_output(ah, ah->rf_kill.gpio); ath5k_rfkill_disable()
44 ath5k_hw_set_gpio(ah, ah->rf_kill.gpio, !ah->rf_kill.polarity); ath5k_rfkill_disable()
50 ATH5K_DBG(ah, ATH5K_DEBUG_ANY, "rfkill enable (gpio:%d polarity:%d)\n", ath5k_rfkill_enable()
51 ah->rf_kill.gpio, ah->rf_kill.polarity); ath5k_rfkill_enable()
52 ath5k_hw_set_gpio_output(ah, ah->rf_kill.gpio); ath5k_rfkill_enable()
53 ath5k_hw_set_gpio(ah, ah->rf_kill.gpio, ah->rf_kill.polarity); ath5k_rfkill_enable()
60 ath5k_hw_set_gpio_input(ah, ah->rf_kill.gpio); ath5k_rfkill_set_intr()
61 curval = ath5k_hw_get_gpio(ah, ah->rf_kill.gpio); ath5k_rfkill_set_intr()
62 ath5k_hw_set_gpio_intr(ah, ah->rf_kill.gpio, enable ? ath5k_rfkill_set_intr()
70 /*ath5k_hw_set_gpio_input(ah, ah->rf_kill.gpio);*/ ath5k_is_rfkill_set()
71 return ath5k_hw_get_gpio(ah, ah->rf_kill.gpio) == ath5k_is_rfkill_set()
90 ah->rf_kill.gpio = ah->ah_capabilities.cap_eeprom.ee_rfkill_pin; ath5k_rfkill_hw_start()
/linux-4.1.27/drivers/pinctrl/mvebu/
H A Dpinctrl-armada-375.c40 MPP_FUNCTION(0x0, "gpio", NULL),
46 MPP_FUNCTION(0x0, "gpio", NULL),
52 MPP_FUNCTION(0x0, "gpio", NULL),
60 MPP_FUNCTION(0x0, "gpio", NULL),
68 MPP_FUNCTION(0x0, "gpio", NULL),
74 MPP_FUNCTION(0x0, "gpio", NULL),
81 MPP_FUNCTION(0x0, "gpio", NULL),
87 MPP_FUNCTION(0x0, "gpio", NULL),
94 MPP_FUNCTION(0x0, "gpio", NULL),
100 MPP_FUNCTION(0x0, "gpio", NULL),
105 MPP_FUNCTION(0x0, "gpio", NULL),
111 MPP_FUNCTION(0x0, "gpio", NULL),
117 MPP_FUNCTION(0x0, "gpio", NULL),
122 MPP_FUNCTION(0x0, "gpio", NULL),
129 MPP_FUNCTION(0x0, "gpio", NULL),
133 MPP_FUNCTION(0x0, "gpio", NULL),
137 MPP_FUNCTION(0x0, "gpio", NULL),
140 MPP_FUNCTION(0x0, "gpio", NULL),
143 MPP_FUNCTION(0x0, "gpio", NULL),
146 MPP_FUNCTION(0x0, "gpio", NULL),
149 MPP_FUNCTION(0x0, "gpio", NULL),
152 MPP_FUNCTION(0x0, "gpio", NULL),
155 MPP_FUNCTION(0x0, "gpio", NULL),
158 MPP_FUNCTION(0x0, "gpio", NULL),
161 MPP_FUNCTION(0x0, "gpio", NULL),
169 MPP_FUNCTION(0x0, "gpio", NULL),
177 MPP_FUNCTION(0x0, "gpio", NULL),
185 MPP_FUNCTION(0x0, "gpio", NULL),
193 MPP_FUNCTION(0x0, "gpio", NULL),
199 MPP_FUNCTION(0x0, "gpio", NULL),
206 MPP_FUNCTION(0x0, "gpio", NULL),
212 MPP_FUNCTION(0x0, "gpio", NULL),
217 MPP_FUNCTION(0x0, "gpio", NULL),
223 MPP_FUNCTION(0x0, "gpio", NULL),
228 MPP_FUNCTION(0x0, "gpio", NULL),
233 MPP_FUNCTION(0x0, "gpio", NULL),
239 MPP_FUNCTION(0x0, "gpio", NULL),
243 MPP_FUNCTION(0x0, "gpio", NULL),
248 MPP_FUNCTION(0x0, "gpio", NULL),
252 MPP_FUNCTION(0x0, "gpio", NULL),
256 MPP_FUNCTION(0x0, "gpio", NULL),
260 MPP_FUNCTION(0x0, "gpio", NULL),
264 MPP_FUNCTION(0x0, "gpio", NULL),
269 MPP_FUNCTION(0x0, "gpio", NULL),
274 MPP_FUNCTION(0x0, "gpio", NULL),
277 MPP_FUNCTION(0x0, "gpio", NULL),
283 MPP_FUNCTION(0x0, "gpio", NULL),
289 MPP_FUNCTION(0x0, "gpio", NULL),
296 MPP_FUNCTION(0x0, "gpio", NULL),
302 MPP_FUNCTION(0x0, "gpio", NULL),
308 MPP_FUNCTION(0x0, "gpio", NULL),
315 MPP_FUNCTION(0x0, "gpio", NULL),
321 MPP_FUNCTION(0x0, "gpio", NULL),
328 MPP_FUNCTION(0x0, "gpio", NULL),
335 MPP_FUNCTION(0x0, "gpio", NULL),
341 MPP_FUNCTION(0x0, "gpio", NULL),
346 MPP_FUNCTION(0x0, "gpio", NULL),
351 MPP_FUNCTION(0x0, "gpio", NULL),
356 MPP_FUNCTION(0x0, "gpio", NULL),
359 MPP_FUNCTION(0x0, "gpio", NULL),
362 MPP_FUNCTION(0x0, "gpio", NULL),
367 MPP_FUNCTION(0x0, "gpio", NULL),
374 MPP_FUNCTION(0x0, "gpio", NULL),
379 MPP_FUNCTION(0x0, "gpio", NULL),
384 MPP_FUNCTION(0x0, "gpio", NULL),
388 MPP_FUNCTION(0x0, "gpio", NULL),
391 MPP_FUNCTION(0x0, "gpio", NULL),
H A Dpinctrl-armada-xp.c56 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
60 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
64 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
68 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
72 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
76 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
80 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
84 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
88 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
92 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
96 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
100 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
104 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
109 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
114 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
119 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
124 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
129 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
134 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
140 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
146 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
152 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
158 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
164 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
170 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
175 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
180 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
184 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
189 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
194 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
199 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
203 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
207 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
211 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
216 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
221 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
226 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
229 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
232 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
235 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
238 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
244 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
251 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
257 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
263 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
270 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
276 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
282 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
289 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78230_PLUS),
293 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
296 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
299 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
302 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
305 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
308 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
311 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
314 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
317 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
320 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
323 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
326 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
329 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
332 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
335 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
338 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
341 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
344 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_MV78260_PLUS),
H A Dpinctrl-armada-38x.c47 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
50 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
53 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
56 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
59 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
64 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
69 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
74 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
78 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
82 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
86 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
90 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
94 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
101 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
109 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
117 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
123 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
131 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
138 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
144 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
152 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
159 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
166 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
170 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
174 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
181 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
188 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
194 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
201 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
206 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
210 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
214 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
218 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
222 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
226 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
229 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
233 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
237 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
243 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
250 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
257 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
264 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
271 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
276 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
283 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
289 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
293 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
297 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
303 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
311 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
319 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
325 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
330 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
336 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
343 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
350 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
357 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
363 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
367 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
374 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6810_PLUS),
H A Dpinctrl-armada-39x.c45 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
48 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
51 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
54 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
57 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
62 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
67 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
71 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
75 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
79 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
83 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
87 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
91 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
96 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
100 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
105 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
110 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
115 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
120 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
125 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
131 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
137 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
144 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
148 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
152 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
159 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
166 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
172 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
179 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
184 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
188 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
192 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
196 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
200 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
204 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
207 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
211 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
214 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
219 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
225 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
232 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
239 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
247 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
252 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
260 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
265 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
270 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
276 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
281 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
290 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
296 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
303 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
309 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
316 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
324 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
331 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
338 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
344 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
349 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
356 MPP_VAR_FUNCTION(0, "gpio", NULL, V_88F6920_PLUS),
H A Dpinctrl-armada-370.c40 MPP_FUNCTION(0x0, "gpio", NULL),
46 MPP_FUNCTION(0x0, "gpio", NULL),
50 MPP_FUNCTION(0x0, "gpio", NULL),
54 MPP_FUNCTION(0x0, "gpio", NULL),
63 MPP_FUNCTION(0x0, "gpio", NULL),
74 MPP_FUNCTION(0x0, "gpio", NULL),
86 MPP_FUNCTION(0x0, "gpio", NULL),
92 MPP_FUNCTION(0x0, "gpio", NULL),
100 MPP_FUNCTION(0x0, "gpio", NULL),
107 MPP_FUNCTION(0x0, "gpio", NULL),
114 MPP_FUNCTION(0x0, "gpio", NULL),
121 MPP_FUNCTION(0x0, "gpio", NULL),
128 MPP_FUNCTION(0x0, "gpio", NULL),
137 MPP_FUNCTION(0x0, "gpio", NULL),
140 MPP_FUNCTION(0x0, "gpio", NULL),
164 MPP_FUNCTION(0x0, "gpio", NULL),
169 MPP_FUNCTION(0x0, "gpio", NULL),
174 MPP_FUNCTION(0x0, "gpio", NULL),
179 MPP_FUNCTION(0x0, "gpio", NULL),
184 MPP_FUNCTION(0x0, "gpio", NULL),
188 MPP_FUNCTION(0x0, "gpio", NULL),
193 MPP_FUNCTION(0x0, "gpio", NULL),
198 MPP_FUNCTION(0x0, "gpio", NULL),
202 MPP_FUNCTION(0x0, "gpio", NULL),
205 MPP_FUNCTION(0x0, "gpio", NULL),
225 MPP_FUNCTION(0x0, "gpio", NULL),
234 MPP_FUNCTION(0x0, "gpio", NULL),
239 MPP_FUNCTION(0x0, "gpio", NULL),
268 MPP_FUNCTION(0x0, "gpio", NULL),
275 MPP_FUNCTION(0x0, "gpio", NULL),
282 MPP_FUNCTION(0x0, "gpio", NULL),
289 MPP_FUNCTION(0x0, "gpio", NULL),
295 MPP_FUNCTION(0x0, "gpio", NULL),
301 MPP_FUNCTION(0x0, "gpio", NULL),
312 MPP_FUNCTION(0x0, "gpio", NULL),
319 MPP_FUNCTION(0x0, "gpio", NULL),
327 MPP_FUNCTION(0x0, "gpio", NULL),
334 MPP_FUNCTION(0x0, "gpio", NULL),
347 MPP_FUNCTION(0x0, "gpio", NULL),
359 MPP_FUNCTION(0x0, "gpio", NULL),
367 MPP_FUNCTION(0x0, "gpio", NULL),
371 MPP_FUNCTION(0x0, "gpio", NULL),
375 MPP_FUNCTION(0x0, "gpio", NULL),
H A Dpinctrl-kirkwood.c51 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 1)),
67 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 1)),
91 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 1)),
100 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 1)),
114 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 1)),
123 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 0, 0)),
129 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 1)),
135 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 1)),
143 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 1)),
150 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 1)),
158 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
171 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
180 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
189 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
198 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
207 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
215 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
223 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
231 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
239 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
247 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)),
254 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)),
260 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)),
266 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)),
277 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 1)),
283 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 1)),
290 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)),
296 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)),
302 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)),
308 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)),
314 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)),
320 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)),
326 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)),
332 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)),
338 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)),
344 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)),
349 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 0)),
354 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 0)),
359 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 0)),
364 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 0, 1)),
H A Dpinctrl-orion.c81 MPP_VAR_FUNCTION(0x3, "gpio", NULL, V_ALL)),
83 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
86 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
90 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
93 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
98 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
103 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
109 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
115 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
118 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
121 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
124 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
127 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
132 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
137 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
142 MPP_VAR_FUNCTION(0x0, "gpio", NULL, V_ALL),
149 MPP_VAR_FUNCTION(0x5, "gpio", NULL, V_5182)),
153 MPP_VAR_FUNCTION(0x5, "gpio", NULL, V_5182)),
157 MPP_VAR_FUNCTION(0x5, "gpio", NULL, V_5182)),
161 MPP_VAR_FUNCTION(0x5, "gpio", NULL, V_5182)),
/linux-4.1.27/arch/x86/platform/intel-mid/device_libs/
H A Dplatform_msic_ocd.c18 #include <linux/gpio.h>
28 int gpio; msic_ocd_platform_data() local
30 gpio = get_gpio_by_name("ocd_gpio"); msic_ocd_platform_data()
32 if (gpio < 0) msic_ocd_platform_data()
35 msic_ocd_pdata.gpio = gpio; msic_ocd_platform_data()
H A Dplatform_msic_gpio.c18 #include <linux/gpio.h>
29 int gpio = get_gpio_by_name("msic_gpio_base"); msic_gpio_platform_data() local
31 if (gpio < 0) msic_gpio_platform_data()
34 msic_gpio_pdata.gpio_base = gpio; msic_gpio_platform_data()
35 msic_pdata.gpio = &msic_gpio_pdata; msic_gpio_platform_data()
H A Dplatform_gpio_keys.c16 #include <linux/gpio.h>
21 #define DEVICE_NAME "gpio-keys"
56 * Shrink the non-existent buttons, register the gpio button
66 gb[i].gpio = get_gpio_by_name(gb[i].desc); pb_keys_init()
67 pr_debug("info[%2d]: name = %s, gpio = %d\n", i, gb[i].desc, pb_keys_init()
68 gb[i].gpio); pb_keys_init()
69 if (gb[i].gpio < 0) pb_keys_init()
/linux-4.1.27/arch/arm/mach-s3c24xx/
H A Dsetup-sdhci-gpio.c1 /* linux/arch/arm/plat-s3c2416/setup-sdhci-gpio.c
8 * Based on mach-s3c64xx/setup-sdhci-gpio.c
20 #include <linux/gpio.h>
22 #include <mach/regs-gpio.h>
23 #include <mach/gpio-samsung.h>
24 #include <plat/gpio-cfg.h>
H A Dsetup-spi.c12 #include <linux/gpio.h>
15 #include <plat/gpio-cfg.h>
18 #include <mach/regs-gpio.h>
H A Dsetup-i2c.c14 #include <linux/gpio.h>
18 #include <plat/gpio-cfg.h>
21 #include <mach/regs-gpio.h>
22 #include <mach/gpio-samsung.h>
H A Dmach-smdk2416.c25 #include <linux/gpio.h>
38 #include <mach/regs-gpio.h>
41 #include <mach/gpio-samsung.h>
46 #include <plat/gpio-cfg.h>
172 unsigned int gpio; s3c2416_fb_gpio_setup_24bpp() local
174 for (gpio = S3C2410_GPC(1); gpio <= S3C2410_GPC(4); gpio++) { s3c2416_fb_gpio_setup_24bpp()
175 s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c2416_fb_gpio_setup_24bpp()
176 s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s3c2416_fb_gpio_setup_24bpp()
179 for (gpio = S3C2410_GPC(8); gpio <= S3C2410_GPC(15); gpio++) { s3c2416_fb_gpio_setup_24bpp()
180 s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c2416_fb_gpio_setup_24bpp()
181 s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s3c2416_fb_gpio_setup_24bpp()
184 for (gpio = S3C2410_GPD(0); gpio <= S3C2410_GPD(15); gpio++) { s3c2416_fb_gpio_setup_24bpp()
185 s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); s3c2416_fb_gpio_setup_24bpp()
186 s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); s3c2416_fb_gpio_setup_24bpp()
H A Dsetup-ts.c14 #include <linux/gpio.h>
18 #include <plat/gpio-cfg.h>
20 #include <mach/gpio-samsung.h>
23 * s3c24xx_ts_cfg_gpio - configure gpio for s3c2410 systems
H A Dcommon-smdk.c21 #include <linux/gpio.h>
39 #include <mach/regs-gpio.h>
40 #include <mach/gpio-samsung.h>
44 #include <plat/gpio-cfg.h>
53 .gpio = S3C2410_GPF(4),
60 .gpio = S3C2410_GPF(5),
67 .gpio = S3C2410_GPF(6),
73 .gpio = S3C2410_GPF(7),
186 static const struct gpio smdk_led_gpios[] = {
H A Ds3c2440.c23 #include <linux/gpio.h>
32 #include <mach/gpio-samsung.h>
39 #include <plat/gpio-core.h>
40 #include <plat/gpio-cfg.h>
41 #include <plat/gpio-cfg-helpers.h>
/linux-4.1.27/include/linux/mfd/pcf50633/
H A Dgpio.h2 * gpio.h -- GPIO driver for NXP PCF50633
42 int pcf50633_gpio_set(struct pcf50633 *pcf, int gpio, u8 val);
43 u8 pcf50633_gpio_get(struct pcf50633 *pcf, int gpio);
45 int pcf50633_gpio_invert_set(struct pcf50633 *, int gpio, int invert);
46 int pcf50633_gpio_invert_get(struct pcf50633 *pcf, int gpio);
49 int gpio, int regulator, int on);
/linux-4.1.27/drivers/tty/serial/
H A Dserial_mctrl_gpio.c20 #include <linux/gpio/consumer.h>
26 struct gpio_desc *gpio[UART_GPIO_MAX]; member in struct:mctrl_gpios
52 if (!IS_ERR_OR_NULL(gpios->gpio[i]) && mctrl_gpio_set()
54 desc_array[count] = gpios->gpio[i]; mctrl_gpio_set()
65 return gpios->gpio[gidx]; mctrl_gpio_to_gpiod()
74 if (gpios->gpio[i] && !mctrl_gpios_desc[i].dir_out) { mctrl_gpio_get()
75 if (gpiod_get_value(gpios->gpio[i])) mctrl_gpio_get()
103 gpios->gpio[i] = mctrl_gpio_init()
108 if (IS_ERR(gpios->gpio[i])) mctrl_gpio_init()
109 return ERR_CAST(gpios->gpio[i]); mctrl_gpio_init()
121 if (!IS_ERR_OR_NULL(gpios->gpio[i])) mctrl_gpio_free()
122 devm_gpiod_put(dev, gpios->gpio[i]); mctrl_gpio_free()
/linux-4.1.27/drivers/media/pci/cx25821/
H A DMakefile2 cx25821-gpio.o cx25821-medusa-video.o \
/linux-4.1.27/drivers/media/pci/solo6x10/
H A DMakefile2 solo6x10-tw28.o solo6x10-gpio.o solo6x10-disp.o solo6x10-enc.o \
/linux-4.1.27/arch/mips/include/asm/mach-lantiq/
H A Dgpio.h11 #include <asm-generic/gpio.h>
/linux-4.1.27/arch/sh/include/mach-x3proto/mach/
H A Dhardware.h6 /* arch/sh/boards/mach-x3proto/gpio.c */
/linux-4.1.27/drivers/clk/
H A Dclk-gpio-gate.c15 #include <linux/gpio.h>
16 #include <linux/gpio/consumer.h>
22 * DOC: basic gpio gated clock which can be enabled and disabled
23 * with gpio output
26 * enable - clk_enable and clk_disable are functional & control gpio
68 * @gpio: gpio number to gate this clock
69 * @active_low: true if gpio should be set to 0 to enable clock
73 const char *parent_name, unsigned gpio, bool active_low, clk_register_gpio_gate()
88 err = devm_gpio_request_one(dev, gpio, gpio_flags, name); clk_register_gpio_gate()
90 err = gpio_request_one(gpio, gpio_flags, name); clk_register_gpio_gate()
93 pr_err("%s: %s: Error requesting clock control gpio %u\n", clk_register_gpio_gate()
94 __func__, name, gpio); clk_register_gpio_gate()
115 clk_gpio->gpiod = gpio_to_desc(gpio); clk_register_gpio_gate()
128 gpio_free(gpio); clk_register_gpio_gate()
154 int gpio; of_clk_gpio_gate_delayed_register_get() local
164 gpio = of_get_named_gpio_flags(data->node, "enable-gpios", 0, of_clk_gpio_gate_delayed_register_get()
166 if (gpio < 0) { of_clk_gpio_gate_delayed_register_get()
168 if (gpio != -EPROBE_DEFER) of_clk_gpio_gate_delayed_register_get()
171 return ERR_PTR(gpio); of_clk_gpio_gate_delayed_register_get()
176 clk = clk_register_gpio_gate(NULL, clk_name, parent_name, gpio, of_clk_gpio_gate_delayed_register_get()
190 * of_gpio_gate_clk_setup() - Setup function for gpio controlled clock
207 CLK_OF_DECLARE(gpio_gate_clk, "gpio-gate-clock", of_gpio_gate_clk_setup);
72 clk_register_gpio_gate(struct device *dev, const char *name, const char *parent_name, unsigned gpio, bool active_low, unsigned long flags) clk_register_gpio_gate() argument
/linux-4.1.27/arch/mips/bcm63xx/boards/
H A Dboard_bcm963xx.c62 .gpio = 37,
92 .gpio = 2,
97 .gpio = 4,
103 .gpio = 8,
108 .gpio = 9,
113 .gpio = 11,
140 .gpio = 3,
145 .gpio = 5,
150 .gpio = 4,
155 .gpio = 0,
161 .gpio = 1,
181 .gpio = 3,
186 .gpio = 5,
191 .gpio = 4,
196 .gpio = 0,
202 .gpio = 1,
241 .gpio = 2,
246 .gpio = 3,
251 .gpio = 4,
256 .gpio = 0,
263 .gpio = 1,
302 .gpio = 2,
307 .gpio = 3,
312 .gpio = 4,
317 .gpio = 0,
323 .gpio = 1,
356 .gpio = 2,
361 .gpio = 3,
366 .gpio = 4,
371 .gpio = 0,
377 .gpio = 1,
414 .gpio = 2,
419 .gpio = 3,
424 .gpio = 4,
429 .gpio = 0,
435 .gpio = 1,
557 .gpio = 15,
562 .gpio = 22,
567 .gpio = 23,
572 .gpio = 4,
577 .gpio = 5,
609 .gpio = 22,
614 .gpio = 23,
618 .gpio = 5,
624 .gpio = 4,
867 .name = "leds-gpio",
/linux-4.1.27/arch/mips/jz4740/
H A Dgpio.c21 #include <linux/gpio.h>
73 #define GPIO_TO_BIT(gpio) BIT(gpio & 0x1f)
74 #define GPIO_TO_REG(gpio, reg) (gpio_to_jz_gpio_chip(gpio)->base + (reg))
89 static inline struct jz_gpio_chip *gpio_to_jz_gpio_chip(unsigned int gpio) gpio_to_jz_gpio_chip() argument
91 return &jz4740_gpio_chips[gpio >> 5]; gpio_to_jz_gpio_chip()
105 static inline void jz_gpio_write_bit(unsigned int gpio, unsigned int reg) jz_gpio_write_bit() argument
107 writel(GPIO_TO_BIT(gpio), GPIO_TO_REG(gpio, reg)); jz_gpio_write_bit()
110 int jz_gpio_set_function(int gpio, enum jz_gpio_function function) jz_gpio_set_function() argument
113 jz_gpio_write_bit(gpio, JZ_REG_GPIO_FUNC_CLEAR); jz_gpio_set_function()
114 jz_gpio_write_bit(gpio, JZ_REG_GPIO_SELECT_CLEAR); jz_gpio_set_function()
115 jz_gpio_write_bit(gpio, JZ_REG_GPIO_TRIGGER_CLEAR); jz_gpio_set_function()
117 jz_gpio_write_bit(gpio, JZ_REG_GPIO_FUNC_SET); jz_gpio_set_function()
118 jz_gpio_write_bit(gpio, JZ_REG_GPIO_TRIGGER_CLEAR); jz_gpio_set_function()
121 jz_gpio_write_bit(gpio, JZ_REG_GPIO_SELECT_CLEAR); jz_gpio_set_function()
124 jz_gpio_write_bit(gpio, JZ_REG_GPIO_TRIGGER_SET); jz_gpio_set_function()
126 jz_gpio_write_bit(gpio, JZ_REG_GPIO_SELECT_SET); jz_gpio_set_function()
144 ret = gpio_request(request->gpio, request->name); jz_gpio_bulk_request()
147 jz_gpio_set_function(request->gpio, request->function); jz_gpio_bulk_request()
154 gpio_free(request->gpio); jz_gpio_bulk_request()
155 jz_gpio_set_function(request->gpio, JZ_GPIO_FUNC_NONE); jz_gpio_bulk_request()
167 gpio_free(request->gpio); jz_gpio_bulk_free()
168 jz_gpio_set_function(request->gpio, JZ_GPIO_FUNC_NONE); jz_gpio_bulk_free()
179 jz_gpio_set_function(request->gpio, JZ_GPIO_FUNC_NONE); jz_gpio_bulk_suspend()
180 jz_gpio_write_bit(request->gpio, JZ_REG_GPIO_DIRECTION_CLEAR); jz_gpio_bulk_suspend()
181 jz_gpio_write_bit(request->gpio, JZ_REG_GPIO_PULL_SET); jz_gpio_bulk_suspend()
191 jz_gpio_set_function(request->gpio, request->function); jz_gpio_bulk_resume()
195 void jz_gpio_enable_pullup(unsigned gpio) jz_gpio_enable_pullup() argument
197 jz_gpio_write_bit(gpio, JZ_REG_GPIO_PULL_CLEAR); jz_gpio_enable_pullup()
201 void jz_gpio_disable_pullup(unsigned gpio) jz_gpio_disable_pullup() argument
203 jz_gpio_write_bit(gpio, JZ_REG_GPIO_PULL_SET); jz_gpio_disable_pullup()
207 static int jz_gpio_get_value(struct gpio_chip *chip, unsigned gpio) jz_gpio_get_value() argument
209 return !!(readl(CHIP_TO_REG(chip, JZ_REG_GPIO_PIN)) & BIT(gpio)); jz_gpio_get_value()
212 static void jz_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) jz_gpio_set_value() argument
216 writel(BIT(gpio), reg); jz_gpio_set_value()
219 static int jz_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, jz_gpio_direction_output() argument
222 writel(BIT(gpio), CHIP_TO_REG(chip, JZ_REG_GPIO_DIRECTION_SET)); jz_gpio_direction_output()
223 jz_gpio_set_value(chip, gpio, value); jz_gpio_direction_output()
228 static int jz_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) jz_gpio_direction_input() argument
230 writel(BIT(gpio), CHIP_TO_REG(chip, JZ_REG_GPIO_DIRECTION_CLEAR)); jz_gpio_direction_input()
266 int gpio_to_irq(unsigned gpio) gpio_to_irq() argument
268 return JZ4740_IRQ_GPIO(0) + gpio; gpio_to_irq()
331 /* TODO: Check if function is gpio */ jz_gpio_irq_startup()
/linux-4.1.27/drivers/acpi/acpica/
H A Drsserial.c70 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.gpio.revision_id),
71 AML_OFFSET(gpio.revision_id),
74 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.producer_consumer),
75 AML_OFFSET(gpio.flags),
78 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.sharable),
79 AML_OFFSET(gpio.int_flags),
82 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.wake_capable),
83 AML_OFFSET(gpio.int_flags),
86 {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.gpio.io_restriction),
87 AML_OFFSET(gpio.int_flags),
90 {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.triggering),
91 AML_OFFSET(gpio.int_flags),
94 {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.gpio.polarity),
95 AML_OFFSET(gpio.int_flags),
98 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.gpio.pin_config),
99 AML_OFFSET(gpio.pin_config),
107 {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.gpio.drive_strength),
108 AML_OFFSET(gpio.drive_strength),
113 {ACPI_RSC_COUNT_GPIO_PIN, ACPI_RS_OFFSET(data.gpio.pin_table_length),
114 AML_OFFSET(gpio.pin_table_offset),
115 AML_OFFSET(gpio.res_source_offset)},
117 {ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET(data.gpio.pin_table),
118 AML_OFFSET(gpio.pin_table_offset),
123 {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.gpio.resource_source.index),
124 AML_OFFSET(gpio.res_source_index),
128 ACPI_RS_OFFSET(data.gpio.resource_source.string_length),
129 AML_OFFSET(gpio.res_source_offset),
130 AML_OFFSET(gpio.vendor_offset)},
133 ACPI_RS_OFFSET(data.gpio.resource_source.string_ptr),
134 AML_OFFSET(gpio.res_source_offset),
139 {ACPI_RSC_COUNT_GPIO_VEN, ACPI_RS_OFFSET(data.gpio.vendor_length),
140 AML_OFFSET(gpio.vendor_length),
143 {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET(data.gpio.vendor_data),
144 AML_OFFSET(gpio.vendor_offset),
/linux-4.1.27/arch/arm/mach-imx/
H A Dmach-pcm037_eet.c9 #include <linux/gpio.h>
71 .gpio = 0,
77 .gpio = 1,
83 .gpio = 2,
89 .gpio = 3,
95 .gpio = 32,
101 .gpio = 33,
107 .gpio = 34,
113 .gpio = 35,
119 .gpio = 38,
125 .gpio = 39,
131 .gpio = 50,
137 .gpio = 51,
143 .gpio = 52,
149 .gpio = 53,
H A Dmm-imx27.c87 /* i.mx27 has the i.mx21 type gpio */ imx27_soc_init()
88 mxc_register_gpio("imx21-gpio", 0, MX27_GPIO1_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); imx27_soc_init()
89 mxc_register_gpio("imx21-gpio", 1, MX27_GPIO2_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); imx27_soc_init()
90 mxc_register_gpio("imx21-gpio", 2, MX27_GPIO3_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); imx27_soc_init()
91 mxc_register_gpio("imx21-gpio", 3, MX27_GPIO4_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); imx27_soc_init()
92 mxc_register_gpio("imx21-gpio", 4, MX27_GPIO5_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); imx27_soc_init()
93 mxc_register_gpio("imx21-gpio", 5, MX27_GPIO6_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); imx27_soc_init()
/linux-4.1.27/arch/sh/boards/mach-x3proto/
H A Dgpio.c2 * arch/sh/boards/mach-x3proto/gpio.c
16 #include <linux/gpio.h>
32 static int x3proto_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) x3proto_gpio_direction_input() argument
39 data |= (1 << gpio); x3proto_gpio_direction_input()
46 static int x3proto_gpio_get(struct gpio_chip *chip, unsigned gpio) x3proto_gpio_get() argument
48 return !!(__raw_readw(KEYDETR) & (1 << gpio)); x3proto_gpio_get()
51 static int x3proto_gpio_to_irq(struct gpio_chip *chip, unsigned gpio) x3proto_gpio_to_irq() argument
55 if (gpio < chip->ngpio) x3proto_gpio_to_irq()
56 virq = irq_create_mapping(x3proto_irq_domain, gpio); x3proto_gpio_to_irq()
80 .label = "x3proto-gpio",
92 "gpio"); x3proto_gpio_irq_map()
/linux-4.1.27/arch/mips/ath79/
H A Dmach-ap81.c14 #include "dev-gpio-buttons.h"
15 #include "dev-leds-gpio.h"
35 .gpio = AP81_GPIO_LED_STATUS,
39 .gpio = AP81_GPIO_LED_AOSS,
43 .gpio = AP81_GPIO_LED_WLAN,
47 .gpio = AP81_GPIO_LED_POWER,
58 .gpio = AP81_GPIO_BTN_SW1,
65 .gpio = AP81_GPIO_BTN_SW4,
H A Dmach-pb44.c14 #include <linux/i2c-gpio.h>
18 #include "dev-gpio-buttons.h"
19 #include "dev-leds-gpio.h"
42 .name = "i2c-gpio",
63 .gpio = PB44_GPIO_LED_JUMP1,
67 .gpio = PB44_GPIO_LED_JUMP2,
78 .gpio = PB44_GPIO_SW_RESET,
85 .gpio = PB44_GPIO_SW_JUMP,
H A Dmach-ubnt-xm.c20 #include "dev-gpio-buttons.h"
21 #include "dev-leds-gpio.h"
40 .gpio = UBNT_XM_GPIO_LED_L1,
44 .gpio = UBNT_XM_GPIO_LED_L2,
48 .gpio = UBNT_XM_GPIO_LED_L3,
52 .gpio = UBNT_XM_GPIO_LED_L4,
63 .gpio = UBNT_XM_GPIO_BTN_RESET,
H A Dmach-ap121.c12 #include "dev-gpio-buttons.h"
13 #include "dev-leds-gpio.h"
32 .gpio = AP121_GPIO_LED_USB,
37 .gpio = AP121_GPIO_LED_WLAN,
48 .gpio = AP121_GPIO_BTN_JUMPSTART,
56 .gpio = AP121_GPIO_BTN_RESET,
H A Dgpio.c22 #include <linux/gpio.h>
32 static void __ath79_gpio_set_value(unsigned gpio, int value) __ath79_gpio_set_value() argument
37 __raw_writel(1 << gpio, base + AR71XX_GPIO_REG_SET); __ath79_gpio_set_value()
39 __raw_writel(1 << gpio, base + AR71XX_GPIO_REG_CLEAR); __ath79_gpio_set_value()
42 static int __ath79_gpio_get_value(unsigned gpio) __ath79_gpio_get_value() argument
44 return (__raw_readl(ath79_gpio_base + AR71XX_GPIO_REG_IN) >> gpio) & 1; __ath79_gpio_get_value()
214 int gpio_get_value(unsigned gpio) gpio_get_value() argument
216 if (gpio < ath79_gpio_count) gpio_get_value()
217 return __ath79_gpio_get_value(gpio); gpio_get_value()
219 return __gpio_get_value(gpio); gpio_get_value()
223 void gpio_set_value(unsigned gpio, int value) gpio_set_value() argument
225 if (gpio < ath79_gpio_count) gpio_set_value()
226 __ath79_gpio_set_value(gpio, value); gpio_set_value()
228 __gpio_set_value(gpio, value); gpio_set_value()
232 int gpio_to_irq(unsigned gpio) gpio_to_irq() argument
H A Dmach-ap136.c25 #include "dev-gpio-buttons.h"
26 #include "dev-leds-gpio.h"
52 .gpio = AP136_GPIO_LED_STATUS_GREEN,
57 .gpio = AP136_GPIO_LED_STATUS_RED,
62 .gpio = AP136_GPIO_LED_WPS_GREEN,
67 .gpio = AP136_GPIO_LED_WPS_RED,
72 .gpio = AP136_GPIO_LED_WLAN_2G,
77 .gpio = AP136_GPIO_LED_USB,
88 .gpio = AP136_GPIO_BTN_WPS,
96 .gpio = AP136_GPIO_BTN_RFKILL,
H A Dmach-db120.c25 #include "dev-gpio-buttons.h"
26 #include "dev-leds-gpio.h"
48 .gpio = DB120_GPIO_LED_STATUS,
53 .gpio = DB120_GPIO_LED_WPS,
58 .gpio = DB120_GPIO_LED_WLAN_5G,
63 .gpio = DB120_GPIO_LED_WLAN_2G,
74 .gpio = DB120_GPIO_BTN_WPS,
/linux-4.1.27/arch/mips/bcm47xx/
H A Dworkarounds.c3 #include <linux/gpio.h>
14 pr_err("Failed to request USB power gpio: %d\n", err); bcm47xx_workarounds_netgear_wnr3500l()
/linux-4.1.27/arch/mips/include/asm/mach-rc32434/
H A Dgpio.h17 #include <asm-generic/gpio.h>
25 #define gpio_to_irq(gpio) (8 + 4 * 32 + gpio)
30 * gpiofunc[x]==0 bit = gpio
38 * gpiod[x] read/write gpio pinX status
86 extern void rb532_gpio_set_ilevel(int bit, unsigned gpio);
87 extern void rb532_gpio_set_istat(int bit, unsigned gpio);
88 extern void rb532_gpio_set_func(unsigned gpio);
/linux-4.1.27/arch/arm/mach-gemini/
H A Dboard-wbd111.c18 #include <linux/mdio-gpio.h>
31 .gpio = 5,
44 .name = "gpio-keys",
54 .gpio = 1,
58 .gpio = 2,
62 .gpio = 3,
66 .gpio = 5,
76 .name = "leds-gpio",
H A Dboard-wbd222.c18 #include <linux/mdio-gpio.h>
31 .gpio = 5,
44 .name = "gpio-keys",
54 .gpio = 1,
58 .gpio = 2,
62 .gpio = 3,
66 .gpio = 5,
76 .name = "leds-gpio",
H A Dboard-nas4220b.c21 #include <linux/mdio-gpio.h>
38 .gpio = 60,
43 .gpio = 62,
53 .name = "leds-gpio",
63 .gpio = 61,
70 .gpio = 63,
83 .name = "gpio-keys",
H A DMakefile7 obj-y := irq.o mm.o time.o devices.o gpio.o idle.o reset.o
H A Dgpio.c6 * Based on plat-mxc/gpio.c:
20 #include <linux/gpio.h>
60 unsigned int gpio = irq_to_gpio(d->irq); gpio_ack_irq() local
61 void __iomem *base = GPIO_BASE(gpio / 32); gpio_ack_irq()
63 __raw_writel(1 << (gpio % 32), base + GPIO_INT_CLR); gpio_ack_irq()
68 unsigned int gpio = irq_to_gpio(d->irq); gpio_mask_irq() local
69 void __iomem *base = GPIO_BASE(gpio / 32); gpio_mask_irq()
71 _set_gpio_irqenable(base, gpio % 32, 0); gpio_mask_irq()
76 unsigned int gpio = irq_to_gpio(d->irq); gpio_unmask_irq() local
77 void __iomem *base = GPIO_BASE(gpio / 32); gpio_unmask_irq()
79 _set_gpio_irqenable(base, gpio % 32, 1); gpio_unmask_irq()
84 unsigned int gpio = irq_to_gpio(d->irq); gpio_set_irq_type() local
85 unsigned int gpio_mask = 1 << (gpio % 32); gpio_set_irq_type()
86 void __iomem *base = GPIO_BASE(gpio / 32); gpio_set_irq_type()
/linux-4.1.27/include/linux/i2c/
H A Dmax732x.h16 unsigned gpio, unsigned ngpio,
19 unsigned gpio, unsigned ngpio,
/linux-4.1.27/arch/sh/boards/mach-rsk/
H A Ddevices-rsk7203.c16 #include <linux/gpio.h>
56 .gpio = GPIO_PE10,
61 .gpio = GPIO_PE12,
66 .gpio = GPIO_PC14,
71 .gpio = GPIO_PE11,
82 .name = "leds-gpio",
92 .gpio = GPIO_PB0,
97 .gpio = GPIO_PB1,
102 .gpio = GPIO_PB2,
115 .name = "gpio-keys-polled",
/linux-4.1.27/sound/soc/
H A Dsoc-jack.c16 #include <linux/gpio.h>
17 #include <linux/gpio/consumer.h>
247 /* gpio detect */ snd_soc_jack_gpio_detect()
248 static void snd_soc_jack_gpio_detect(struct snd_soc_jack_gpio *gpio) snd_soc_jack_gpio_detect() argument
250 struct snd_soc_jack *jack = gpio->jack; snd_soc_jack_gpio_detect()
254 enable = gpiod_get_value_cansleep(gpio->desc); snd_soc_jack_gpio_detect()
255 if (gpio->invert) snd_soc_jack_gpio_detect()
259 report = gpio->report; snd_soc_jack_gpio_detect()
263 if (gpio->jack_status_check) snd_soc_jack_gpio_detect()
264 report = gpio->jack_status_check(gpio->data); snd_soc_jack_gpio_detect()
266 snd_soc_jack_report(jack, report, gpio->report); snd_soc_jack_gpio_detect()
269 /* irq handler for gpio pin */ gpio_handler()
272 struct snd_soc_jack_gpio *gpio = data; gpio_handler() local
273 struct device *dev = gpio->jack->card->dev; gpio_handler()
275 trace_snd_soc_jack_irq(gpio->name); gpio_handler()
278 pm_wakeup_event(dev, gpio->debounce_time + 50); gpio_handler()
280 queue_delayed_work(system_power_efficient_wq, &gpio->work, gpio_handler()
281 msecs_to_jiffies(gpio->debounce_time)); gpio_handler()
286 /* gpio work */ gpio_work()
289 struct snd_soc_jack_gpio *gpio; gpio_work() local
291 gpio = container_of(work, struct snd_soc_jack_gpio, work.work); gpio_work()
292 snd_soc_jack_gpio_detect(gpio); gpio_work()
300 * @gpios: array of gpio pins
302 * This function will request gpio, set data direction and request irq
303 * for each gpio in the array.
313 "ASoC: No name for gpio at index %d\n", i); snd_soc_jack_add_gpios()
326 "ASoC: Cannot get gpio at index %d: %d", snd_soc_jack_add_gpios()
332 if (!gpio_is_valid(gpios[i].gpio)) { snd_soc_jack_add_gpios()
334 "ASoC: Invalid gpio %d\n", snd_soc_jack_add_gpios()
335 gpios[i].gpio); snd_soc_jack_add_gpios()
340 ret = gpio_request_one(gpios[i].gpio, GPIOF_IN, snd_soc_jack_add_gpios()
345 gpios[i].desc = gpio_to_desc(gpios[i].gpio); snd_soc_jack_add_gpios()
379 gpio_free(gpios[i].gpio); snd_soc_jack_add_gpios()
393 * @gpios: array of gpio pins
395 * This function will request gpio, set data direction and request irq
396 * for each gpio in the array.
416 * @gpios: array of gpio pins
418 * Release gpio and irq resources for gpio pins associated with an ASoC jack.
H A Dsoc-ac97.c22 #include <linux/gpio.h>
165 int gpio; snd_soc_ac97_parse_pinctl() local
196 gpio = of_get_named_gpio(dev->of_node, "ac97-gpios", 0); snd_soc_ac97_parse_pinctl()
197 if (gpio < 0) { snd_soc_ac97_parse_pinctl()
198 dev_err(dev, "Can't find ac97-sync gpio\n"); snd_soc_ac97_parse_pinctl()
199 return gpio; snd_soc_ac97_parse_pinctl()
201 ret = devm_gpio_request(dev, gpio, "AC97 link sync"); snd_soc_ac97_parse_pinctl()
203 dev_err(dev, "Failed requesting ac97-sync gpio\n"); snd_soc_ac97_parse_pinctl()
206 cfg->gpio_sync = gpio; snd_soc_ac97_parse_pinctl()
208 gpio = of_get_named_gpio(dev->of_node, "ac97-gpios", 1); snd_soc_ac97_parse_pinctl()
209 if (gpio < 0) { snd_soc_ac97_parse_pinctl()
210 dev_err(dev, "Can't find ac97-sdata gpio %d\n", gpio); snd_soc_ac97_parse_pinctl()
211 return gpio; snd_soc_ac97_parse_pinctl()
213 ret = devm_gpio_request(dev, gpio, "AC97 link sdata"); snd_soc_ac97_parse_pinctl()
215 dev_err(dev, "Failed requesting ac97-sdata gpio\n"); snd_soc_ac97_parse_pinctl()
218 cfg->gpio_sdata = gpio; snd_soc_ac97_parse_pinctl()
220 gpio = of_get_named_gpio(dev->of_node, "ac97-gpios", 2); snd_soc_ac97_parse_pinctl()
221 if (gpio < 0) { snd_soc_ac97_parse_pinctl()
222 dev_err(dev, "Can't find ac97-reset gpio\n"); snd_soc_ac97_parse_pinctl()
223 return gpio; snd_soc_ac97_parse_pinctl()
225 ret = devm_gpio_request(dev, gpio, "AC97 link reset"); snd_soc_ac97_parse_pinctl()
227 dev_err(dev, "Failed requesting ac97-reset gpio\n"); snd_soc_ac97_parse_pinctl()
230 cfg->gpio_reset = gpio; snd_soc_ac97_parse_pinctl()
257 * the device node of pdev to get pinctrl states and gpio numbers to use.
/linux-4.1.27/drivers/pinctrl/berlin/
H A Dberlin-bg2.c24 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
27 BERLIN_PINCTRL_FUNCTION(0x1, "gpio"),
30 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
37 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
41 BERLIN_PINCTRL_FUNCTION(0x1, "gpio"),
44 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
55 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
59 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
64 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
71 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
80 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
85 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
95 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
104 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
108 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
112 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
125 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
132 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
148 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
155 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
165 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
169 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
176 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
184 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
189 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
193 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
196 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
199 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
202 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
205 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
H A Dberlin-bg2q.c25 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
28 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
30 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
34 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
41 BERLIN_PINCTRL_FUNCTION(0x3, "gpio"),
46 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
55 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
59 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
63 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
66 BERLIN_PINCTRL_FUNCTION(0x1, "gpio"),
69 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
77 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
83 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
85 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
91 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
97 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
104 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
111 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
118 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
123 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
130 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
142 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
146 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
149 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
154 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
160 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
166 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
170 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
173 BERLIN_PINCTRL_FUNCTION(0x2, "gpio"),
179 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
183 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
187 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
191 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
303 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
307 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
311 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
315 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
319 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
322 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
325 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
328 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
331 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
334 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
337 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
340 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
345 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
347 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
352 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
359 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
361 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
364 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
367 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
H A Dberlin-bg2cd.c24 BERLIN_PINCTRL_FUNCTION(0x1, "gpio"),
28 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
33 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
40 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
48 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
56 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
65 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
69 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
72 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
74 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
79 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
82 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
85 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
92 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
95 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
/linux-4.1.27/drivers/video/fbdev/via/
H A Dvia-gpio.c9 #include <linux/gpio.h>
12 #include <linux/via-gpio.h>
90 struct viafb_gpio *gpio; via_gpio_set() local
94 gpio = cfg->active_gpios[nr]; via_gpio_set()
95 reg = via_read_reg(VIASR, gpio->vg_port_index); via_gpio_set()
96 reg |= 0x40 << gpio->vg_mask_shift; /* output enable */ via_gpio_set()
98 reg |= 0x10 << gpio->vg_mask_shift; via_gpio_set()
100 reg &= ~(0x10 << gpio->vg_mask_shift); via_gpio_set()
101 via_write_reg(VIASR, gpio->vg_port_index, reg); via_gpio_set()
121 struct viafb_gpio *gpio; via_gpio_dir_input() local
125 gpio = cfg->active_gpios[nr]; via_gpio_dir_input()
126 via_write_reg_mask(VIASR, gpio->vg_port_index, 0, via_gpio_dir_input()
127 0x40 << gpio->vg_mask_shift); via_gpio_dir_input()
138 struct viafb_gpio *gpio; via_gpio_get() local
142 gpio = cfg->active_gpios[nr]; via_gpio_get()
143 reg = via_read_reg(VIASR, gpio->vg_port_index); via_gpio_get()
145 return reg & (0x04 << gpio->vg_mask_shift); via_gpio_get()
166 static void viafb_gpio_enable(struct viafb_gpio *gpio) viafb_gpio_enable() argument
168 via_write_reg_mask(VIASR, gpio->vg_port_index, 0x02, 0x02); viafb_gpio_enable()
171 static void viafb_gpio_disable(struct viafb_gpio *gpio) viafb_gpio_disable() argument
173 via_write_reg_mask(VIASR, gpio->vg_port_index, 0, 0x02); viafb_gpio_disable()
199 * Look up a specific gpio and return the number it was assigned.
220 struct viafb_gpio *gpio; viafb_gpio_probe() local
230 for (gpio = viafb_all_gpios; viafb_gpio_probe()
231 gpio < viafb_all_gpios + VIAFB_NUM_GPIOS; gpio++) viafb_gpio_probe()
232 if (gpio->vg_port_index == port_cfg[i].ioport_index) { viafb_gpio_probe()
233 viafb_gpio_config.active_gpios[ngpio] = gpio; viafb_gpio_probe()
235 gpio->vg_name; viafb_gpio_probe()
298 .name = "viafb-gpio",
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/subdev/volt/
H A Dgpio.c26 #include <subdev/bios/gpio.h>
27 #include <subdev/gpio.h>
37 struct nvkm_gpio *gpio = nvkm_gpio(volt); nvkm_voltgpio_get() local
43 int ret = gpio->get(gpio, 0, tags[i], 0xff); nvkm_voltgpio_get()
56 struct nvkm_gpio *gpio = nvkm_gpio(volt); nvkm_voltgpio_set() local
61 int ret = gpio->set(gpio, 0, tags[i], 0xff, vid & 1); nvkm_voltgpio_set()
73 struct nvkm_gpio *gpio = nvkm_gpio(volt); nvkm_voltgpio_init() local
77 /* check we have gpio function info for each vid bit. on some nvkm_voltgpio_init()
79 * are valid gpio functions... from traces, nvidia appear to nvkm_voltgpio_init()
85 int ret = gpio->find(gpio, 0, tags[i], 0xff, &func); nvkm_voltgpio_init()
/linux-4.1.27/drivers/video/backlight/
H A Dgpio_backlight.c12 #include <linux/gpio.h>
26 int gpio; member in struct:gpio_backlight
41 gpio_set_value_cansleep(gbl->gpio, gpio_backlight_update_status()
67 gbl->gpio = of_get_gpio_flags(np, 0, &gpio_flags); gpio_backlight_probe_dt()
69 if (!gpio_is_valid(gbl->gpio)) { gpio_backlight_probe_dt()
70 if (gbl->gpio != -EPROBE_DEFER) { gpio_backlight_probe_dt()
74 return gbl->gpio; gpio_backlight_probe_dt()
112 gbl->gpio = pdata->gpio; gpio_backlight_probe()
117 ret = devm_gpio_request_one(gbl->dev, gbl->gpio, GPIOF_DIR_OUT | gpio_backlight_probe()
146 { .compatible = "gpio-backlight" },
153 .name = "gpio-backlight",
164 MODULE_ALIAS("platform:gpio-backlight");
/linux-4.1.27/sound/aoa/fabrics/
H A Dlayout.c606 struct gpio_runtime gpio; member in struct:layout_dev
637 struct gpio_runtime *gpio = snd_kcontrol_chip(kcontrol); \
638 if (gpio->methods && gpio->methods->get_##n) \
640 gpio->methods->get_##n(gpio); \
646 struct gpio_runtime *gpio = snd_kcontrol_chip(kcontrol); \
647 if (gpio->methods && gpio->methods->set_##n) \
648 gpio->methods->set_##n(gpio, \
730 v = ldev->gpio.methods->get_detect(&ldev->gpio, detected_get()
734 v = ldev->gpio.methods->get_detect(&ldev->gpio, detected_get()
793 codec->gpio = &ldev->gpio; check_codec()
839 codec->gpio = NULL; layout_remove_codec()
854 v = ldev->gpio.methods->get_detect(&ldev->gpio, AOA_NOTIFY_HEADPHONE); layout_notify()
858 ldev->gpio.methods->set_speakers(&ldev->gpio, !v); layout_notify()
859 ldev->gpio.methods->set_headphone(&ldev->gpio, v); layout_notify()
860 ldev->gpio.methods->set_lineout(&ldev->gpio, 0); layout_notify()
863 v = ldev->gpio.methods->get_detect(&ldev->gpio, AOA_NOTIFY_LINE_OUT); layout_notify()
867 ldev->gpio.methods->set_speakers(&ldev->gpio, !v); layout_notify()
868 ldev->gpio.methods->set_headphone(&ldev->gpio, 0); layout_notify()
869 ldev->gpio.methods->set_lineout(&ldev->gpio, v); layout_notify()
900 headphones = codec->gpio->methods->get_detect(codec->gpio, layout_attached_codec()
902 lineout = codec->gpio->methods->get_detect(codec->gpio, layout_attached_codec()
905 if (codec->gpio->methods->set_master) { layout_attached_codec()
906 ctl = snd_ctl_new1(&master_ctl, codec->gpio); layout_attached_codec()
913 ldev->gpio.methods->set_speakers(codec->gpio, 1); layout_attached_codec()
914 ctl = snd_ctl_new1(&speakers_ctl, codec->gpio); layout_attached_codec()
920 ldev->gpio.methods->set_headphone(codec->gpio, 1); layout_attached_codec()
921 ctl = snd_ctl_new1(&headphone_ctl, codec->gpio); layout_attached_codec()
925 !ldev->gpio.methods layout_attached_codec()
926 ->set_notify(&ldev->gpio, layout_attached_codec()
942 ldev->gpio.methods->set_lineout(codec->gpio, 1); layout_attached_codec()
943 ctl = snd_ctl_new1(&lineout_ctl, codec->gpio); layout_attached_codec()
950 !ldev->gpio.methods layout_attached_codec()
951 ->set_notify(&ldev->gpio, layout_attached_codec()
1032 ldev->gpio.node = sound->parent; aoa_fabric_layout_probe()
1038 ldev->gpio.methods = ftr_gpio_methods; aoa_fabric_layout_probe()
1043 ldev->gpio.methods = pmf_gpio_methods; aoa_fabric_layout_probe()
1063 ldev->gpio.methods->init(&ldev->gpio); aoa_fabric_layout_probe()
1078 ldev->gpio.methods->exit(&ldev->gpio); aoa_fabric_layout_probe()
1106 ldev->gpio.methods->set_notify(&ldev->gpio, aoa_fabric_layout_remove()
1110 ldev->gpio.methods->set_notify(&ldev->gpio, aoa_fabric_layout_remove()
1115 ldev->gpio.methods->exit(&ldev->gpio); aoa_fabric_layout_remove()
1128 if (ldev->gpio.methods && ldev->gpio.methods->all_amps_off) aoa_fabric_layout_suspend()
1129 ldev->gpio.methods->all_amps_off(&ldev->gpio); aoa_fabric_layout_suspend()
1138 if (ldev->gpio.methods && ldev->gpio.methods->all_amps_restore) aoa_fabric_layout_resume()
1139 ldev->gpio.methods->all_amps_restore(&ldev->gpio); aoa_fabric_layout_resume()
/linux-4.1.27/drivers/pinctrl/bcm/
H A Dpinctrl-cygnus-gpio.c27 #include <linux/gpio.h>
119 * @gpio: GPIO pin
123 unsigned gpio, bool set) cygnus_set_bit()
125 unsigned int offset = CYGNUS_GPIO_REG(gpio, reg); cygnus_set_bit()
126 unsigned int shift = CYGNUS_GPIO_SHIFT(gpio); cygnus_set_bit()
138 unsigned gpio) cygnus_get_bit()
140 unsigned int offset = CYGNUS_GPIO_REG(gpio, reg); cygnus_get_bit()
141 unsigned int shift = CYGNUS_GPIO_SHIFT(gpio); cygnus_get_bit()
183 unsigned gpio = d->hwirq; cygnus_gpio_irq_ack() local
184 unsigned int offset = CYGNUS_GPIO_REG(gpio, cygnus_gpio_irq_ack()
186 unsigned int shift = CYGNUS_GPIO_SHIFT(gpio); cygnus_gpio_irq_ack()
202 unsigned gpio = d->hwirq; cygnus_gpio_irq_set_mask() local
204 cygnus_set_bit(chip, CYGNUS_GPIO_INT_MSK_OFFSET, gpio, unmask); cygnus_gpio_irq_set_mask()
233 unsigned gpio = d->hwirq; cygnus_gpio_irq_set_type() local
267 cygnus_set_bit(chip, CYGNUS_GPIO_IN_TYPE_OFFSET, gpio, cygnus_gpio_irq_set_type()
269 cygnus_set_bit(chip, CYGNUS_GPIO_INT_DE_OFFSET, gpio, dual_edge); cygnus_gpio_irq_set_type()
270 cygnus_set_bit(chip, CYGNUS_GPIO_INT_EDGE_OFFSET, gpio, cygnus_gpio_irq_set_type()
275 "gpio:%u level_triggered:%d dual_edge:%d rising_or_high:%d\n", cygnus_gpio_irq_set_type()
276 gpio, level_triggered, dual_edge, rising_or_high); cygnus_gpio_irq_set_type()
282 .name = "bcm-cygnus-gpio",
295 unsigned gpio = gc->base + offset; cygnus_gpio_request() local
301 return pinctrl_request_gpio(gpio); cygnus_gpio_request()
307 unsigned gpio = gc->base + offset; cygnus_gpio_free() local
312 pinctrl_free_gpio(gpio); cygnus_gpio_free()
315 static int cygnus_gpio_direction_input(struct gpio_chip *gc, unsigned gpio) cygnus_gpio_direction_input() argument
321 cygnus_set_bit(chip, CYGNUS_GPIO_OUT_EN_OFFSET, gpio, false); cygnus_gpio_direction_input()
324 dev_dbg(chip->dev, "gpio:%u set input\n", gpio); cygnus_gpio_direction_input()
329 static int cygnus_gpio_direction_output(struct gpio_chip *gc, unsigned gpio, cygnus_gpio_direction_output() argument
336 cygnus_set_bit(chip, CYGNUS_GPIO_OUT_EN_OFFSET, gpio, true); cygnus_gpio_direction_output()
337 cygnus_set_bit(chip, CYGNUS_GPIO_DATA_OUT_OFFSET, gpio, !!(val)); cygnus_gpio_direction_output()
340 dev_dbg(chip->dev, "gpio:%u set output, value:%d\n", gpio, val); cygnus_gpio_direction_output()
345 static void cygnus_gpio_set(struct gpio_chip *gc, unsigned gpio, int val) cygnus_gpio_set() argument
351 cygnus_set_bit(chip, CYGNUS_GPIO_DATA_OUT_OFFSET, gpio, !!(val)); cygnus_gpio_set()
354 dev_dbg(chip->dev, "gpio:%u set, value:%d\n", gpio, val); cygnus_gpio_set()
357 static int cygnus_gpio_get(struct gpio_chip *gc, unsigned gpio) cygnus_gpio_get() argument
360 unsigned int offset = CYGNUS_GPIO_REG(gpio, cygnus_gpio_get()
362 unsigned int shift = CYGNUS_GPIO_SHIFT(gpio); cygnus_gpio_get()
389 static int cygnus_gpio_set_pull(struct cygnus_gpio *chip, unsigned gpio, cygnus_gpio_set_pull() argument
397 cygnus_set_bit(chip, CYGNUS_GPIO_RES_EN_OFFSET, gpio, false); cygnus_gpio_set_pull()
399 cygnus_set_bit(chip, CYGNUS_GPIO_PAD_RES_OFFSET, gpio, cygnus_gpio_set_pull()
401 cygnus_set_bit(chip, CYGNUS_GPIO_RES_EN_OFFSET, gpio, true); cygnus_gpio_set_pull()
406 dev_dbg(chip->dev, "gpio:%u set pullup:%d\n", gpio, pull_up); cygnus_gpio_set_pull()
411 static void cygnus_gpio_get_pull(struct cygnus_gpio *chip, unsigned gpio, cygnus_gpio_get_pull() argument
417 *disable = !cygnus_get_bit(chip, CYGNUS_GPIO_RES_EN_OFFSET, gpio); cygnus_gpio_get_pull()
418 *pull_up = cygnus_get_bit(chip, CYGNUS_GPIO_PAD_RES_OFFSET, gpio); cygnus_gpio_get_pull()
422 static int cygnus_gpio_set_strength(struct cygnus_gpio *chip, unsigned gpio, cygnus_gpio_set_strength() argument
439 offset = CYGNUS_GPIO_REG(gpio, cygnus_gpio_set_strength()
443 shift = CYGNUS_GPIO_SHIFT(gpio); cygnus_gpio_set_strength()
445 dev_dbg(chip->dev, "gpio:%u set drive strength:%d mA\n", gpio, cygnus_gpio_set_strength()
462 static int cygnus_gpio_get_strength(struct cygnus_gpio *chip, unsigned gpio, cygnus_gpio_get_strength() argument
475 offset = CYGNUS_GPIO_REG(gpio, cygnus_gpio_get_strength()
479 shift = CYGNUS_GPIO_SHIFT(gpio); cygnus_gpio_get_strength()
502 unsigned gpio = cygnus_pin_to_gpio(pin); cygnus_pin_config_get() local
509 cygnus_gpio_get_pull(chip, gpio, &disable, &pull_up); cygnus_pin_config_get()
516 cygnus_gpio_get_pull(chip, gpio, &disable, &pull_up); cygnus_pin_config_get()
523 cygnus_gpio_get_pull(chip, gpio, &disable, &pull_up); cygnus_pin_config_get()
530 ret = cygnus_gpio_get_strength(chip, gpio, &arg); cygnus_pin_config_get()
551 unsigned i, gpio = cygnus_pin_to_gpio(pin); cygnus_pin_config_set() local
560 ret = cygnus_gpio_set_pull(chip, gpio, true, false); cygnus_pin_config_set()
566 ret = cygnus_gpio_set_pull(chip, gpio, false, true); cygnus_pin_config_set()
572 ret = cygnus_gpio_set_pull(chip, gpio, false, false); cygnus_pin_config_set()
578 ret = cygnus_gpio_set_strength(chip, gpio, arg); cygnus_pin_config_set()
741 "gpio-%d", i); cygnus_gpio_register_pinconf()
785 .compatible = "brcm,cygnus-ccm-gpio",
789 .compatible = "brcm,cygnus-asiu-gpio",
793 .compatible = "brcm,cygnus-crmu-gpio",
899 .name = "cygnus-gpio",
122 cygnus_set_bit(struct cygnus_gpio *chip, unsigned int reg, unsigned gpio, bool set) cygnus_set_bit() argument
137 cygnus_get_bit(struct cygnus_gpio *chip, unsigned int reg, unsigned gpio) cygnus_get_bit() argument
/linux-4.1.27/drivers/w1/masters/
H A Dw1-gpio.c2 * w1-gpio - GPIO w1 bus master driver
15 #include <linux/w1-gpio.h>
16 #include <linux/gpio.h>
72 { .compatible = "w1-gpio" },
82 int gpio; w1_gpio_probe_dt() local
91 gpio = of_get_gpio(np, 0); w1_gpio_probe_dt()
92 if (gpio < 0) { w1_gpio_probe_dt()
93 if (gpio != -EPROBE_DEFER) w1_gpio_probe_dt()
95 "Failed to parse gpio property for data pin (%d)\n", w1_gpio_probe_dt()
96 gpio); w1_gpio_probe_dt()
98 return gpio; w1_gpio_probe_dt()
100 pdata->pin = gpio; w1_gpio_probe_dt()
102 gpio = of_get_gpio(np, 1); w1_gpio_probe_dt()
103 if (gpio == -EPROBE_DEFER) w1_gpio_probe_dt()
104 return gpio; w1_gpio_probe_dt()
105 /* ignore other errors as the pullup gpio is optional */ w1_gpio_probe_dt()
106 pdata->ext_pullup_enable_pin = gpio; w1_gpio_probe_dt()
230 .name = "w1-gpio",
/linux-4.1.27/arch/blackfin/include/asm/
H A Dgpio.h17 #include <mach/gpio.h>
40 * gpio - GPIO Number between 0 and MAX_BLACKFIN_GPIOS
123 void bfin_special_gpio_free(unsigned gpio);
124 int bfin_special_gpio_request(unsigned gpio, const char *label);
134 int bfin_gpio_pm_wakeup_ctrl(unsigned gpio, unsigned ctrl);
169 * gpio - GPIO Number between 0 and MAX_BLACKFIN_GPIOS
178 int bfin_gpio_irq_request(unsigned gpio, const char *label);
179 void bfin_gpio_irq_free(unsigned gpio);
180 void bfin_gpio_irq_prepare(unsigned gpio);
191 #include <asm-generic/gpio.h> /* cansleep wrappers */
193 static inline int gpio_get_value(unsigned int gpio) gpio_get_value() argument
195 return __gpio_get_value(gpio); gpio_get_value()
198 static inline void gpio_set_value(unsigned int gpio, int value) gpio_set_value() argument
200 __gpio_set_value(gpio, value); gpio_set_value()
203 static inline int gpio_cansleep(unsigned int gpio) gpio_cansleep() argument
205 return __gpio_cansleep(gpio); gpio_cansleep()
208 static inline int gpio_to_irq(unsigned gpio) gpio_to_irq() argument
210 return __gpio_to_irq(gpio); gpio_to_irq()
/linux-4.1.27/arch/microblaze/kernel/
H A Dheartbeat.c47 struct device_node *gpio = NULL; microblaze_setup_heartbeat() local
51 "xlnx,xps-gpio-1.00.a", microblaze_setup_heartbeat()
56 gpio = of_find_compatible_node(NULL, NULL, gpio_list[j]); microblaze_setup_heartbeat()
57 if (gpio) microblaze_setup_heartbeat()
61 if (gpio) { microblaze_setup_heartbeat()
62 base_addr = be32_to_cpup(of_get_property(gpio, "reg", NULL)); microblaze_setup_heartbeat()
67 prop = (int *) of_get_property(gpio, "xlnx,is-bidir", NULL); microblaze_setup_heartbeat()
/linux-4.1.27/include/linux/input/
H A Dgpio_tilt.h22 * @gpios: bitfield of gpio target-states for the value
23 * @axes: array containing the axes settings for the gpio state
28 * and the necessary gpio-state which represent it.
45 * the gpio state for specific tilts
52 * This structure contains gpio-tilt-switch configuration
54 * gpio-tilt input driver.
57 struct gpio *gpios;
/linux-4.1.27/drivers/staging/android/
H A Dtimed_gpio.c22 #include <linux/gpio.h>
33 unsigned gpio; member in struct:timed_gpio_data
43 gpio_direction_output(data->gpio, data->active_low ? 1 : 0); gpio_timer_func()
72 gpio_direction_output(data->gpio, data->active_low ? !value : !!value); gpio_enable()
114 ret = gpio_request(cur_gpio->gpio, cur_gpio->name); timed_gpio_probe()
119 gpio_free(cur_gpio->gpio); timed_gpio_probe()
123 gpio_dat->gpio = cur_gpio->gpio; timed_gpio_probe()
126 gpio_direction_output(gpio_dat->gpio, gpio_dat->active_low); timed_gpio_probe()
136 gpio_free(gpio_data[i].gpio); timed_gpio_probe()
150 gpio_free(gpio_data[i].gpio); timed_gpio_remove()
167 MODULE_DESCRIPTION("timed gpio driver");
/linux-4.1.27/include/media/
H A Ds5k4ecgx.h18 * @gpio : GPIO number
19 * @level: indicates active state of the @gpio
22 int gpio; member in struct:s5k4ecgx_gpio
/linux-4.1.27/drivers/leds/
H A Dleds-lt3593.c8 * Based on leds-gpio.c,
24 #include <linux/gpio.h>
30 unsigned gpio; member in struct:lt3593_led_data
51 gpio_set_value_cansleep(led_dat->gpio, 0); lt3593_led_work()
58 gpio_set_value_cansleep(led_dat->gpio, 0); lt3593_led_work()
60 gpio_set_value_cansleep(led_dat->gpio, 1); lt3593_led_work()
64 gpio_set_value_cansleep(led_dat->gpio, 1); lt3593_led_work()
67 gpio_set_value_cansleep(led_dat->gpio, 0); lt3593_led_work()
69 gpio_set_value_cansleep(led_dat->gpio, 1); lt3593_led_work()
90 if (!gpio_is_valid(template->gpio)) { create_lt3593_led()
91 dev_info(parent, "%s: skipping unavailable LT3593 LED at gpio %d (%s)\n", create_lt3593_led()
92 KBUILD_MODNAME, template->gpio, template->name); create_lt3593_led()
98 led_dat->gpio = template->gpio; create_lt3593_led()
108 ret = devm_gpio_request_one(parent, template->gpio, state ? create_lt3593_led()
121 KBUILD_MODNAME, template->name, template->gpio); create_lt3593_led()
128 if (!gpio_is_valid(led->gpio)) delete_lt3593_led()
H A Dleds-s3c24xx.c17 #include <linux/gpio.h>
22 #include <mach/regs-gpio.h>
23 #include <plat/gpio-cfg.h>
52 gpio_set_value(pd->gpio, state); s3c24xx_led_set()
56 gpio_direction_output(pd->gpio, state); s3c24xx_led_set()
58 gpio_direction_input(pd->gpio); s3c24xx_led_set()
91 ret = devm_gpio_request(&dev->dev, pdata->gpio, "S3C24XX_LED"); s3c24xx_led_probe()
97 s3c_gpio_setpull(pdata->gpio, S3C_GPIO_PULL_NONE); s3c24xx_led_probe()
100 gpio_direction_input(pdata->gpio); s3c24xx_led_probe()
102 gpio_direction_output(pdata->gpio, s3c24xx_led_probe()
/linux-4.1.27/drivers/mmc/core/
H A DMakefile10 quirks.o slot-gpio.o
H A Dslot-gpio.c12 #include <linux/gpio.h>
13 #include <linux/gpio/consumer.h>
17 #include <linux/mmc/slot-gpio.h>
21 #include "slot-gpio.h"
92 * mmc_gpio_request_ro - request a gpio for write-protection
94 * @gpio: gpio number requested
101 int mmc_gpio_request_ro(struct mmc_host *host, unsigned int gpio) mmc_gpio_request_ro() argument
106 if (!gpio_is_valid(gpio)) mmc_gpio_request_ro()
109 ret = devm_gpio_request_one(host->parent, gpio, GPIOF_DIR_IN, mmc_gpio_request_ro()
115 ctx->ro_gpio = gpio_to_desc(gpio); mmc_gpio_request_ro()
171 * mmc_gpio_request_cd - request a gpio for card-detection
173 * @gpio: gpio number requested
185 int mmc_gpio_request_cd(struct mmc_host *host, unsigned int gpio, mmc_gpio_request_cd() argument
191 ret = devm_gpio_request_one(host->parent, gpio, GPIOF_DIR_IN, mmc_gpio_request_cd()
202 ret = gpio_set_debounce(gpio, debounce); mmc_gpio_request_cd()
208 ctx->cd_gpio = gpio_to_desc(gpio); mmc_gpio_request_cd()
215 * mmc_gpiod_request_cd - request a gpio descriptor for card-detection
262 * mmc_gpiod_request_ro - request a gpio descriptor for write protection
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/subdev/bios/
H A Dgpio.c26 #include <subdev/bios/gpio.h>
63 u8 hdr, cnt, xver; /* use gpio version for xpio entry parsing */ dcb_gpio_entry()
64 u16 gpio; dcb_gpio_entry() local
67 gpio = dcb_gpio_table(bios, ver, &hdr, &cnt, len); dcb_gpio_entry()
69 gpio = dcb_xpio_table(bios, idx, &xver, &hdr, &cnt, len); dcb_gpio_entry()
71 if (gpio && ent < cnt) dcb_gpio_entry()
72 return gpio + hdr + (ent * *len); dcb_gpio_entry()
79 struct dcb_gpio_func *gpio) dcb_gpio_parse()
85 *gpio = (struct dcb_gpio_func) { dcb_gpio_parse()
95 *gpio = (struct dcb_gpio_func) { dcb_gpio_parse()
105 *gpio = (struct dcb_gpio_func) { dcb_gpio_parse()
120 u8 *ver, u8 *len, struct dcb_gpio_func *gpio) dcb_gpio_match()
125 while ((data = dcb_gpio_parse(bios, idx, i++, ver, len, gpio))) { dcb_gpio_match()
126 if ((line == 0xff || line == gpio->line) && dcb_gpio_match()
127 (func == 0xff || func == gpio->func)) dcb_gpio_match()
137 *gpio = (struct dcb_gpio_func) { dcb_gpio_match()
78 dcb_gpio_parse(struct nvkm_bios *bios, int idx, int ent, u8 *ver, u8 *len, struct dcb_gpio_func *gpio) dcb_gpio_parse() argument
119 dcb_gpio_match(struct nvkm_bios *bios, int idx, u8 func, u8 line, u8 *ver, u8 *len, struct dcb_gpio_func *gpio) dcb_gpio_match() argument
/linux-4.1.27/arch/mips/boot/dts/include/dt-bindings/gpio/
H A Dtegra-gpio.h2 * This header provides constants for binding nvidia,tegra*-gpio.
7 * The second cell contains standard flag values specified in gpio.h.
13 #include <dt-bindings/gpio/gpio.h>
/linux-4.1.27/arch/mips/include/asm/mach-ar7/
H A Dgpio.h28 #define gpio_to_irq(gpio) -1
36 int ar7_gpio_enable(unsigned gpio);
37 int ar7_gpio_disable(unsigned gpio);
39 #include <asm-generic/gpio.h>
/linux-4.1.27/arch/mips/include/asm/mach-ath25/
H A Dgpio.h4 #include <asm-generic/gpio.h>
/linux-4.1.27/arch/mips/include/asm/mach-bcm47xx/
H A Dgpio.h4 #include <asm-generic/gpio.h>
/linux-4.1.27/arch/mips/lantiq/xway/
H A Dvmmc.c40 int gpio = of_get_gpio_flags(pdev->dev.of_node, vmmc_probe() local
42 if (gpio_request(gpio, "vmmc-relay")) vmmc_probe()
44 dev_info(&pdev->dev, "requested GPIO %d\n", gpio); vmmc_probe()
45 gpio_direction_output(gpio, vmmc_probe()
/linux-4.1.27/arch/powerpc/boot/dts/include/dt-bindings/gpio/
H A Dtegra-gpio.h2 * This header provides constants for binding nvidia,tegra*-gpio.
7 * The second cell contains standard flag values specified in gpio.h.
13 #include <dt-bindings/gpio/gpio.h>
/linux-4.1.27/arch/arm64/boot/dts/include/dt-bindings/gpio/
H A Dtegra-gpio.h2 * This header provides constants for binding nvidia,tegra*-gpio.
7 * The second cell contains standard flag values specified in gpio.h.
13 #include <dt-bindings/gpio/gpio.h>
/linux-4.1.27/arch/metag/boot/dts/include/dt-bindings/gpio/
H A Dtegra-gpio.h2 * This header provides constants for binding nvidia,tegra*-gpio.
7 * The second cell contains standard flag values specified in gpio.h.
13 #include <dt-bindings/gpio/gpio.h>
/linux-4.1.27/arch/arm/mach-tegra/
H A Dboard-paz00.c20 #include <linux/gpio/machine.h>
22 #include <linux/rfkill-gpio.h>
42 GPIO_LOOKUP("tegra-gpio", 25, "reset", 0),
43 GPIO_LOOKUP("tegra-gpio", 85, "shutdown", 0),
/linux-4.1.27/arch/arm/boot/dts/include/dt-bindings/gpio/
H A Dtegra-gpio.h2 * This header provides constants for binding nvidia,tegra*-gpio.
7 * The second cell contains standard flag values specified in gpio.h.
13 #include <dt-bindings/gpio/gpio.h>
/linux-4.1.27/include/dt-bindings/gpio/
H A Dtegra-gpio.h2 * This header provides constants for binding nvidia,tegra*-gpio.
7 * The second cell contains standard flag values specified in gpio.h.
13 #include <dt-bindings/gpio/gpio.h>
/linux-4.1.27/drivers/staging/iio/adc/
H A Dad7606.h20 * @gpio_convst: number of gpio connected to the CONVST pin
21 * @gpio_reset: gpio connected to the RESET pin, if not used set to -1
22 * @gpio_range: gpio connected to the RANGE pin, if not used set to -1
23 * @gpio_os0: gpio connected to the OS0 pin, if not used set to -1
24 * @gpio_os1: gpio connected to the OS1 pin, if not used set to -1
25 * @gpio_os2: gpio connected to the OS2 pin, if not used set to -1
26 * @gpio_frstdata: gpio connected to the FRSTDAT pin, if not used set to -1
27 * @gpio_stby: gpio connected to the STBY pin, if not used set to -1
/linux-4.1.27/arch/x86/platform/geode/
H A Dgeos.c25 #include <linux/gpio.h>
35 .gpio = 3,
51 .name = "gpio-keys-polled",
61 .gpio = 6,
67 .gpio = 25,
73 .gpio = 27,
85 .name = "leds-gpio",
97 /* Setup LED control through leds-gpio driver */ register_geos()
/linux-4.1.27/include/linux/spi/
H A Dspi_oc_tiny.h8 * @gpio_cs_count: number of gpio pins used for chipselect.
9 * @gpio_cs: array of gpio pins used for chipselect.
/linux-4.1.27/arch/arm/include/asm/
H A Dgpio.h8 /* Note: this may rely upon the value of ARCH_NR_GPIOS set in mach/gpio.h */
9 #include <asm-generic/gpio.h>
/linux-4.1.27/arch/arm/mach-davinci/
H A Dboard-dm644x-evm.c15 #include <linux/gpio.h>
302 evm_led_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c) evm_led_setup() argument
308 leds->gpio = gpio++; evm_led_setup()
315 evm_led_dev = platform_device_alloc("leds-gpio", 0); evm_led_setup()
329 evm_led_teardown(struct i2c_client *client, int gpio, unsigned ngpio, void *c) evm_led_teardown() argument
361 evm_u18_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c) evm_u18_setup() argument
366 sw_gpio = gpio + 7; evm_u18_setup()
378 gpio_request(gpio + 3, "pll_fs2"); evm_u18_setup()
379 gpio_direction_output(gpio + 3, 0); evm_u18_setup()
381 gpio_request(gpio + 2, "pll_fs1"); evm_u18_setup()
382 gpio_direction_output(gpio + 2, 0); evm_u18_setup()
384 gpio_request(gpio + 1, "pll_sr"); evm_u18_setup()
385 gpio_direction_output(gpio + 1, 0); evm_u18_setup()
391 evm_u18_teardown(struct i2c_client *client, int gpio, unsigned ngpio, void *c) evm_u18_teardown() argument
393 gpio_free(gpio + 1); evm_u18_teardown()
394 gpio_free(gpio + 2); evm_u18_teardown()
395 gpio_free(gpio + 3); evm_u18_teardown()
415 evm_u35_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c) evm_u35_setup() argument
418 gpio_request(gpio + 0, "nDRV_VBUS"); evm_u35_setup()
419 gpio_direction_output(gpio + 0, 1); evm_u35_setup()
422 gpio_request(gpio + 1, "VDDIMX_EN"); evm_u35_setup()
423 gpio_direction_output(gpio + 1, 1); evm_u35_setup()
426 gpio_request(gpio + 2, "VLYNQ_EN"); evm_u35_setup()
427 gpio_direction_output(gpio + 2, 1); evm_u35_setup()
430 gpio_request(gpio + 3, "nCF_RESET"); evm_u35_setup()
431 gpio_direction_output(gpio + 3, 0); evm_u35_setup()
436 gpio_request(gpio + 5, "WLAN_RESET"); evm_u35_setup()
437 gpio_direction_output(gpio + 5, 1); evm_u35_setup()
440 gpio_request(gpio + 6, "nATA_SEL"); evm_u35_setup()
441 gpio_direction_output(gpio + 6, 0); evm_u35_setup()
444 gpio_request(gpio + 7, "nCF_SEL"); evm_u35_setup()
445 gpio_direction_output(gpio + 7, 1); evm_u35_setup()
451 evm_u35_teardown(struct i2c_client *client, int gpio, unsigned ngpio, void *c) evm_u35_teardown() argument
453 gpio_free(gpio + 7); evm_u35_teardown()
454 gpio_free(gpio + 6); evm_u35_teardown()
455 gpio_free(gpio + 5); evm_u35_teardown()
456 gpio_free(gpio + 3); evm_u35_teardown()
457 gpio_free(gpio + 2); evm_u35_teardown()
458 gpio_free(gpio + 1); evm_u35_teardown()
459 gpio_free(gpio + 0); evm_u35_teardown()
/linux-4.1.27/drivers/staging/fbtft/
H A Dfb_agm1264k-fl.c20 #include <linux/gpio.h>
38 #define EPIN gpio.wr
39 #define RS gpio.dc
40 #define RW gpio.aux[2]
41 #define CS0 gpio.aux[0]
42 #define CS1 gpio.aux[1]
94 if (par->gpio.reset == -1) reset()
99 gpio_set_value(par->gpio.reset, 0); reset()
101 gpio_set_value(par->gpio.reset, 1); reset()
115 "Missing info about 'wr' (aka E) gpio. Aborting.\n"); verify_gpios()
119 if (par->gpio.db[i] < 0) { verify_gpios()
121 "Missing info about 'db[%i]' gpio. Aborting.\n", verify_gpios()
128 "Missing info about 'cs0' gpio. Aborting.\n"); verify_gpios()
133 "Missing info about 'cs1' gpio. Aborting.\n"); verify_gpios()
138 "Missing info about 'rw' gpio. Aborting.\n"); verify_gpios()
146 request_gpios_match(struct fbtft_par *par, const struct fbtft_gpio *gpio) request_gpios_match() argument
149 "%s('%s')\n", __func__, gpio->name); request_gpios_match()
151 if (strcasecmp(gpio->name, "wr") == 0) { request_gpios_match()
153 par->EPIN = gpio->gpio; request_gpios_match()
155 } else if (strcasecmp(gpio->name, "cs0") == 0) { request_gpios_match()
157 par->CS0 = gpio->gpio; request_gpios_match()
159 } else if (strcasecmp(gpio->name, "cs1") == 0) { request_gpios_match()
161 par->CS1 = gpio->gpio; request_gpios_match()
167 else if (strcasecmp(gpio->name, "rw") == 0) { request_gpios_match()
168 par->RW = gpio->gpio; request_gpios_match()
431 gpio_set_value(par->gpio.db[i], data & (1 << i)); write()
/linux-4.1.27/include/linux/mfd/
H A Dasic3.h51 #define ASIC3_TO_GPIO(gpio) (NR_BUILTIN_GPIO + (gpio))
58 #define ASIC3_GPIO(bank, gpio) \
59 ((ASIC3_GPIOS_PER_BANK * ASIC3_GPIO_BANK_##bank) + (gpio))
60 #define ASIC3_GPIO_bit(gpio) (1 << (gpio & 0xf))
73 #define ASIC3_GPIO_TO_BANK(gpio) ((gpio) >> 4)
74 #define ASIC3_GPIO_TO_BIT(gpio) ((gpio) - \
75 (ASIC3_GPIOS_PER_BANK * ((gpio) >> 4)))
76 #define ASIC3_GPIO_TO_MASK(gpio) (1 << ASIC3_GPIO_TO_BIT(gpio))
77 #define ASIC3_GPIO_TO_BASE(gpio) (ASIC3_GPIO_A_BASE + (((gpio) >> 4) * 0x0100))
101 * Bits 0..6 gpio number
111 #define ASIC3_CONFIG_GPIO(gpio, alt, dir, init) (((gpio) & 0x7f) \
114 #define ASIC3_CONFIG_GPIO_DEFAULT(gpio, dir, init) \
115 ASIC3_CONFIG_GPIO((gpio), 0, (dir), (init))
116 #define ASIC3_CONFIG_GPIO_DEFAULT_OUT(gpio, init) \
117 ASIC3_CONFIG_GPIO((gpio), 0, 1, (init))
/linux-4.1.27/drivers/media/rc/
H A Dgpio-ir-recv.c17 #include <linux/gpio.h>
24 #include <media/gpio-ir-recv.h>
26 #define GPIO_IR_DRIVER_NAME "gpio-rc-recv"
44 int gpio; gpio_ir_recv_get_devtree_pdata() local
46 gpio = of_get_gpio_flags(np, 0, &flags); gpio_ir_recv_get_devtree_pdata()
47 if (gpio < 0) { gpio_ir_recv_get_devtree_pdata()
48 if (gpio != -EPROBE_DEFER) gpio_ir_recv_get_devtree_pdata()
49 dev_err(dev, "Failed to get gpio flags (%d)\n", gpio); gpio_ir_recv_get_devtree_pdata()
50 return gpio; gpio_ir_recv_get_devtree_pdata()
53 pdata->gpio_nr = gpio; gpio_ir_recv_get_devtree_pdata()
63 { .compatible = "gpio-ir-receiver", },
157 rc = gpio_request(pdata->gpio_nr, "gpio-ir-recv"); gpio_ir_recv_probe()
175 "gpio-ir-recv-irq", gpio_dev); gpio_ir_recv_probe()
/linux-4.1.27/drivers/usb/phy/
H A Dphy-gpio-vbus-usb.c2 * gpio-vbus.c - simple GPIO VBUS sensing driver for B peripheral devices
13 #include <linux/gpio.h>
105 int gpio, status, vbus; gpio_vbus_work() local
120 gpio = pdata->gpio_pullup; gpio_vbus_work()
132 if (gpio_is_valid(gpio)) gpio_vbus_work()
133 gpio_set_value(gpio, !pdata->gpio_pullup_inverted); gpio_vbus_work()
140 if (gpio_is_valid(gpio)) gpio_vbus_work()
141 gpio_set_value(gpio, pdata->gpio_pullup_inverted); gpio_vbus_work()
183 int gpio; gpio_vbus_set_peripheral() local
188 gpio = pdata->gpio_pullup; gpio_vbus_set_peripheral()
195 if (gpio_is_valid(gpio)) gpio_vbus_set_peripheral()
196 gpio_set_value(gpio, pdata->gpio_pullup_inverted); gpio_vbus_set_peripheral()
251 int err, gpio, irq; gpio_vbus_probe() local
256 gpio = pdata->gpio_vbus; gpio_vbus_probe()
270 gpio_vbus->phy.label = "gpio-vbus"; gpio_vbus_probe()
279 err = devm_gpio_request(&pdev->dev, gpio, "vbus_detect"); gpio_vbus_probe()
281 dev_err(&pdev->dev, "can't request vbus gpio %d, err: %d\n", gpio_vbus_probe()
282 gpio, err); gpio_vbus_probe()
285 gpio_direction_input(gpio); gpio_vbus_probe()
292 irq = gpio_to_irq(gpio); gpio_vbus_probe()
299 gpio = pdata->gpio_pullup; gpio_vbus_probe()
300 if (gpio_is_valid(gpio)) { gpio_vbus_probe()
301 err = devm_gpio_request(&pdev->dev, gpio, "udc_pullup"); gpio_vbus_probe()
304 "can't request pullup gpio %d, err: %d\n", gpio_vbus_probe()
305 gpio, err); gpio_vbus_probe()
308 gpio_direction_output(gpio, pdata->gpio_pullup_inverted); gpio_vbus_probe()
380 MODULE_ALIAS("platform:gpio-vbus");
384 .name = "gpio-vbus",
/linux-4.1.27/include/linux/regulator/
H A Dgpio-regulator.h2 * gpio-regulator.h
31 * @gpios: bitfield of gpio target-states for the value
34 * and the necessary gpio-state to achieve it.
60 * the gpio state for specific voltages
65 * This structure contains gpio-voltage regulator configuration
67 * gpio-voltage regulator driver.
77 struct gpio *gpios;
/linux-4.1.27/drivers/power/
H A Dgpio-charger.c17 #include <linux/gpio.h>
28 #include <linux/power/gpio-charger.h>
61 val->intval = !!gpio_get_value_cansleep(pdata->gpio); gpio_charger_get_property()
93 pdata->gpio = of_get_gpio_flags(np, 0, &flags); gpio_charger_parse_dt()
94 if (pdata->gpio < 0) { gpio_charger_parse_dt()
95 if (pdata->gpio != -EPROBE_DEFER) gpio_charger_parse_dt()
96 dev_err(dev, "could not get charger gpio\n"); gpio_charger_parse_dt()
97 return ERR_PTR(pdata->gpio); gpio_charger_parse_dt()
147 if (!gpio_is_valid(pdata->gpio)) { gpio_charger_probe()
148 dev_err(&pdev->dev, "Invalid gpio pin\n"); gpio_charger_probe()
161 charger_desc->name = pdata->name ? pdata->name : "gpio-charger"; gpio_charger_probe()
172 ret = gpio_request(pdata->gpio, dev_name(&pdev->dev)); gpio_charger_probe()
174 dev_err(&pdev->dev, "Failed to request gpio pin: %d\n", ret); gpio_charger_probe()
177 ret = gpio_direction_input(pdata->gpio); gpio_charger_probe()
179 dev_err(&pdev->dev, "Failed to set gpio to input: %d\n", ret); gpio_charger_probe()
194 irq = gpio_to_irq(pdata->gpio); gpio_charger_probe()
212 gpio_free(pdata->gpio); gpio_charger_probe()
226 gpio_free(gpio_charger->pdata->gpio); gpio_charger_remove()
260 { .compatible = "gpio-charger" },
269 .name = "gpio-charger",
280 MODULE_ALIAS("platform:gpio-charger");
/linux-4.1.27/drivers/media/pci/bt8xx/
H A Dbttv-input.c56 u32 gpio,data; ir_handle_key() local
58 /* read gpio value */ ir_handle_key()
59 gpio = bttv_gpio_read(&btv->c); ir_handle_key()
61 if (ir->last_gpio == gpio) ir_handle_key()
63 ir->last_gpio = gpio; ir_handle_key()
67 data = ir_extract_bits(gpio, ir->mask_keycode); ir_handle_key()
68 dprintk("irq gpio=0x%x code=%d | %s%s%s\n", ir_handle_key()
69 gpio, data, ir_handle_key()
71 (gpio & ir->mask_keydown) ? " down" : "", ir_handle_key()
72 (gpio & ir->mask_keyup) ? " up" : ""); ir_handle_key()
74 if ((ir->mask_keydown && (gpio & ir->mask_keydown)) || ir_handle_key()
75 (ir->mask_keyup && !(gpio & ir->mask_keyup))) { ir_handle_key()
90 u32 gpio, data, keyup; ir_enltv_handle_key() local
92 /* read gpio value */ ir_enltv_handle_key()
93 gpio = bttv_gpio_read(&btv->c); ir_enltv_handle_key()
96 data = ir_extract_bits(gpio, ir->mask_keycode); ir_enltv_handle_key()
99 keyup = (gpio & ir->mask_keyup) ? 1 << 31 : 0; ir_enltv_handle_key()
102 dprintk("gpio=0x%x code=%d | %s\n", ir_enltv_handle_key()
103 gpio, data, ir_enltv_handle_key()
104 (gpio & ir->mask_keyup) ? " up" : "up/down"); ir_enltv_handle_key()
113 dprintk("(cnt) gpio=0x%x code=%d | %s\n", ir_enltv_handle_key()
114 gpio, data, ir_enltv_handle_key()
115 (gpio & ir->mask_keyup) ? " up" : "down"); ir_enltv_handle_key()
253 u32 gpio; bttv_rc5_irq() local
257 /* read gpio port */ bttv_rc5_irq()
258 gpio = bttv_gpio_read(&btv->c); bttv_rc5_irq()
273 gap, (gpio & 0x20) ? "mark" : "space"); bttv_rc5_irq()
276 if (!(gpio & 0x20)) bttv_rc5_irq()
299 bttv_gpio_write(&btv->c, gpio & ~(1 << 4)); bttv_rc5_irq()
300 bttv_gpio_write(&btv->c, gpio | (1 << 4)); bttv_rc5_irq()
326 u32 gpio; bttv_ir_stop() local
330 gpio = bttv_gpio_read(&btv->c); bttv_ir_stop()
331 bttv_gpio_write(&btv->c, gpio & ~(1 << 4)); bttv_ir_stop()
528 u32 gpio; bttv_input_init() local
531 gpio = bttv_gpio_read(&btv->c); bttv_input_init()
532 bttv_gpio_write(&btv->c, gpio & ~(1 << 4)); bttv_input_init()
533 bttv_gpio_write(&btv->c, gpio | (1 << 4)); bttv_input_init()
/linux-4.1.27/drivers/watchdog/
H A Dgpio_wdt.c31 int gpio; member in struct:gpio_wdt_priv
46 gpio_set_value_cansleep(priv->gpio, !priv->active_low); gpio_wdt_disable()
50 gpio_direction_input(priv->gpio); gpio_wdt_disable()
56 gpio_direction_output(priv->gpio, priv->state); gpio_wdt_start_impl()
118 gpio_set_value_cansleep(priv->gpio, priv->state); gpio_wdt_hwping()
122 gpio_set_value_cansleep(priv->gpio, !priv->active_low); gpio_wdt_hwping()
124 gpio_set_value_cansleep(priv->gpio, priv->active_low); gpio_wdt_hwping()
176 priv->gpio = of_get_gpio_flags(pdev->dev.of_node, 0, &flags); gpio_wdt_probe()
177 if (!gpio_is_valid(priv->gpio)) gpio_wdt_probe()
178 return priv->gpio; gpio_wdt_probe()
195 ret = devm_gpio_request_one(&pdev->dev, priv->gpio, f, gpio_wdt_probe()
257 { .compatible = "linux,wdt-gpio", },
264 .name = "gpio-wdt",
/linux-4.1.27/arch/arm/mach-orion5x/
H A Dls-chl-setup.c18 #include <linux/gpio-fan.h>
22 #include <linux/gpio.h>
92 .gpio = LSCHL_GPIO_LED_ALARM,
96 .gpio = LSCHL_GPIO_LED_INFO,
100 .gpio = LSCHL_GPIO_LED_FUNC,
104 .gpio = LSCHL_GPIO_LED_PWR,
114 .name = "leds-gpio",
166 .gpio = LSCHL_GPIO_KEY_POWER,
172 .gpio = LSCHL_GPIO_KEY_AUTOPOWER,
178 .gpio = LSCHL_GPIO_KEY_FUNC,
190 .name = "gpio-keys",
209 .gpio = LSCHL_GPIO_FAN_LOCK,
241 .name = "gpio-fan",
/linux-4.1.27/net/rfkill/
H A Drfkill-gpio.c19 #include <linux/gpio.h>
28 #include <linux/gpio/consumer.h>
30 #include <linux/rfkill-gpio.h>
95 struct gpio_desc *gpio; rfkill_gpio_probe() local
115 gpio = devm_gpiod_get(&pdev->dev, "reset"); rfkill_gpio_probe()
116 if (!IS_ERR(gpio)) { rfkill_gpio_probe()
117 ret = gpiod_direction_output(gpio, 0); rfkill_gpio_probe()
120 rfkill->reset_gpio = gpio; rfkill_gpio_probe()
123 gpio = devm_gpiod_get(&pdev->dev, "shutdown"); rfkill_gpio_probe()
124 if (!IS_ERR(gpio)) { rfkill_gpio_probe()
125 ret = gpiod_direction_output(gpio, 0); rfkill_gpio_probe()
128 rfkill->shutdown_gpio = gpio; rfkill_gpio_probe()
193 MODULE_DESCRIPTION("gpio rfkill");
/linux-4.1.27/include/linux/pinctrl/
H A Dconsumer.h6 * Based on bits of regulator core, gpio core and clk core
28 extern int pinctrl_request_gpio(unsigned gpio);
29 extern void pinctrl_free_gpio(unsigned gpio);
30 extern int pinctrl_gpio_direction_input(unsigned gpio);
31 extern int pinctrl_gpio_direction_output(unsigned gpio);
64 static inline int pinctrl_request_gpio(unsigned gpio) pinctrl_request_gpio() argument
69 static inline void pinctrl_free_gpio(unsigned gpio) pinctrl_free_gpio() argument
73 static inline int pinctrl_gpio_direction_input(unsigned gpio) pinctrl_gpio_direction_input() argument
78 static inline int pinctrl_gpio_direction_output(unsigned gpio) pinctrl_gpio_direction_output() argument
/linux-4.1.27/drivers/net/wireless/rtl818x/rtl8187/
H A Drfkill.c25 u8 gpio; rtl8187_is_radio_enabled() local
27 gpio = rtl818x_ioread8(priv, &priv->map->GPIO0); rtl8187_is_radio_enabled()
28 rtl818x_iowrite8(priv, &priv->map->GPIO0, gpio & ~priv->rfkill_mask); rtl8187_is_radio_enabled()
29 gpio = rtl818x_ioread8(priv, &priv->map->GPIO1); rtl8187_is_radio_enabled()
31 return gpio & priv->rfkill_mask; rtl8187_is_radio_enabled()

Completed in 2765 milliseconds

12345678910