Lines Matching full: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()
383 static int rmi_f01_probe(struct rmi_function *fn) in rmi_f01_probe() argument
385 struct rmi_device *rmi_dev = fn->rmi_dev; in rmi_f01_probe()
390 u16 ctrl_base_addr = fn->fd.control_base_addr; in rmi_f01_probe()
394 if (fn->dev.of_node) { in rmi_f01_probe()
395 error = rmi_f01_of_probe(&fn->dev, pdata); in rmi_f01_probe()
400 f01 = devm_kzalloc(&fn->dev, sizeof(struct f01_data), GFP_KERNEL); in rmi_f01_probe()
411 error = rmi_read(rmi_dev, fn->fd.control_base_addr, in rmi_f01_probe()
414 dev_err(&fn->dev, "Failed to read F01 control: %d\n", error); in rmi_f01_probe()
436 dev_warn(&fn->dev, in rmi_f01_probe()
443 error = rmi_write(rmi_dev, fn->fd.control_base_addr, in rmi_f01_probe()
446 dev_err(&fn->dev, "Failed to write F01 control: %d\n", error); in rmi_f01_probe()
451 error = rmi_read(rmi_dev, fn->fd.data_base_addr + 1, &temp); in rmi_f01_probe()
453 dev_err(&fn->dev, "Failed to read Interrupt Status.\n"); in rmi_f01_probe()
457 error = rmi_f01_read_properties(rmi_dev, fn->fd.query_base_addr, in rmi_f01_probe()
460 dev_err(&fn->dev, "Failed to read F01 properties.\n"); in rmi_f01_probe()
464 dev_info(&fn->dev, "found RMI device, manufacturer: %s, product: %s, fw id: %d\n", in rmi_f01_probe()
483 dev_err(&fn->dev, in rmi_f01_probe()
492 dev_err(&fn->dev, in rmi_f01_probe()
508 dev_err(&fn->dev, in rmi_f01_probe()
517 dev_err(&fn->dev, in rmi_f01_probe()
538 dev_err(&fn->dev, in rmi_f01_probe()
547 dev_err(&fn->dev, in rmi_f01_probe()
555 error = rmi_read(rmi_dev, fn->fd.data_base_addr, &device_status); in rmi_f01_probe()
557 dev_err(&fn->dev, in rmi_f01_probe()
563 dev_err(&fn->dev, in rmi_f01_probe()
569 dev_set_drvdata(&fn->dev, f01); in rmi_f01_probe()
571 error = sysfs_create_group(&fn->rmi_dev->dev.kobj, &rmi_f01_attr_group); in rmi_f01_probe()
573 dev_warn(&fn->dev, "Failed to create sysfs group: %d\n", error); in rmi_f01_probe()
578 static void rmi_f01_remove(struct rmi_function *fn) in rmi_f01_remove() argument
581 sysfs_remove_group(&fn->rmi_dev->dev.kobj, &rmi_f01_attr_group); in rmi_f01_remove()
584 static int rmi_f01_config(struct rmi_function *fn) in rmi_f01_config() argument
586 struct f01_data *f01 = dev_get_drvdata(&fn->dev); in rmi_f01_config()
589 error = rmi_write(fn->rmi_dev, fn->fd.control_base_addr, in rmi_f01_config()
592 dev_err(&fn->dev, in rmi_f01_config()
598 error = rmi_write(fn->rmi_dev, f01->doze_interval_addr, in rmi_f01_config()
601 dev_err(&fn->dev, in rmi_f01_config()
606 error = rmi_write_block(fn->rmi_dev, in rmi_f01_config()
611 dev_err(&fn->dev, in rmi_f01_config()
619 error = rmi_write(fn->rmi_dev, f01->doze_holdoff_addr, in rmi_f01_config()
622 dev_err(&fn->dev, in rmi_f01_config()
631 static int rmi_f01_suspend(struct rmi_function *fn) in rmi_f01_suspend() argument
633 struct f01_data *f01 = dev_get_drvdata(&fn->dev); in rmi_f01_suspend()
641 if (device_may_wakeup(fn->rmi_dev->xport->dev)) in rmi_f01_suspend()
646 error = rmi_write(fn->rmi_dev, fn->fd.control_base_addr, in rmi_f01_suspend()
649 dev_err(&fn->dev, "Failed to write sleep mode: %d.\n", error); in rmi_f01_suspend()
660 static int rmi_f01_resume(struct rmi_function *fn) in rmi_f01_resume() argument
662 struct f01_data *f01 = dev_get_drvdata(&fn->dev); in rmi_f01_resume()
671 error = rmi_write(fn->rmi_dev, fn->fd.control_base_addr, in rmi_f01_resume()
674 dev_err(&fn->dev, in rmi_f01_resume()
684 struct rmi_function *fn = ctx; in rmi_f01_attention() local
685 struct rmi_device *rmi_dev = fn->rmi_dev; in rmi_f01_attention()
689 error = rmi_read(rmi_dev, fn->fd.data_base_addr, &device_status); in rmi_f01_attention()
691 dev_err(&fn->dev, in rmi_f01_attention()
697 dev_warn(&fn->dev, in rmi_f01_attention()
701 dev_warn(&fn->dev, "Device reset detected.\n"); in rmi_f01_attention()
704 dev_err(&fn->dev, "Device reset failed: %d\n", error); in rmi_f01_attention()