Lines Matching refs:as5011

129 	struct as5011_device *as5011 = dev_id;  in as5011_button_interrupt()  local
130 int val = gpio_get_value_cansleep(as5011->button_gpio); in as5011_button_interrupt()
132 input_report_key(as5011->input_dev, BTN_JOYSTICK, !val); in as5011_button_interrupt()
133 input_sync(as5011->input_dev); in as5011_button_interrupt()
140 struct as5011_device *as5011 = dev_id; in as5011_axis_interrupt() local
144 error = as5011_i2c_read(as5011->i2c_client, AS5011_X_RES_INT, &x); in as5011_axis_interrupt()
148 error = as5011_i2c_read(as5011->i2c_client, AS5011_Y_RES_INT, &y); in as5011_axis_interrupt()
152 input_report_abs(as5011->input_dev, ABS_X, x); in as5011_axis_interrupt()
153 input_report_abs(as5011->input_dev, ABS_Y, y); in as5011_axis_interrupt()
154 input_sync(as5011->input_dev); in as5011_axis_interrupt()
160 static int as5011_configure_chip(struct as5011_device *as5011, in as5011_configure_chip() argument
163 struct i2c_client *client = as5011->i2c_client; in as5011_configure_chip()
232 struct as5011_device *as5011; in as5011_probe() local
254 as5011 = kmalloc(sizeof(struct as5011_device), GFP_KERNEL); in as5011_probe()
256 if (!as5011 || !input_dev) { in as5011_probe()
263 as5011->i2c_client = client; in as5011_probe()
264 as5011->input_dev = input_dev; in as5011_probe()
265 as5011->button_gpio = plat_data->button_gpio; in as5011_probe()
266 as5011->axis_irq = plat_data->axis_irq; in as5011_probe()
278 input_set_abs_params(as5011->input_dev, ABS_Y, in as5011_probe()
281 error = gpio_request(as5011->button_gpio, "AS5011 button"); in as5011_probe()
287 irq = gpio_to_irq(as5011->button_gpio); in as5011_probe()
295 as5011->button_irq = irq; in as5011_probe()
297 error = request_threaded_irq(as5011->button_irq, in as5011_probe()
301 "as5011_button", as5011); in as5011_probe()
304 "Can't allocate button irq %d\n", as5011->button_irq); in as5011_probe()
308 error = as5011_configure_chip(as5011, plat_data); in as5011_probe()
312 error = request_threaded_irq(as5011->axis_irq, NULL, in as5011_probe()
315 "as5011_joystick", as5011); in as5011_probe()
322 error = input_register_device(as5011->input_dev); in as5011_probe()
328 i2c_set_clientdata(client, as5011); in as5011_probe()
333 free_irq(as5011->axis_irq, as5011); in as5011_probe()
335 free_irq(as5011->button_irq, as5011); in as5011_probe()
337 gpio_free(as5011->button_gpio); in as5011_probe()
340 kfree(as5011); in as5011_probe()
347 struct as5011_device *as5011 = i2c_get_clientdata(client); in as5011_remove() local
349 free_irq(as5011->axis_irq, as5011); in as5011_remove()
350 free_irq(as5011->button_irq, as5011); in as5011_remove()
351 gpio_free(as5011->button_gpio); in as5011_remove()
353 input_unregister_device(as5011->input_dev); in as5011_remove()
354 kfree(as5011); in as5011_remove()