Lines Matching +full:client +full:- +full:id

1 // SPDX-License-Identifier: GPL-2.0
14 - auto idle mode support
60 struct i2c_client *client; member
67 struct input_dev *input_dev = ts->input_dev; in egalax_ts_interrupt()
68 struct i2c_client *client = ts->client; in egalax_ts_interrupt() local
70 int id, ret, x, y, z; in egalax_ts_interrupt() local
76 ret = i2c_master_recv(client, buf, MAX_I2C_DATA_LEN); in egalax_ts_interrupt()
77 } while (ret == -EAGAIN && tries++ < EGALAX_MAX_TRIES); in egalax_ts_interrupt()
93 id = (state & EVENT_ID_MASK) >> EVENT_ID_OFFSET; in egalax_ts_interrupt()
96 if (!valid || id > MAX_SUPPORT_POINTS) { in egalax_ts_interrupt()
97 dev_dbg(&client->dev, "point invalid\n"); in egalax_ts_interrupt()
101 input_mt_slot(input_dev, id); in egalax_ts_interrupt()
104 dev_dbg(&client->dev, "%s id:%d x:%d y:%d z:%d", in egalax_ts_interrupt()
105 down ? "down" : "up", id, x, y, z); in egalax_ts_interrupt()
120 static int egalax_wake_up_device(struct i2c_client *client) in egalax_wake_up_device() argument
126 gpio = gpiod_get(&client->dev, "wakeup", GPIOD_OUT_HIGH); in egalax_wake_up_device()
129 if (ret != -EPROBE_DEFER) in egalax_wake_up_device()
130 dev_err(&client->dev, in egalax_wake_up_device()
146 static int egalax_firmware_version(struct i2c_client *client) in egalax_firmware_version() argument
151 ret = i2c_master_send(client, cmd, MAX_I2C_DATA_LEN); in egalax_firmware_version()
158 static int egalax_ts_probe(struct i2c_client *client) in egalax_ts_probe() argument
164 ts = devm_kzalloc(&client->dev, sizeof(struct egalax_ts), GFP_KERNEL); in egalax_ts_probe()
166 dev_err(&client->dev, "Failed to allocate memory\n"); in egalax_ts_probe()
167 return -ENOMEM; in egalax_ts_probe()
170 input_dev = devm_input_allocate_device(&client->dev); in egalax_ts_probe()
172 dev_err(&client->dev, "Failed to allocate memory\n"); in egalax_ts_probe()
173 return -ENOMEM; in egalax_ts_probe()
176 ts->client = client; in egalax_ts_probe()
177 ts->input_dev = input_dev; in egalax_ts_probe()
180 error = egalax_wake_up_device(client); in egalax_ts_probe()
184 error = egalax_firmware_version(client); in egalax_ts_probe()
186 dev_err(&client->dev, "Failed to read firmware version\n"); in egalax_ts_probe()
190 input_dev->name = "EETI eGalax Touch Screen"; in egalax_ts_probe()
191 input_dev->id.bustype = BUS_I2C; in egalax_ts_probe()
193 __set_bit(EV_ABS, input_dev->evbit); in egalax_ts_probe()
194 __set_bit(EV_KEY, input_dev->evbit); in egalax_ts_probe()
195 __set_bit(BTN_TOUCH, input_dev->keybit); in egalax_ts_probe()
205 error = devm_request_threaded_irq(&client->dev, client->irq, in egalax_ts_probe()
209 dev_err(&client->dev, "Failed to register interrupt\n"); in egalax_ts_probe()
213 error = input_register_device(ts->input_dev); in egalax_ts_probe()
231 struct i2c_client *client = to_i2c_client(dev); in egalax_ts_suspend() local
235 return enable_irq_wake(client->irq); in egalax_ts_suspend()
237 ret = i2c_master_send(client, suspend_cmd, MAX_I2C_DATA_LEN); in egalax_ts_suspend()
243 struct i2c_client *client = to_i2c_client(dev); in egalax_ts_resume() local
246 return disable_irq_wake(client->irq); in egalax_ts_resume()
248 return egalax_wake_up_device(client); in egalax_ts_resume()