Lines Matching refs:data
95 static void surface3_spi_process_touch(struct surface3_ts_data *ts_data, u8 *data)
102 finger = (struct surface3_ts_data_finger *)&data[17 +
158 static void surface3_spi_process_pen(struct surface3_ts_data *ts_data, u8 *data)
162 pen = (struct surface3_ts_data_pen *)&data[15];
173 u8 *data = ts_data->rd_buf;
175 if (memcmp(header, data, sizeof(header)))
178 __func__, (int)sizeof(header), data);
180 switch (data[9]) {
182 surface3_spi_process_touch(ts_data, data);
185 surface3_spi_process_pen(ts_data, data);
190 __func__, data[9]);
197 struct surface3_ts_data *data = dev_id;
199 if (surface3_spi_read(data))
202 dev_dbg(&data->spi->dev, "%s received -> %*ph\n",
203 __func__, SURFACE3_PACKET_SIZE, data->rd_buf);
204 surface3_spi_process(data);
209 static void surface3_spi_power(struct surface3_ts_data *data, bool on)
211 gpiod_set_value(data->gpiod_rst[0], on);
212 gpiod_set_value(data->gpiod_rst[1], on);
220 * @data: surface3_spi_ts_data pointer
222 static int surface3_spi_get_gpio_config(struct surface3_ts_data *data)
228 dev = &data->spi->dev;
237 data->gpiod_rst[i] = gpiod;
243 static int surface3_spi_create_touch_input(struct surface3_ts_data *data)
248 input = devm_input_allocate_device(&data->spi->dev);
252 data->input_dev = input;
271 dev_err(&data->spi->dev,
279 static int surface3_spi_create_pen_input(struct surface3_ts_data *data)
284 input = devm_input_allocate_device(&data->spi->dev);
288 data->pen_input_dev = input;
289 data->pen_tool = BTN_TOOL_PEN;
312 dev_err(&data->spi->dev,
322 struct surface3_ts_data *data;
332 data = devm_kzalloc(&spi->dev, sizeof(*data), GFP_KERNEL);
333 if (!data)
336 data->spi = spi;
337 spi_set_drvdata(spi, data);
339 error = surface3_spi_get_gpio_config(data);
343 surface3_spi_power(data, true);
344 surface3_spi_power(data, false);
345 surface3_spi_power(data, true);
347 error = surface3_spi_create_touch_input(data);
351 error = surface3_spi_create_pen_input(data);
358 "Surface3-irq", data);
368 struct surface3_ts_data *data = spi_get_drvdata(spi);
370 disable_irq(data->spi->irq);
372 surface3_spi_power(data, false);
380 struct surface3_ts_data *data = spi_get_drvdata(spi);
382 surface3_spi_power(data, true);
384 enable_irq(data->spi->irq);