Lines Matching refs:data
63 static int nvt_ts_read_data(struct i2c_client *client, u8 reg, u8 *data, int count)
75 .buf = data,
91 struct nvt_ts_data *data = dev_id;
92 struct device *dev = &data->client->dev;
97 error = nvt_ts_read_data(data->client, NVT_TS_TOUCH_START, data->buf,
98 data->max_touches * NVT_TS_TOUCH_SIZE);
102 for (i = 0; i < data->max_touches; i++) {
103 touch = &data->buf[i * NVT_TS_TOUCH_SIZE];
109 if (slot < 1 || slot > data->max_touches) {
131 input_mt_slot(data->input, slot);
132 input_mt_report_slot_state(data->input, MT_TOOL_FINGER, active);
133 touchscreen_report_pos(data->input, &data->prop, x, y, true);
136 input_mt_sync_frame(data->input);
137 input_sync(data->input);
144 struct nvt_ts_data *data = input_get_drvdata(dev);
146 enable_irq(data->client->irq);
147 gpiod_set_value_cansleep(data->reset_gpio, 0);
154 struct nvt_ts_data *data = input_get_drvdata(dev);
156 disable_irq(data->client->irq);
157 gpiod_set_value_cansleep(data->reset_gpio, 1);
162 struct nvt_ts_data *data = i2c_get_clientdata(to_i2c_client(dev));
164 mutex_lock(&data->input->mutex);
165 if (input_device_enabled(data->input))
166 nvt_ts_stop(data->input);
167 mutex_unlock(&data->input->mutex);
174 struct nvt_ts_data *data = i2c_get_clientdata(to_i2c_client(dev));
176 mutex_lock(&data->input->mutex);
177 if (input_device_enabled(data->input))
178 nvt_ts_start(data->input);
179 mutex_unlock(&data->input->mutex);
190 struct nvt_ts_data *data;
198 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
199 if (!data)
202 data->client = client;
203 i2c_set_clientdata(client, data);
205 data->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
206 error = PTR_ERR_OR_ZERO(data->reset_gpio);
214 error = nvt_ts_read_data(data->client, NVT_TS_PARAMETERS_START,
215 data->buf, NVT_TS_PARAMS_SIZE);
216 gpiod_set_value_cansleep(data->reset_gpio, 1); /* Put back in reset */
220 width = get_unaligned_be16(&data->buf[NVT_TS_PARAMS_WIDTH]);
221 height = get_unaligned_be16(&data->buf[NVT_TS_PARAMS_HEIGHT]);
222 data->max_touches = data->buf[NVT_TS_PARAMS_MAX_TOUCH];
223 irq_type = data->buf[NVT_TS_PARAMS_IRQ_TYPE];
226 data->max_touches > NVT_TS_MAX_TOUCHES ||
228 data->buf[NVT_TS_PARAMS_WAKE_TYPE] != NVT_TS_SUPPORTED_WAKE_TYPE ||
229 data->buf[NVT_TS_PARAMS_CHIP_ID] != NVT_TS_SUPPORTED_CHIP_ID) {
231 NVT_TS_PARAMS_SIZE, data->buf);
236 width, height, data->max_touches);
238 if (data->buf[NVT_TS_PARAMS_MAX_BUTTONS])
252 touchscreen_parse_properties(input, true, &data->prop);
254 error = input_mt_init_slots(input, data->max_touches,
259 data->input = input;
260 input_set_drvdata(input, data);
265 client->name, data);