Lines Matching refs:capdev

91 static int atmel_read(struct atmel_captouch_device *capdev,  in atmel_read()  argument
94 struct i2c_client *client = capdev->client; in atmel_read()
99 if (len > sizeof(capdev->xfer_buf) - 2) in atmel_read()
102 capdev->xfer_buf[0] = reg; in atmel_read()
103 capdev->xfer_buf[1] = len; in atmel_read()
107 msg[0].buf = capdev->xfer_buf; in atmel_read()
112 msg[1].buf = capdev->xfer_buf; in atmel_read()
119 if (capdev->xfer_buf[0] != reg) { in atmel_read()
122 capdev->xfer_buf[0], reg); in atmel_read()
126 memcpy(data, &capdev->xfer_buf[2], len); in atmel_read()
138 struct atmel_captouch_device *capdev = data; in atmel_captouch_isr() local
139 struct device *dev = &capdev->client->dev; in atmel_captouch_isr()
145 error = atmel_read(capdev, REG_KEY_STATE, &new_btn, 1); in atmel_captouch_isr()
153 changed_btn = new_btn ^ capdev->prev_btn; in atmel_captouch_isr()
154 capdev->prev_btn = new_btn; in atmel_captouch_isr()
156 for (i = 0; i < capdev->num_btn; i++) { in atmel_captouch_isr()
158 input_report_key(capdev->input, in atmel_captouch_isr()
159 capdev->keycodes[i], in atmel_captouch_isr()
163 input_sync(capdev->input); in atmel_captouch_isr()
175 struct atmel_captouch_device *capdev; in atmel_captouch_probe() local
189 capdev = devm_kzalloc(dev, sizeof(*capdev), GFP_KERNEL); in atmel_captouch_probe()
190 if (!capdev) in atmel_captouch_probe()
193 capdev->client = client; in atmel_captouch_probe()
195 err = atmel_read(capdev, REG_KEY_STATE, in atmel_captouch_probe()
196 &capdev->prev_btn, sizeof(capdev->prev_btn)); in atmel_captouch_probe()
202 capdev->input = devm_input_allocate_device(dev); in atmel_captouch_probe()
203 if (!capdev->input) { in atmel_captouch_probe()
208 capdev->input->id.bustype = BUS_I2C; in atmel_captouch_probe()
209 capdev->input->id.product = 0x880A; in atmel_captouch_probe()
210 capdev->input->id.version = 0; in atmel_captouch_probe()
211 capdev->input->name = "ATMegaXX Capacitive Button Controller"; in atmel_captouch_probe()
212 __set_bit(EV_KEY, capdev->input->evbit); in atmel_captouch_probe()
221 __set_bit(EV_REP, capdev->input->evbit); in atmel_captouch_probe()
223 capdev->num_btn = of_property_count_u32_elems(node, "linux,keymap"); in atmel_captouch_probe()
224 if (capdev->num_btn > MAX_NUM_OF_BUTTONS) in atmel_captouch_probe()
225 capdev->num_btn = MAX_NUM_OF_BUTTONS; in atmel_captouch_probe()
228 capdev->keycodes, in atmel_captouch_probe()
229 capdev->num_btn); in atmel_captouch_probe()
236 for (i = 0; i < capdev->num_btn; i++) in atmel_captouch_probe()
237 __set_bit(capdev->keycodes[i], capdev->input->keybit); in atmel_captouch_probe()
239 capdev->input->keycode = capdev->keycodes; in atmel_captouch_probe()
240 capdev->input->keycodesize = sizeof(capdev->keycodes[0]); in atmel_captouch_probe()
241 capdev->input->keycodemax = capdev->num_btn; in atmel_captouch_probe()
243 err = input_register_device(capdev->input); in atmel_captouch_probe()
250 "atmel_captouch", capdev); in atmel_captouch_probe()