Searched refs:kpad (Results 1 - 3 of 3) sorted by relevance

/linux-4.4.14/drivers/input/keyboard/
H A Dadp5588-keys.c76 struct adp5588_kpad *kpad = container_of(chip, struct adp5588_kpad, gc); adp5588_gpio_get_value() local
77 unsigned int bank = ADP5588_BANK(kpad->gpiomap[off]); adp5588_gpio_get_value()
78 unsigned int bit = ADP5588_BIT(kpad->gpiomap[off]); adp5588_gpio_get_value()
81 mutex_lock(&kpad->gpio_lock); adp5588_gpio_get_value()
83 if (kpad->dir[bank] & bit) adp5588_gpio_get_value()
84 val = kpad->dat_out[bank]; adp5588_gpio_get_value()
86 val = adp5588_read(kpad->client, GPIO_DAT_STAT1 + bank); adp5588_gpio_get_value()
88 mutex_unlock(&kpad->gpio_lock); adp5588_gpio_get_value()
96 struct adp5588_kpad *kpad = container_of(chip, struct adp5588_kpad, gc); adp5588_gpio_set_value() local
97 unsigned int bank = ADP5588_BANK(kpad->gpiomap[off]); adp5588_gpio_set_value()
98 unsigned int bit = ADP5588_BIT(kpad->gpiomap[off]); adp5588_gpio_set_value()
100 mutex_lock(&kpad->gpio_lock); adp5588_gpio_set_value()
103 kpad->dat_out[bank] |= bit; adp5588_gpio_set_value()
105 kpad->dat_out[bank] &= ~bit; adp5588_gpio_set_value()
107 adp5588_write(kpad->client, GPIO_DAT_OUT1 + bank, adp5588_gpio_set_value()
108 kpad->dat_out[bank]); adp5588_gpio_set_value()
110 mutex_unlock(&kpad->gpio_lock); adp5588_gpio_set_value()
115 struct adp5588_kpad *kpad = container_of(chip, struct adp5588_kpad, gc); adp5588_gpio_direction_input() local
116 unsigned int bank = ADP5588_BANK(kpad->gpiomap[off]); adp5588_gpio_direction_input()
117 unsigned int bit = ADP5588_BIT(kpad->gpiomap[off]); adp5588_gpio_direction_input()
120 mutex_lock(&kpad->gpio_lock); adp5588_gpio_direction_input()
122 kpad->dir[bank] &= ~bit; adp5588_gpio_direction_input()
123 ret = adp5588_write(kpad->client, GPIO_DIR1 + bank, kpad->dir[bank]); adp5588_gpio_direction_input()
125 mutex_unlock(&kpad->gpio_lock); adp5588_gpio_direction_input()
133 struct adp5588_kpad *kpad = container_of(chip, struct adp5588_kpad, gc); adp5588_gpio_direction_output() local
134 unsigned int bank = ADP5588_BANK(kpad->gpiomap[off]); adp5588_gpio_direction_output()
135 unsigned int bit = ADP5588_BIT(kpad->gpiomap[off]); adp5588_gpio_direction_output()
138 mutex_lock(&kpad->gpio_lock); adp5588_gpio_direction_output()
140 kpad->dir[bank] |= bit; adp5588_gpio_direction_output()
143 kpad->dat_out[bank] |= bit; adp5588_gpio_direction_output()
145 kpad->dat_out[bank] &= ~bit; adp5588_gpio_direction_output()
147 ret = adp5588_write(kpad->client, GPIO_DAT_OUT1 + bank, adp5588_gpio_direction_output()
148 kpad->dat_out[bank]); adp5588_gpio_direction_output()
149 ret |= adp5588_write(kpad->client, GPIO_DIR1 + bank, adp5588_gpio_direction_output()
150 kpad->dir[bank]); adp5588_gpio_direction_output()
152 mutex_unlock(&kpad->gpio_lock); adp5588_gpio_direction_output()
157 static int adp5588_build_gpiomap(struct adp5588_kpad *kpad, adp5588_build_gpiomap() argument
172 for (i = 0; i < kpad->gpimapsize; i++) adp5588_build_gpiomap()
173 pin_used[kpad->gpimap[i].pin - GPI_PIN_BASE] = true; adp5588_build_gpiomap()
177 kpad->gpiomap[n_unused++] = i; adp5588_build_gpiomap()
182 static int adp5588_gpio_add(struct adp5588_kpad *kpad) adp5588_gpio_add() argument
184 struct device *dev = &kpad->client->dev; adp5588_gpio_add()
192 kpad->gc.ngpio = adp5588_build_gpiomap(kpad, pdata); adp5588_gpio_add()
193 if (kpad->gc.ngpio == 0) { adp5588_gpio_add()
198 kpad->export_gpio = true; adp5588_gpio_add()
200 kpad->gc.direction_input = adp5588_gpio_direction_input; adp5588_gpio_add()
201 kpad->gc.direction_output = adp5588_gpio_direction_output; adp5588_gpio_add()
202 kpad->gc.get = adp5588_gpio_get_value; adp5588_gpio_add()
203 kpad->gc.set = adp5588_gpio_set_value; adp5588_gpio_add()
204 kpad->gc.can_sleep = 1; adp5588_gpio_add()
206 kpad->gc.base = gpio_data->gpio_start; adp5588_gpio_add()
207 kpad->gc.label = kpad->client->name; adp5588_gpio_add()
208 kpad->gc.owner = THIS_MODULE; adp5588_gpio_add()
209 kpad->gc.names = gpio_data->names; adp5588_gpio_add()
211 mutex_init(&kpad->gpio_lock); adp5588_gpio_add()
213 error = gpiochip_add(&kpad->gc); adp5588_gpio_add()
220 kpad->dat_out[i] = adp5588_read(kpad->client, adp5588_gpio_add()
222 kpad->dir[i] = adp5588_read(kpad->client, GPIO_DIR1 + i); adp5588_gpio_add()
226 error = gpio_data->setup(kpad->client, adp5588_gpio_add()
227 kpad->gc.base, kpad->gc.ngpio, adp5588_gpio_add()
236 static void adp5588_gpio_remove(struct adp5588_kpad *kpad) adp5588_gpio_remove() argument
238 struct device *dev = &kpad->client->dev; adp5588_gpio_remove()
243 if (!kpad->export_gpio) adp5588_gpio_remove()
247 error = gpio_data->teardown(kpad->client, adp5588_gpio_remove()
248 kpad->gc.base, kpad->gc.ngpio, adp5588_gpio_remove()
254 gpiochip_remove(&kpad->gc); adp5588_gpio_remove()
257 static inline int adp5588_gpio_add(struct adp5588_kpad *kpad) adp5588_gpio_add() argument
262 static inline void adp5588_gpio_remove(struct adp5588_kpad *kpad) adp5588_gpio_remove() argument
267 static void adp5588_report_events(struct adp5588_kpad *kpad, int ev_cnt) adp5588_report_events() argument
272 int key = adp5588_read(kpad->client, Key_EVENTA + i); adp5588_report_events()
276 for (j = 0; j < kpad->gpimapsize; j++) { adp5588_report_events()
277 if (key_val == kpad->gpimap[j].pin) { adp5588_report_events()
278 input_report_switch(kpad->input, adp5588_report_events()
279 kpad->gpimap[j].sw_evt, adp5588_report_events()
285 input_report_key(kpad->input, adp5588_report_events()
286 kpad->keycode[key_val - 1], adp5588_report_events()
294 struct adp5588_kpad *kpad = container_of(work, adp5588_work() local
296 struct i2c_client *client = kpad->client; adp5588_work()
307 adp5588_report_events(kpad, ev_cnt); adp5588_work()
308 input_sync(kpad->input); adp5588_work()
316 struct adp5588_kpad *kpad = handle; adp5588_irq() local
324 schedule_delayed_work(&kpad->work, kpad->delay); adp5588_irq()
393 static void adp5588_report_switch_state(struct adp5588_kpad *kpad) adp5588_report_switch_state() argument
395 int gpi_stat1 = adp5588_read(kpad->client, GPIO_DAT_STAT1); adp5588_report_switch_state()
396 int gpi_stat2 = adp5588_read(kpad->client, GPIO_DAT_STAT2); adp5588_report_switch_state()
397 int gpi_stat3 = adp5588_read(kpad->client, GPIO_DAT_STAT3); adp5588_report_switch_state()
401 for (i = 0; i < kpad->gpimapsize; i++) { adp5588_report_switch_state()
402 unsigned short pin = kpad->gpimap[i].pin; adp5588_report_switch_state()
416 dev_err(&kpad->client->dev, adp5588_report_switch_state()
422 input_report_switch(kpad->input, adp5588_report_switch_state()
423 kpad->gpimap[i].sw_evt, adp5588_report_switch_state()
427 input_sync(kpad->input); adp5588_report_switch_state()
434 struct adp5588_kpad *kpad; adp5588_probe() local
499 kpad = kzalloc(sizeof(*kpad), GFP_KERNEL); adp5588_probe()
501 if (!kpad || !input) { adp5588_probe()
506 kpad->client = client; adp5588_probe()
507 kpad->input = input; adp5588_probe()
508 INIT_DELAYED_WORK(&kpad->work, adp5588_work); adp5588_probe()
518 kpad->delay = msecs_to_jiffies(30); adp5588_probe()
524 input_set_drvdata(input, kpad); adp5588_probe()
531 input->keycodesize = sizeof(kpad->keycode[0]); adp5588_probe()
533 input->keycode = kpad->keycode; adp5588_probe()
535 memcpy(kpad->keycode, pdata->keymap, adp5588_probe()
538 kpad->gpimap = pdata->gpimap; adp5588_probe()
539 kpad->gpimapsize = pdata->gpimapsize; adp5588_probe()
548 if (kpad->keycode[i] <= KEY_MAX) adp5588_probe()
549 __set_bit(kpad->keycode[i], input->keybit); adp5588_probe()
552 if (kpad->gpimapsize) adp5588_probe()
554 for (i = 0; i < kpad->gpimapsize; i++) adp5588_probe()
555 __set_bit(kpad->gpimap[i].sw_evt, input->swbit); adp5588_probe()
565 client->dev.driver->name, kpad); adp5588_probe()
575 if (kpad->gpimapsize) adp5588_probe()
576 adp5588_report_switch_state(kpad); adp5588_probe()
578 error = adp5588_gpio_add(kpad); adp5588_probe()
583 i2c_set_clientdata(client, kpad); adp5588_probe()
589 free_irq(client->irq, kpad); adp5588_probe()
590 cancel_delayed_work_sync(&kpad->work); adp5588_probe()
596 kfree(kpad); adp5588_probe()
603 struct adp5588_kpad *kpad = i2c_get_clientdata(client); adp5588_remove() local
606 free_irq(client->irq, kpad); adp5588_remove()
607 cancel_delayed_work_sync(&kpad->work); adp5588_remove()
608 input_unregister_device(kpad->input); adp5588_remove()
609 adp5588_gpio_remove(kpad); adp5588_remove()
610 kfree(kpad); adp5588_remove()
618 struct adp5588_kpad *kpad = dev_get_drvdata(dev); adp5588_suspend() local
619 struct i2c_client *client = kpad->client; adp5588_suspend()
622 cancel_delayed_work_sync(&kpad->work); adp5588_suspend()
632 struct adp5588_kpad *kpad = dev_get_drvdata(dev); adp5588_resume() local
633 struct i2c_client *client = kpad->client; adp5588_resume()
H A Dadp5589-keys.c390 struct adp5589_kpad *kpad = container_of(chip, struct adp5589_kpad, gc); adp5589_gpio_get_value() local
391 unsigned int bank = kpad->var->bank(kpad->gpiomap[off]); adp5589_gpio_get_value()
392 unsigned int bit = kpad->var->bit(kpad->gpiomap[off]); adp5589_gpio_get_value()
394 return !!(adp5589_read(kpad->client, adp5589_gpio_get_value()
395 kpad->var->reg(ADP5589_GPI_STATUS_A) + bank) & adp5589_gpio_get_value()
402 struct adp5589_kpad *kpad = container_of(chip, struct adp5589_kpad, gc); adp5589_gpio_set_value() local
403 unsigned int bank = kpad->var->bank(kpad->gpiomap[off]); adp5589_gpio_set_value()
404 unsigned int bit = kpad->var->bit(kpad->gpiomap[off]); adp5589_gpio_set_value()
406 mutex_lock(&kpad->gpio_lock); adp5589_gpio_set_value()
409 kpad->dat_out[bank] |= bit; adp5589_gpio_set_value()
411 kpad->dat_out[bank] &= ~bit; adp5589_gpio_set_value()
413 adp5589_write(kpad->client, kpad->var->reg(ADP5589_GPO_DATA_OUT_A) + adp5589_gpio_set_value()
414 bank, kpad->dat_out[bank]); adp5589_gpio_set_value()
416 mutex_unlock(&kpad->gpio_lock); adp5589_gpio_set_value()
421 struct adp5589_kpad *kpad = container_of(chip, struct adp5589_kpad, gc); adp5589_gpio_direction_input() local
422 unsigned int bank = kpad->var->bank(kpad->gpiomap[off]); adp5589_gpio_direction_input()
423 unsigned int bit = kpad->var->bit(kpad->gpiomap[off]); adp5589_gpio_direction_input()
426 mutex_lock(&kpad->gpio_lock); adp5589_gpio_direction_input()
428 kpad->dir[bank] &= ~bit; adp5589_gpio_direction_input()
429 ret = adp5589_write(kpad->client, adp5589_gpio_direction_input()
430 kpad->var->reg(ADP5589_GPIO_DIRECTION_A) + bank, adp5589_gpio_direction_input()
431 kpad->dir[bank]); adp5589_gpio_direction_input()
433 mutex_unlock(&kpad->gpio_lock); adp5589_gpio_direction_input()
441 struct adp5589_kpad *kpad = container_of(chip, struct adp5589_kpad, gc); adp5589_gpio_direction_output() local
442 unsigned int bank = kpad->var->bank(kpad->gpiomap[off]); adp5589_gpio_direction_output()
443 unsigned int bit = kpad->var->bit(kpad->gpiomap[off]); adp5589_gpio_direction_output()
446 mutex_lock(&kpad->gpio_lock); adp5589_gpio_direction_output()
448 kpad->dir[bank] |= bit; adp5589_gpio_direction_output()
451 kpad->dat_out[bank] |= bit; adp5589_gpio_direction_output()
453 kpad->dat_out[bank] &= ~bit; adp5589_gpio_direction_output()
455 ret = adp5589_write(kpad->client, kpad->var->reg(ADP5589_GPO_DATA_OUT_A) adp5589_gpio_direction_output()
456 + bank, kpad->dat_out[bank]); adp5589_gpio_direction_output()
457 ret |= adp5589_write(kpad->client, adp5589_gpio_direction_output()
458 kpad->var->reg(ADP5589_GPIO_DIRECTION_A) + bank, adp5589_gpio_direction_output()
459 kpad->dir[bank]); adp5589_gpio_direction_output()
461 mutex_unlock(&kpad->gpio_lock); adp5589_gpio_direction_output()
466 static int adp5589_build_gpiomap(struct adp5589_kpad *kpad, adp5589_build_gpiomap() argument
475 for (i = 0; i < kpad->var->maxgpio; i++) adp5589_build_gpiomap()
479 for (i = 0; i < kpad->gpimapsize; i++) adp5589_build_gpiomap()
480 pin_used[kpad->gpimap[i].pin - kpad->var->gpi_pin_base] = true; adp5589_build_gpiomap()
482 if (kpad->extend_cfg & R4_EXTEND_CFG) adp5589_build_gpiomap()
485 if (kpad->extend_cfg & C4_EXTEND_CFG) adp5589_build_gpiomap()
486 pin_used[kpad->var->c4_extend_cfg] = true; adp5589_build_gpiomap()
488 if (!kpad->adp5585_support_row5) adp5589_build_gpiomap()
491 for (i = 0; i < kpad->var->maxgpio; i++) adp5589_build_gpiomap()
493 kpad->gpiomap[n_unused++] = i; adp5589_build_gpiomap()
498 static int adp5589_gpio_add(struct adp5589_kpad *kpad) adp5589_gpio_add() argument
500 struct device *dev = &kpad->client->dev; adp5589_gpio_add()
508 kpad->gc.ngpio = adp5589_build_gpiomap(kpad, pdata); adp5589_gpio_add()
509 if (kpad->gc.ngpio == 0) { adp5589_gpio_add()
514 kpad->export_gpio = true; adp5589_gpio_add()
516 kpad->gc.direction_input = adp5589_gpio_direction_input; adp5589_gpio_add()
517 kpad->gc.direction_output = adp5589_gpio_direction_output; adp5589_gpio_add()
518 kpad->gc.get = adp5589_gpio_get_value; adp5589_gpio_add()
519 kpad->gc.set = adp5589_gpio_set_value; adp5589_gpio_add()
520 kpad->gc.can_sleep = 1; adp5589_gpio_add()
522 kpad->gc.base = gpio_data->gpio_start; adp5589_gpio_add()
523 kpad->gc.label = kpad->client->name; adp5589_gpio_add()
524 kpad->gc.owner = THIS_MODULE; adp5589_gpio_add()
526 mutex_init(&kpad->gpio_lock); adp5589_gpio_add()
528 error = gpiochip_add(&kpad->gc); adp5589_gpio_add()
534 for (i = 0; i <= kpad->var->bank(kpad->var->maxgpio); i++) { adp5589_gpio_add()
535 kpad->dat_out[i] = adp5589_read(kpad->client, kpad->var->reg( adp5589_gpio_add()
537 kpad->dir[i] = adp5589_read(kpad->client, kpad->var->reg( adp5589_gpio_add()
542 error = gpio_data->setup(kpad->client, adp5589_gpio_add()
543 kpad->gc.base, kpad->gc.ngpio, adp5589_gpio_add()
552 static void adp5589_gpio_remove(struct adp5589_kpad *kpad) adp5589_gpio_remove() argument
554 struct device *dev = &kpad->client->dev; adp5589_gpio_remove()
559 if (!kpad->export_gpio) adp5589_gpio_remove()
563 error = gpio_data->teardown(kpad->client, adp5589_gpio_remove()
564 kpad->gc.base, kpad->gc.ngpio, adp5589_gpio_remove()
570 gpiochip_remove(&kpad->gc); adp5589_gpio_remove()
573 static inline int adp5589_gpio_add(struct adp5589_kpad *kpad) adp5589_gpio_add() argument
578 static inline void adp5589_gpio_remove(struct adp5589_kpad *kpad) adp5589_gpio_remove() argument
583 static void adp5589_report_switches(struct adp5589_kpad *kpad, adp5589_report_switches() argument
588 for (i = 0; i < kpad->gpimapsize; i++) { adp5589_report_switches()
589 if (key_val == kpad->gpimap[i].pin) { adp5589_report_switches()
590 input_report_switch(kpad->input, adp5589_report_switches()
591 kpad->gpimap[i].sw_evt, adp5589_report_switches()
598 static void adp5589_report_events(struct adp5589_kpad *kpad, int ev_cnt) adp5589_report_events() argument
603 int key = adp5589_read(kpad->client, ADP5589_5_FIFO_1 + i); adp5589_report_events()
606 if (key_val >= kpad->var->gpi_pin_base && adp5589_report_events()
607 key_val <= kpad->var->gpi_pin_end) { adp5589_report_events()
608 adp5589_report_switches(kpad, key, key_val); adp5589_report_events()
610 input_report_key(kpad->input, adp5589_report_events()
611 kpad->keycode[key_val - 1], adp5589_report_events()
619 struct adp5589_kpad *kpad = handle; adp5589_irq() local
620 struct i2c_client *client = kpad->client; adp5589_irq()
631 adp5589_report_events(kpad, ev_cnt); adp5589_irq()
632 input_sync(kpad->input); adp5589_irq()
641 static int adp5589_get_evcode(struct adp5589_kpad *kpad, unsigned short key) adp5589_get_evcode() argument
645 for (i = 0; i < kpad->var->keymapsize; i++) adp5589_get_evcode()
646 if (key == kpad->keycode[i]) adp5589_get_evcode()
649 dev_err(&kpad->client->dev, "RESET/UNLOCK key not in keycode map\n"); adp5589_get_evcode()
654 static int adp5589_setup(struct adp5589_kpad *kpad) adp5589_setup() argument
656 struct i2c_client *client = kpad->client; adp5589_setup()
659 u8 (*reg) (u8) = kpad->var->reg; adp5589_setup()
665 pdata->keypad_en_mask & kpad->var->row_mask); adp5589_setup()
667 (pdata->keypad_en_mask >> kpad->var->col_shift) & adp5589_setup()
668 kpad->var->col_mask); adp5589_setup()
670 if (!kpad->is_adp5585) adp5589_setup()
674 if (!kpad->is_adp5585 && pdata->en_keylock) { adp5589_setup()
690 if (pin <= kpad->var->gpi_pin_row_end) { adp5589_setup()
691 evt_mode1 |= (1 << (pin - kpad->var->gpi_pin_row_base)); adp5589_setup()
694 ((1 << (pin - kpad->var->gpi_pin_col_base)) & 0xFF); adp5589_setup()
695 if (!kpad->is_adp5585) adp5589_setup()
697 kpad->var->gpi_pin_col_base)) >> 8); adp5589_setup()
706 if (!kpad->is_adp5585) adp5589_setup()
716 for (i = 0; i <= kpad->var->max_row_num; i++) { adp5589_setup()
729 if (i % 4 == 3 || i == kpad->var->max_row_num) { adp5589_setup()
736 for (i = 0; i <= kpad->var->max_col_num; i++) { adp5589_setup()
737 unsigned val = 0, bit = 1 << (i + kpad->var->col_shift); adp5589_setup()
749 if (i % 4 == 3 || i == kpad->var->max_col_num) { adp5589_setup()
759 adp5589_get_evcode(kpad, adp5589_setup()
762 adp5589_get_evcode(kpad, adp5589_setup()
765 adp5589_get_evcode(kpad, adp5589_setup()
767 kpad->extend_cfg |= R4_EXTEND_CFG; adp5589_setup()
772 adp5589_get_evcode(kpad, adp5589_setup()
775 adp5589_get_evcode(kpad, adp5589_setup()
777 kpad->extend_cfg |= C4_EXTEND_CFG; adp5589_setup()
780 if (kpad->extend_cfg) { adp5589_setup()
784 kpad->extend_cfg); adp5589_setup()
788 pdata->debounce_dis_mask & kpad->var->row_mask); adp5589_setup()
791 (pdata->debounce_dis_mask >> kpad->var->col_shift) adp5589_setup()
792 & kpad->var->col_mask); adp5589_setup()
794 if (!kpad->is_adp5585) adp5589_setup()
801 (kpad->is_adp5585 ? 0 : LOGIC2_INT) | adp5589_setup()
803 (kpad->is_adp5585 ? 0 : LOCK_INT) | adp5589_setup()
819 static void adp5589_report_switch_state(struct adp5589_kpad *kpad) adp5589_report_switch_state() argument
823 int gpi_stat1 = adp5589_read(kpad->client, adp5589_report_switch_state()
824 kpad->var->reg(ADP5589_GPI_STATUS_A)); adp5589_report_switch_state()
825 int gpi_stat2 = adp5589_read(kpad->client, adp5589_report_switch_state()
826 kpad->var->reg(ADP5589_GPI_STATUS_B)); adp5589_report_switch_state()
827 int gpi_stat3 = !kpad->is_adp5585 ? adp5589_report_switch_state()
828 adp5589_read(kpad->client, ADP5589_GPI_STATUS_C) : 0; adp5589_report_switch_state()
830 for (i = 0; i < kpad->gpimapsize; i++) { adp5589_report_switch_state()
831 unsigned short pin = kpad->gpimap[i].pin; adp5589_report_switch_state()
833 if (pin <= kpad->var->gpi_pin_row_end) { adp5589_report_switch_state()
835 pin_loc = pin - kpad->var->gpi_pin_row_base; adp5589_report_switch_state()
836 } else if ((pin - kpad->var->gpi_pin_col_base) < 8) { adp5589_report_switch_state()
838 pin_loc = pin - kpad->var->gpi_pin_col_base; adp5589_report_switch_state()
841 pin_loc = pin - kpad->var->gpi_pin_col_base - 8; adp5589_report_switch_state()
845 dev_err(&kpad->client->dev, adp5589_report_switch_state()
851 input_report_switch(kpad->input, adp5589_report_switch_state()
852 kpad->gpimap[i].sw_evt, adp5589_report_switch_state()
856 input_sync(kpad->input); adp5589_report_switch_state()
862 struct adp5589_kpad *kpad; adp5589_probe() local
881 kpad = kzalloc(sizeof(*kpad), GFP_KERNEL); adp5589_probe()
882 if (!kpad) adp5589_probe()
887 kpad->adp5585_support_row5 = true; adp5589_probe()
889 kpad->is_adp5585 = true; adp5589_probe()
890 kpad->var = &const_adp5585; adp5589_probe()
893 kpad->var = &const_adp5589; adp5589_probe()
897 if (!((pdata->keypad_en_mask & kpad->var->row_mask) && adp5589_probe()
898 (pdata->keypad_en_mask >> kpad->var->col_shift)) || adp5589_probe()
905 if (pdata->keymapsize != kpad->var->keymapsize) { adp5589_probe()
917 if (pdata->gpimapsize > kpad->var->gpimapsize_max) { adp5589_probe()
926 if (pin < kpad->var->gpi_pin_base || adp5589_probe()
927 pin > kpad->var->gpi_pin_end) { adp5589_probe()
933 if ((1 << (pin - kpad->var->gpi_pin_row_base)) & adp5589_probe()
953 kpad->client = client; adp5589_probe()
954 kpad->input = input; adp5589_probe()
968 input_set_drvdata(input, kpad); adp5589_probe()
975 input->keycodesize = sizeof(kpad->keycode[0]); adp5589_probe()
977 input->keycode = kpad->keycode; adp5589_probe()
979 memcpy(kpad->keycode, pdata->keymap, adp5589_probe()
982 kpad->gpimap = pdata->gpimap; adp5589_probe()
983 kpad->gpimapsize = pdata->gpimapsize; adp5589_probe()
992 if (kpad->keycode[i] <= KEY_MAX) adp5589_probe()
993 __set_bit(kpad->keycode[i], input->keybit); adp5589_probe()
996 if (kpad->gpimapsize) adp5589_probe()
998 for (i = 0; i < kpad->gpimapsize; i++) adp5589_probe()
999 __set_bit(kpad->gpimap[i].sw_evt, input->swbit); adp5589_probe()
1009 client->dev.driver->name, kpad); adp5589_probe()
1015 error = adp5589_setup(kpad); adp5589_probe()
1019 if (kpad->gpimapsize) adp5589_probe()
1020 adp5589_report_switch_state(kpad); adp5589_probe()
1022 error = adp5589_gpio_add(kpad); adp5589_probe()
1027 i2c_set_clientdata(client, kpad); adp5589_probe()
1033 free_irq(client->irq, kpad); adp5589_probe()
1040 kfree(kpad); adp5589_probe()
1047 struct adp5589_kpad *kpad = i2c_get_clientdata(client); adp5589_remove() local
1049 adp5589_write(client, kpad->var->reg(ADP5589_GENERAL_CFG), 0); adp5589_remove()
1050 free_irq(client->irq, kpad); adp5589_remove()
1051 input_unregister_device(kpad->input); adp5589_remove()
1052 adp5589_gpio_remove(kpad); adp5589_remove()
1053 kfree(kpad); adp5589_remove()
1061 struct adp5589_kpad *kpad = dev_get_drvdata(dev); adp5589_suspend() local
1062 struct i2c_client *client = kpad->client; adp5589_suspend()
1074 struct adp5589_kpad *kpad = dev_get_drvdata(dev); adp5589_resume() local
1075 struct i2c_client *client = kpad->client; adp5589_resume()
/linux-4.4.14/drivers/media/
H A Dmedia-device.c120 static void media_device_kpad_to_upad(const struct media_pad *kpad, media_device_kpad_to_upad() argument
123 upad->entity = kpad->entity->id; media_device_kpad_to_upad()
124 upad->index = kpad->index; media_device_kpad_to_upad()
125 upad->flags = kpad->flags; media_device_kpad_to_upad()

Completed in 122 milliseconds