Lines Matching defs:iqs626
460 iqs626_parse_events(struct iqs626_private *iqs626,
463 struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
464 struct i2c_client *client = iqs626->client;
518 iqs626->kp_code[ch_id][i] = val;
537 iqs626->kp_type[ch_id][i] = val;
586 iqs626_parse_ati_target(struct iqs626_private *iqs626,
589 struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
590 struct i2c_client *client = iqs626->client;
665 static int iqs626_parse_pins(struct iqs626_private *iqs626,
669 struct i2c_client *client = iqs626->client;
713 static int iqs626_parse_trackpad(struct iqs626_private *iqs626,
717 struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
718 struct i2c_client *client = iqs626->client;
829 iqs626->tp_code, count);
881 iqs626_parse_channel(struct iqs626_private *iqs626,
884 struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
885 struct i2c_client *client = iqs626->client;
916 error = iqs626_parse_ati_target(iqs626, ch_node, ch_id);
920 error = iqs626_parse_events(iqs626, ch_node, ch_id);
1063 return iqs626_parse_trackpad(iqs626, ch_node, ch_id);
1134 error = iqs626_parse_pins(iqs626, ch_node, "azoteq,rx-enable",
1139 error = iqs626_parse_pins(iqs626, ch_node, "azoteq,tx-enable",
1232 static int iqs626_parse_prop(struct iqs626_private *iqs626)
1234 struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
1235 struct i2c_client *client = iqs626->client;
1249 iqs626->suspend_mode = val;
1252 error = regmap_raw_read(iqs626->regmap, IQS626_SYS_SETTINGS, sys_reg,
1383 error = iqs626_parse_channel(iqs626, ch_node, i);
1407 error = regmap_raw_write(iqs626->regmap, IQS626_SYS_SETTINGS,
1408 &iqs626->sys_reg, sizeof(iqs626->sys_reg));
1417 static int iqs626_input_init(struct iqs626_private *iqs626)
1419 struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
1420 struct i2c_client *client = iqs626->client;
1423 iqs626->keypad = devm_input_allocate_device(&client->dev);
1424 if (!iqs626->keypad)
1427 iqs626->keypad->keycodemax = ARRAY_SIZE(iqs626->kp_code);
1428 iqs626->keypad->keycode = iqs626->kp_code;
1429 iqs626->keypad->keycodesize = sizeof(**iqs626->kp_code);
1431 iqs626->keypad->name = "iqs626a_keypad";
1432 iqs626->keypad->id.bustype = BUS_I2C;
1439 if (!iqs626->kp_type[i][j])
1442 input_set_capability(iqs626->keypad,
1443 iqs626->kp_type[i][j],
1444 iqs626->kp_code[i][j]);
1451 iqs626->trackpad = devm_input_allocate_device(&client->dev);
1452 if (!iqs626->trackpad)
1455 iqs626->trackpad->keycodemax = ARRAY_SIZE(iqs626->tp_code);
1456 iqs626->trackpad->keycode = iqs626->tp_code;
1457 iqs626->trackpad->keycodesize = sizeof(*iqs626->tp_code);
1459 iqs626->trackpad->name = "iqs626a_trackpad";
1460 iqs626->trackpad->id.bustype = BUS_I2C;
1469 input_set_capability(iqs626->trackpad, EV_KEY, BTN_TOUCH);
1470 input_set_abs_params(iqs626->trackpad, ABS_Y, 0, 255, 0, 0);
1473 input_set_abs_params(iqs626->trackpad,
1476 input_set_abs_params(iqs626->trackpad,
1479 touchscreen_parse_properties(iqs626->trackpad, false,
1480 &iqs626->prop);
1483 if (iqs626->tp_code[i] != KEY_RESERVED)
1484 input_set_capability(iqs626->trackpad, EV_KEY,
1485 iqs626->tp_code[i]);
1488 error = input_register_device(iqs626->trackpad);
1496 static int iqs626_report(struct iqs626_private *iqs626)
1498 struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
1499 struct i2c_client *client = iqs626->client;
1506 error = regmap_raw_read(iqs626->regmap, IQS626_SYS_FLAGS, &flags,
1522 error = regmap_raw_write(iqs626->regmap, IQS626_SYS_SETTINGS,
1540 error = regmap_raw_read(iqs626->regmap, IQS626_HALL_OUTPUT,
1558 if (!iqs626->kp_type[i][j])
1566 input_event(iqs626->keypad, iqs626->kp_type[i][j],
1567 iqs626->kp_code[i][j], !!state);
1571 input_sync(iqs626->keypad);
1577 complete_all(&iqs626->ati_done);
1586 input_report_key(iqs626->trackpad, BTN_TOUCH, state);
1589 touchscreen_report_pos(iqs626->trackpad, &iqs626->prop,
1594 input_report_key(iqs626->trackpad, iqs626->tp_code[i],
1598 input_sync(iqs626->trackpad);
1605 input_report_key(iqs626->trackpad,
1606 iqs626->tp_code[i], 0);
1610 input_sync(iqs626->trackpad);
1617 struct iqs626_private *iqs626 = context;
1619 if (iqs626_report(iqs626))
1641 struct iqs626_private *iqs626;
1644 iqs626 = devm_kzalloc(&client->dev, sizeof(*iqs626), GFP_KERNEL);
1645 if (!iqs626)
1648 i2c_set_clientdata(client, iqs626);
1649 iqs626->client = client;
1651 iqs626->regmap = devm_regmap_init_i2c(client, &iqs626_regmap_config);
1652 if (IS_ERR(iqs626->regmap)) {
1653 error = PTR_ERR(iqs626->regmap);
1659 init_completion(&iqs626->ati_done);
1661 error = regmap_raw_read(iqs626->regmap, IQS626_VER_INFO, &ver_info,
1672 error = iqs626_parse_prop(iqs626);
1676 error = iqs626_input_init(iqs626);
1682 client->name, iqs626);
1688 if (!wait_for_completion_timeout(&iqs626->ati_done,
1698 error = input_register_device(iqs626->keypad);
1707 struct iqs626_private *iqs626 = dev_get_drvdata(dev);
1708 struct i2c_client *client = iqs626->client;
1712 if (!iqs626->suspend_mode)
1722 error = regmap_update_bits(iqs626->regmap, IQS626_SYS_SETTINGS,
1731 error = regmap_read_poll_timeout(iqs626->regmap, IQS626_SYS_FLAGS, val,
1738 error = regmap_update_bits(iqs626->regmap, IQS626_SYS_SETTINGS,
1740 iqs626->suspend_mode <<
1750 error = regmap_read_poll_timeout(iqs626->regmap, IQS626_SYS_FLAGS, val,
1752 == (iqs626->suspend_mode <<
1766 struct iqs626_private *iqs626 = dev_get_drvdata(dev);
1767 struct i2c_client *client = iqs626->client;
1771 if (!iqs626->suspend_mode)
1776 error = regmap_update_bits(iqs626->regmap, IQS626_SYS_SETTINGS,
1785 error = regmap_read_poll_timeout(iqs626->regmap, IQS626_SYS_FLAGS, val,
1792 error = regmap_update_bits(iqs626->regmap, IQS626_SYS_SETTINGS,
1802 error = iqs626_report(iqs626);