Lines Matching refs:fn

256 const char *rmi_f01_get_product_ID(struct rmi_function *fn)  in rmi_f01_get_product_ID()  argument
258 struct f01_data *f01 = dev_get_drvdata(&fn->dev); in rmi_f01_get_product_ID()
384 static int rmi_f01_probe(struct rmi_function *fn) in rmi_f01_probe() argument
386 struct rmi_device *rmi_dev = fn->rmi_dev; in rmi_f01_probe()
391 u16 ctrl_base_addr = fn->fd.control_base_addr; in rmi_f01_probe()
395 if (fn->dev.of_node) { in rmi_f01_probe()
396 error = rmi_f01_of_probe(&fn->dev, pdata); in rmi_f01_probe()
401 f01 = devm_kzalloc(&fn->dev, sizeof(struct f01_data), GFP_KERNEL); in rmi_f01_probe()
412 error = rmi_read(rmi_dev, fn->fd.control_base_addr, in rmi_f01_probe()
415 dev_err(&fn->dev, "Failed to read F01 control: %d\n", error); in rmi_f01_probe()
437 dev_warn(&fn->dev, in rmi_f01_probe()
444 error = rmi_write(rmi_dev, fn->fd.control_base_addr, in rmi_f01_probe()
447 dev_err(&fn->dev, "Failed to write F01 control: %d\n", error); in rmi_f01_probe()
452 error = rmi_read(rmi_dev, fn->fd.data_base_addr + 1, &temp); in rmi_f01_probe()
454 dev_err(&fn->dev, "Failed to read Interrupt Status.\n"); in rmi_f01_probe()
458 error = rmi_f01_read_properties(rmi_dev, fn->fd.query_base_addr, in rmi_f01_probe()
461 dev_err(&fn->dev, "Failed to read F01 properties.\n"); in rmi_f01_probe()
465 dev_info(&fn->dev, "found RMI device, manufacturer: %s, product: %s, fw id: %d\n", in rmi_f01_probe()
484 dev_err(&fn->dev, in rmi_f01_probe()
493 dev_err(&fn->dev, in rmi_f01_probe()
509 dev_err(&fn->dev, in rmi_f01_probe()
518 dev_err(&fn->dev, in rmi_f01_probe()
539 dev_err(&fn->dev, in rmi_f01_probe()
548 dev_err(&fn->dev, in rmi_f01_probe()
556 error = rmi_read(rmi_dev, fn->fd.data_base_addr, &device_status); in rmi_f01_probe()
558 dev_err(&fn->dev, in rmi_f01_probe()
564 dev_err(&fn->dev, in rmi_f01_probe()
570 dev_set_drvdata(&fn->dev, f01); in rmi_f01_probe()
572 error = sysfs_create_group(&fn->rmi_dev->dev.kobj, &rmi_f01_attr_group); in rmi_f01_probe()
574 dev_warn(&fn->dev, "Failed to create sysfs group: %d\n", error); in rmi_f01_probe()
579 static void rmi_f01_remove(struct rmi_function *fn) in rmi_f01_remove() argument
582 sysfs_remove_group(&fn->rmi_dev->dev.kobj, &rmi_f01_attr_group); in rmi_f01_remove()
585 static int rmi_f01_config(struct rmi_function *fn) in rmi_f01_config() argument
587 struct f01_data *f01 = dev_get_drvdata(&fn->dev); in rmi_f01_config()
590 error = rmi_write(fn->rmi_dev, fn->fd.control_base_addr, in rmi_f01_config()
593 dev_err(&fn->dev, in rmi_f01_config()
599 error = rmi_write(fn->rmi_dev, f01->doze_interval_addr, in rmi_f01_config()
602 dev_err(&fn->dev, in rmi_f01_config()
607 error = rmi_write_block(fn->rmi_dev, in rmi_f01_config()
612 dev_err(&fn->dev, in rmi_f01_config()
620 error = rmi_write(fn->rmi_dev, f01->doze_holdoff_addr, in rmi_f01_config()
623 dev_err(&fn->dev, in rmi_f01_config()
632 static int rmi_f01_suspend(struct rmi_function *fn) in rmi_f01_suspend() argument
634 struct f01_data *f01 = dev_get_drvdata(&fn->dev); in rmi_f01_suspend()
642 if (device_may_wakeup(fn->rmi_dev->xport->dev)) in rmi_f01_suspend()
647 error = rmi_write(fn->rmi_dev, fn->fd.control_base_addr, in rmi_f01_suspend()
650 dev_err(&fn->dev, "Failed to write sleep mode: %d.\n", error); in rmi_f01_suspend()
661 static int rmi_f01_resume(struct rmi_function *fn) in rmi_f01_resume() argument
663 struct f01_data *f01 = dev_get_drvdata(&fn->dev); in rmi_f01_resume()
672 error = rmi_write(fn->rmi_dev, fn->fd.control_base_addr, in rmi_f01_resume()
675 dev_err(&fn->dev, in rmi_f01_resume()
685 struct rmi_function *fn = ctx; in rmi_f01_attention() local
686 struct rmi_device *rmi_dev = fn->rmi_dev; in rmi_f01_attention()
690 error = rmi_read(rmi_dev, fn->fd.data_base_addr, &device_status); in rmi_f01_attention()
692 dev_err(&fn->dev, in rmi_f01_attention()
698 dev_warn(&fn->dev, in rmi_f01_attention()
702 dev_warn(&fn->dev, "Device reset detected.\n"); in rmi_f01_attention()
705 dev_err(&fn->dev, "Device reset failed: %d\n", error); in rmi_f01_attention()