Lines Matching defs:mi

40 	struct gpio_event_matrix_info *mi = kp->keypad_info;
41 int key_index = out * mi->ninputs + in;
42 unsigned short keyentry = mi->keymap[key_index];
47 if (mi->flags & GPIOKPF_PRINT_PHANTOM_KEYS)
50 mi->output_gpios[out], mi->input_gpios[in]);
53 if (mi->flags & GPIOKPF_PRINT_PHANTOM_KEYS)
56 mi->output_gpios[out], mi->input_gpios[in]);
109 struct gpio_event_matrix_info *mi = kp->keypad_info;
111 unsigned short keyentry = mi->keymap[key_index];
117 if (mi->flags & GPIOKPF_PRINT_UNMAPPED_KEYS)
120 out, in, mi->output_gpios[out],
121 mi->input_gpios[in], pressed);
123 if (mi->flags & GPIOKPF_PRINT_MAPPED_KEYS)
126 out, in, mi->output_gpios[out],
127 mi->input_gpios[in], pressed);
147 struct gpio_event_matrix_info *mi = kp->keypad_info;
148 unsigned gpio_keypad_flags = mi->flags;
152 if (out == mi->noutputs) {
158 key_index = out * mi->ninputs;
159 for (in = 0; in < mi->ninputs; in++, key_index++) {
160 gpio = mi->input_gpios[in];
170 gpio = mi->output_gpios[out];
178 if (out < mi->noutputs) {
179 gpio = mi->output_gpios[out];
184 hrtimer_start(timer, mi->settle_time, HRTIMER_MODE_REL);
189 hrtimer_start(&kp->timer, mi->debounce_delay,
199 for (out = 0; out < mi->noutputs; out++)
200 for (in = 0; in < mi->ninputs; in++, key_index++)
205 hrtimer_start(timer, mi->poll_time, HRTIMER_MODE_REL);
210 for (out = 0; out < mi->noutputs; out++) {
212 gpio_set_value(mi->output_gpios[out], polarity);
214 gpio_direction_output(mi->output_gpios[out], polarity);
216 for (in = 0; in < mi->ninputs; in++)
217 enable_irq(gpio_to_irq(mi->input_gpios[in]));
226 struct gpio_event_matrix_info *mi = kp->keypad_info;
227 unsigned gpio_keypad_flags = mi->flags;
236 for (i = 0; i < mi->ninputs; i++)
237 disable_irq_nosync(gpio_to_irq(mi->input_gpios[i]));
238 for (i = 0; i < mi->noutputs; i++) {
240 gpio_set_value(mi->output_gpios[i],
243 gpio_direction_input(mi->output_gpios[i]);
256 struct gpio_event_matrix_info *mi = kp->keypad_info;
258 switch (mi->flags & (GPIOKPF_ACTIVE_HIGH|GPIOKPF_LEVEL_TRIGGERED_IRQ)) {
273 for (i = 0; i < mi->ninputs; i++) {
274 err = irq = gpio_to_irq(mi->input_gpios[i]);
281 "irq %d\n", mi->input_gpios[i], irq);
287 "irq %d\n", mi->input_gpios[i], irq);
297 for (i = mi->noutputs - 1; i >= 0; i--) {
298 free_irq(gpio_to_irq(mi->input_gpios[i]), kp);
313 struct gpio_event_matrix_info *mi;
315 mi = container_of(info, struct gpio_event_matrix_info, info);
322 if (mi->keymap == NULL ||
323 mi->input_gpios == NULL ||
324 mi->output_gpios == NULL) {
329 key_count = mi->ninputs * mi->noutputs;
339 kp->keypad_info = mi;
341 unsigned short keyentry = mi->keymap[i];
356 for (i = 0; i < mi->noutputs; i++) {
357 err = gpio_request(mi->output_gpios[i], "gpio_kp_out");
360 "output %d\n", mi->output_gpios[i]);
363 if (gpio_cansleep(mi->output_gpios[i])) {
365 " can sleep\n", mi->output_gpios[i]);
369 if (mi->flags & GPIOKPF_DRIVE_INACTIVE)
370 err = gpio_direction_output(mi->output_gpios[i],
371 !(mi->flags & GPIOKPF_ACTIVE_HIGH));
373 err = gpio_direction_input(mi->output_gpios[i]);
376 "output %d\n", mi->output_gpios[i]);
380 for (i = 0; i < mi->ninputs; i++) {
381 err = gpio_request(mi->input_gpios[i], "gpio_kp_in");
384 "input %d\n", mi->input_gpios[i]);
387 err = gpio_direction_input(mi->input_gpios[i]);
390 " for input %d\n", mi->input_gpios[i]);
394 kp->current_output = mi->noutputs;
419 for (i = mi->noutputs - 1; i >= 0; i--)
420 free_irq(gpio_to_irq(mi->input_gpios[i]), kp);
424 for (i = mi->noutputs - 1; i >= 0; i--) {
426 gpio_free(mi->input_gpios[i]);
430 for (i = mi->noutputs - 1; i >= 0; i--) {
432 gpio_free(mi->output_gpios[i]);