/linux-4.4.14/drivers/input/keyboard/ |
H A D | adp5588-keys.c | 76 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 D | adp5589-keys.c | 390 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 D | media-device.c | 120 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()
|