Lines Matching defs:capdev

83 static int atmel_read(struct atmel_captouch_device *capdev,
86 struct i2c_client *client = capdev->client;
91 if (len > sizeof(capdev->xfer_buf) - 2)
94 capdev->xfer_buf[0] = reg;
95 capdev->xfer_buf[1] = len;
99 msg[0].buf = capdev->xfer_buf;
104 msg[1].buf = capdev->xfer_buf;
111 if (capdev->xfer_buf[0] != reg) {
114 capdev->xfer_buf[0], reg);
118 memcpy(data, &capdev->xfer_buf[2], len);
130 struct atmel_captouch_device *capdev = data;
131 struct device *dev = &capdev->client->dev;
137 error = atmel_read(capdev, REG_KEY_STATE, &new_btn, 1);
145 changed_btn = new_btn ^ capdev->prev_btn;
146 capdev->prev_btn = new_btn;
148 for (i = 0; i < capdev->num_btn; i++) {
150 input_report_key(capdev->input,
151 capdev->keycodes[i],
155 input_sync(capdev->input);
167 struct atmel_captouch_device *capdev;
181 capdev = devm_kzalloc(dev, sizeof(*capdev), GFP_KERNEL);
182 if (!capdev)
185 capdev->client = client;
187 err = atmel_read(capdev, REG_KEY_STATE,
188 &capdev->prev_btn, sizeof(capdev->prev_btn));
194 capdev->input = devm_input_allocate_device(dev);
195 if (!capdev->input) {
200 capdev->input->id.bustype = BUS_I2C;
201 capdev->input->id.product = 0x880A;
202 capdev->input->id.version = 0;
203 capdev->input->name = "ATMegaXX Capacitive Button Controller";
204 __set_bit(EV_KEY, capdev->input->evbit);
213 __set_bit(EV_REP, capdev->input->evbit);
215 capdev->num_btn = of_property_count_u32_elems(node, "linux,keymap");
216 if (capdev->num_btn > MAX_NUM_OF_BUTTONS)
217 capdev->num_btn = MAX_NUM_OF_BUTTONS;
220 capdev->keycodes,
221 capdev->num_btn);
228 for (i = 0; i < capdev->num_btn; i++)
229 __set_bit(capdev->keycodes[i], capdev->input->keybit);
231 capdev->input->keycode = capdev->keycodes;
232 capdev->input->keycodesize = sizeof(capdev->keycodes[0]);
233 capdev->input->keycodemax = capdev->num_btn;
235 err = input_register_device(capdev->input);
242 "atmel_captouch", capdev);