Lines Matching refs:i3cdev

279 	const struct i3c_device *i3cdev = dev_to_i3cdev(dev);
283 i3c_device_get_info(i3cdev, &devinfo);
304 struct i3c_device *i3cdev;
310 i3cdev = dev_to_i3cdev(dev);
312 if (i3c_device_match_id(i3cdev, i3cdrv->id_table))
320 struct i3c_device *i3cdev = dev_to_i3cdev(dev);
323 return driver->probe(i3cdev);
328 struct i3c_device *i3cdev = dev_to_i3cdev(dev);
332 driver->remove(i3cdev);
334 i3c_device_free_ibi(i3cdev);
734 struct i3c_device *i3cdev = dev_to_i3cdev(dev);
736 WARN_ON(i3cdev->desc);
738 of_node_put(i3cdev->dev.of_node);
739 kfree(i3cdev);
910 struct i3c_dev_desc *i3cdev;
921 i3c_bus_for_each_i3cdev(bus, i3cdev) {
924 if (i3cdev == master->this)
927 if (I3C_BCR_DEVICE_ROLE(i3cdev->info.bcr) ==
958 i3c_bus_for_each_i3cdev(bus, i3cdev) {
960 if (i3cdev == master->this)
963 desc->bcr = i3cdev->info.bcr;
964 desc->dcr = i3cdev->info.dcr;
965 desc->dyn_addr = i3cdev->info.dyn_addr << 1;
966 desc->static_addr = i3cdev->info.static_addr << 1;
1459 struct i3c_dev_desc *i3cdev;
1462 i3cdev = i3c_master_alloc_i3c_dev(master, &info);
1463 if (IS_ERR(i3cdev))
1466 i3cdev->boardinfo = boardinfo;
1468 ret = i3c_master_attach_i3c_dev(master, i3cdev);
1472 ret = i3c_master_setdasa_locked(master, i3cdev->info.static_addr,
1473 i3cdev->boardinfo->init_dyn_addr);
1477 i3cdev->info.dyn_addr = i3cdev->boardinfo->init_dyn_addr;
1478 ret = i3c_master_reattach_i3c_dev(i3cdev, 0);
1482 ret = i3c_master_retrieve_dev_info(i3cdev);
1489 i3c_master_rstdaa_locked(master, i3cdev->boardinfo->init_dyn_addr);
1491 i3c_master_detach_i3c_dev(i3cdev);
1493 i3c_master_free_i3c_dev(i3cdev);
1597 struct i3c_dev_desc *i3cdev;
1610 i3cdev = i3c_master_alloc_i3c_dev(master, info);
1611 if (IS_ERR(i3cdev))
1612 return PTR_ERR(i3cdev);
1614 master->this = i3cdev;
1617 ret = i3c_master_attach_i3c_dev(master, i3cdev);
1624 i3c_master_free_i3c_dev(i3cdev);
1632 struct i3c_dev_desc *i3cdev, *i3ctmp;
1635 list_for_each_entry_safe(i3cdev, i3ctmp, &master->bus.devs.i3c,
1637 i3c_master_detach_i3c_dev(i3cdev);
1639 if (i3cdev->boardinfo && i3cdev->boardinfo->init_dyn_addr)
1641 i3cdev->boardinfo->init_dyn_addr,
1644 i3c_master_free_i3c_dev(i3cdev);
1828 static void i3c_master_attach_boardinfo(struct i3c_dev_desc *i3cdev)
1830 struct i3c_master_controller *master = i3cdev->common.master;
1834 if (i3cdev->info.pid != i3cboardinfo->pid)
1837 i3cdev->boardinfo = i3cboardinfo;
1838 i3cdev->info.static_addr = i3cboardinfo->static_addr;
1847 struct i3c_dev_desc *i3cdev;
1849 i3c_bus_for_each_i3cdev(&master->bus, i3cdev) {
1850 if (i3cdev != refdev && i3cdev->info.pid == refdev->info.pid)
1851 return i3cdev;
2351 struct i3c_dev_desc *i3cdev;
2353 i3c_bus_for_each_i3cdev(&master->bus, i3cdev) {
2354 if (!i3cdev->dev)
2357 i3cdev->dev->desc = NULL;
2358 if (device_is_registered(&i3cdev->dev->dev))
2359 device_unregister(&i3cdev->dev->dev);
2361 put_device(&i3cdev->dev->dev);
2362 i3cdev->dev = NULL;