Lines Matching refs:fn
87 static int rmi_f30_read_control_parameters(struct rmi_function *fn, in rmi_f30_read_control_parameters() argument
92 error = rmi_read_block(fn->rmi_dev, fn->fd.control_base_addr, in rmi_f30_read_control_parameters()
95 dev_err(&fn->dev, in rmi_f30_read_control_parameters()
97 __func__, fn->fd.control_base_addr, error); in rmi_f30_read_control_parameters()
104 static void rmi_f30_report_button(struct rmi_function *fn, in rmi_f30_report_button() argument
117 rmi_dbg(RMI_DEBUG_FN, &fn->dev, in rmi_f30_report_button()
127 struct rmi_function *fn = ctx; in rmi_f30_attention() local
128 struct f30_data *f30 = dev_get_drvdata(&fn->dev); in rmi_f30_attention()
129 struct rmi_driver_data *drvdata = dev_get_drvdata(&fn->rmi_dev->dev); in rmi_f30_attention()
136 dev_warn(&fn->dev, in rmi_f30_attention()
145 error = rmi_read_block(fn->rmi_dev, fn->fd.data_base_addr, in rmi_f30_attention()
148 dev_err(&fn->dev, in rmi_f30_attention()
158 rmi_f30_report_button(fn, f30, i); in rmi_f30_attention()
166 static int rmi_f30_config(struct rmi_function *fn) in rmi_f30_config() argument
168 struct f30_data *f30 = dev_get_drvdata(&fn->dev); in rmi_f30_config()
169 struct rmi_driver *drv = fn->rmi_dev->driver; in rmi_f30_config()
171 rmi_get_platform_data(fn->rmi_dev); in rmi_f30_config()
180 f30->f03 = rmi_find_function(fn->rmi_dev, 0x03); in rmi_f30_config()
185 drv->clear_irq_bits(fn->rmi_dev, fn->irq_mask); in rmi_f30_config()
188 error = rmi_write_block(fn->rmi_dev, fn->fd.control_base_addr, in rmi_f30_config()
191 dev_err(&fn->dev, in rmi_f30_config()
193 __func__, fn->fd.control_base_addr, error); in rmi_f30_config()
197 drv->set_irq_bits(fn->rmi_dev, fn->irq_mask); in rmi_f30_config()
226 static int rmi_f30_map_gpios(struct rmi_function *fn, in rmi_f30_map_gpios() argument
230 rmi_get_platform_data(fn->rmi_dev); in rmi_f30_map_gpios()
238 f30->gpioled_key_map = devm_kcalloc(&fn->dev, in rmi_f30_map_gpios()
243 dev_err(&fn->dev, "Failed to allocate gpioled map memory.\n"); in rmi_f30_map_gpios()
276 static int rmi_f30_initialize(struct rmi_function *fn, struct f30_data *f30) in rmi_f30_initialize() argument
279 int control_address = fn->fd.control_base_addr; in rmi_f30_initialize()
283 error = rmi_read_block(fn->rmi_dev, fn->fd.query_base_addr, in rmi_f30_initialize()
286 dev_err(&fn->dev, "Failed to read query register\n"); in rmi_f30_initialize()
352 error = rmi_f30_read_control_parameters(fn, f30); in rmi_f30_initialize()
354 dev_err(&fn->dev, in rmi_f30_initialize()
361 error = rmi_f30_map_gpios(fn, f30); in rmi_f30_initialize()
369 static int rmi_f30_probe(struct rmi_function *fn) in rmi_f30_probe() argument
371 struct rmi_device *rmi_dev = fn->rmi_dev; in rmi_f30_probe()
382 dev_info(&fn->dev, "F30: no input device found, ignoring\n"); in rmi_f30_probe()
386 f30 = devm_kzalloc(&fn->dev, sizeof(*f30), GFP_KERNEL); in rmi_f30_probe()
392 error = rmi_f30_initialize(fn, f30); in rmi_f30_probe()
396 dev_set_drvdata(&fn->dev, f30); in rmi_f30_probe()