Lines Matching defs:data

70 	/* Use cache data for mode control register(write only) */
84 static int __mms114_read_reg(struct mms114_data *data, unsigned int reg,
87 struct i2c_client *client = data->client;
101 /* Read data */
118 static int mms114_read_reg(struct mms114_data *data, unsigned int reg)
124 return data->cache_mode_control;
126 error = __mms114_read_reg(data, reg, 1, &val);
130 static int mms114_write_reg(struct mms114_data *data, unsigned int reg,
133 struct i2c_client *client = data->client;
149 data->cache_mode_control = val;
154 static void mms114_process_mt(struct mms114_data *data, struct mms114_touch *touch)
156 struct i2c_client *client = data->client;
157 struct input_dev *input_dev = data->input_dev;
185 touchscreen_report_pos(input_dev, &data->props, x, y, true);
193 struct mms114_data *data = dev_id;
194 struct input_dev *input_dev = data->input_dev;
208 packet_size = mms114_read_reg(data, MMS114_PACKET_SIZE);
214 error = __mms114_read_reg(data, MMS114_INFORMATION, packet_size,
220 mms114_process_mt(data, touch + index);
222 input_mt_report_pointer_emulation(data->input_dev, true);
223 input_sync(data->input_dev);
229 static int mms114_set_active(struct mms114_data *data, bool active)
233 val = mms114_read_reg(data, MMS114_MODE_CONTROL);
243 return mms114_write_reg(data, MMS114_MODE_CONTROL, val);
246 static int mms114_get_version(struct mms114_data *data)
248 struct device *dev = &data->client->dev;
253 switch (data->type) {
255 error = __mms114_read_reg(data, MMS152_FW_REV, 3, buf);
264 error = __mms114_read_reg(data, MMS152_FW_REV, 3, buf);
268 group = i2c_smbus_read_byte_data(data->client,
278 error = __mms114_read_reg(data, MMS114_TSP_REV, 6, buf);
290 static int mms114_setup_regs(struct mms114_data *data)
292 const struct touchscreen_properties *props = &data->props;
296 error = mms114_get_version(data);
301 if (data->type != TYPE_MMS114)
304 error = mms114_set_active(data, true);
310 error = mms114_write_reg(data, MMS114_XY_RESOLUTION_H, val);
315 error = mms114_write_reg(data, MMS114_X_RESOLUTION, val);
320 error = mms114_write_reg(data, MMS114_Y_RESOLUTION, val);
324 if (data->contact_threshold) {
325 error = mms114_write_reg(data, MMS114_CONTACT_THRESHOLD,
326 data->contact_threshold);
331 if (data->moving_threshold) {
332 error = mms114_write_reg(data, MMS114_MOVING_THRESHOLD,
333 data->moving_threshold);
341 static int mms114_start(struct mms114_data *data)
343 struct i2c_client *client = data->client;
346 error = regulator_enable(data->core_reg);
352 error = regulator_enable(data->io_reg);
355 regulator_disable(data->core_reg);
361 error = mms114_setup_regs(data);
363 regulator_disable(data->io_reg);
364 regulator_disable(data->core_reg);
373 static void mms114_stop(struct mms114_data *data)
375 struct i2c_client *client = data->client;
380 error = regulator_disable(data->io_reg);
384 error = regulator_disable(data->core_reg);
391 struct mms114_data *data = input_get_drvdata(dev);
393 return mms114_start(data);
398 struct mms114_data *data = input_get_drvdata(dev);
400 mms114_stop(data);
403 static int mms114_parse_legacy_bindings(struct mms114_data *data)
405 struct device *dev = &data->client->dev;
406 struct touchscreen_properties *props = &data->props;
419 &data->contact_threshold);
421 &data->moving_threshold);
436 struct mms114_data *data;
446 data = devm_kzalloc(&client->dev, sizeof(struct mms114_data),
449 if (!data || !input_dev) {
454 data->client = client;
455 data->input_dev = input_dev;
461 data->type = (enum mms_type)match_data;
469 touchscreen_parse_properties(input_dev, true, &data->props);
470 if (!data->props.max_x || !data->props.max_y) {
473 error = mms114_parse_legacy_bindings(data);
478 0, data->props.max_x, 0, 0);
480 0, data->props.max_y, 0, 0);
483 if (data->type == TYPE_MMS114) {
488 data->moving_threshold = input_abs_get_fuzz(input_dev,
490 data->contact_threshold = input_abs_get_fuzz(input_dev,
499 data->type);
513 input_set_drvdata(input_dev, data);
514 i2c_set_clientdata(client, data);
516 data->core_reg = devm_regulator_get(&client->dev, "avdd");
517 if (IS_ERR(data->core_reg)) {
518 error = PTR_ERR(data->core_reg);
524 data->io_reg = devm_regulator_get(&client->dev, "vdd");
525 if (IS_ERR(data->io_reg)) {
526 error = PTR_ERR(data->io_reg);
534 dev_name(&client->dev), data);
541 error = input_register_device(data->input_dev);
553 struct mms114_data *data = i2c_get_clientdata(client);
554 struct input_dev *input_dev = data->input_dev;
568 mms114_stop(data);
577 struct mms114_data *data = i2c_get_clientdata(client);
578 struct input_dev *input_dev = data->input_dev;
583 error = mms114_start(data);
606 .data = (void *)TYPE_MMS114,
609 .data = (void *)TYPE_MMS152,
612 .data = (void *)TYPE_MMS345L,