Lines Matching refs:data
91 struct icn8318_data *data = dev_id; in icn8318_irq() local
92 struct device *dev = &data->client->dev; in icn8318_irq()
96 ret = icn8318_read_touch_data(data->client, &touch_data); in icn8318_irq()
122 input_mt_slot(data->input, touch->slot); in icn8318_irq()
123 input_mt_report_slot_state(data->input, MT_TOOL_FINGER, act); in icn8318_irq()
130 if (data->invert_x) in icn8318_irq()
131 x = data->max_x - x; in icn8318_irq()
133 if (data->invert_y) in icn8318_irq()
134 y = data->max_y - y; in icn8318_irq()
136 if (!data->swap_x_y) { in icn8318_irq()
137 input_event(data->input, EV_ABS, ABS_MT_POSITION_X, x); in icn8318_irq()
138 input_event(data->input, EV_ABS, ABS_MT_POSITION_Y, y); in icn8318_irq()
140 input_event(data->input, EV_ABS, ABS_MT_POSITION_X, y); in icn8318_irq()
141 input_event(data->input, EV_ABS, ABS_MT_POSITION_Y, x); in icn8318_irq()
145 input_mt_sync_frame(data->input); in icn8318_irq()
146 input_sync(data->input); in icn8318_irq()
153 struct icn8318_data *data = input_get_drvdata(dev); in icn8318_start() local
155 enable_irq(data->client->irq); in icn8318_start()
156 gpiod_set_value_cansleep(data->wake_gpio, 1); in icn8318_start()
163 struct icn8318_data *data = input_get_drvdata(dev); in icn8318_stop() local
165 disable_irq(data->client->irq); in icn8318_stop()
166 i2c_smbus_write_byte_data(data->client, ICN8318_REG_POWER, in icn8318_stop()
168 gpiod_set_value_cansleep(data->wake_gpio, 0); in icn8318_stop()
174 struct icn8318_data *data = i2c_get_clientdata(to_i2c_client(dev)); in icn8318_suspend() local
176 mutex_lock(&data->input->mutex); in icn8318_suspend()
177 if (data->input->users) in icn8318_suspend()
178 icn8318_stop(data->input); in icn8318_suspend()
179 mutex_unlock(&data->input->mutex); in icn8318_suspend()
186 struct icn8318_data *data = i2c_get_clientdata(to_i2c_client(dev)); in icn8318_resume() local
188 mutex_lock(&data->input->mutex); in icn8318_resume()
189 if (data->input->users) in icn8318_resume()
190 icn8318_start(data->input); in icn8318_resume()
191 mutex_unlock(&data->input->mutex); in icn8318_resume()
204 struct icn8318_data *data; in icn8318_probe() local
214 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); in icn8318_probe()
215 if (!data) in icn8318_probe()
218 data->wake_gpio = devm_gpiod_get(dev, "wake", GPIOD_OUT_LOW); in icn8318_probe()
219 if (IS_ERR(data->wake_gpio)) { in icn8318_probe()
220 error = PTR_ERR(data->wake_gpio); in icn8318_probe()
226 if (of_property_read_u32(np, "touchscreen-size-x", &data->max_x) || in icn8318_probe()
227 of_property_read_u32(np, "touchscreen-size-y", &data->max_y)) { in icn8318_probe()
235 data->invert_x = of_property_read_bool(np, "touchscreen-inverted-x"); in icn8318_probe()
236 data->invert_y = of_property_read_bool(np, "touchscreen-inverted-y"); in icn8318_probe()
237 data->swap_x_y = of_property_read_bool(np, "touchscreen-swapped-x-y"); in icn8318_probe()
249 if (!data->swap_x_y) { in icn8318_probe()
251 data->max_x, fuzz_x, 0); in icn8318_probe()
253 data->max_y, fuzz_y, 0); in icn8318_probe()
256 data->max_y, fuzz_y, 0); in icn8318_probe()
258 data->max_x, fuzz_x, 0); in icn8318_probe()
266 data->client = client; in icn8318_probe()
267 data->input = input; in icn8318_probe()
268 input_set_drvdata(input, data); in icn8318_probe()
271 IRQF_ONESHOT, client->name, data); in icn8318_probe()
278 icn8318_stop(data->input); in icn8318_probe()
284 i2c_set_clientdata(client, data); in icn8318_probe()