Lines Matching refs:i3cdev
130 struct i3c_device *i3cdev; in i3c_device_match() local
133 i3cdev = dev_to_i3cdev(dev); in i3c_device_match()
135 if (i3c_device_match_id(i3cdev, i3cdrv->id_table)) in i3c_device_match()
143 struct i3c_device *i3cdev = dev_to_i3cdev(dev); in i3c_device_probe() local
146 return driver->probe(i3cdev); in i3c_device_probe()
151 struct i3c_device *i3cdev = dev_to_i3cdev(dev); in i3c_device_remove() local
155 driver->remove(i3cdev); in i3c_device_remove()
1034 struct i3c_dev_desc *i3cdev; in i3c_master_early_i3c_dev_add() local
1037 i3cdev = i3c_master_alloc_i3c_dev(master, &info); in i3c_master_early_i3c_dev_add()
1038 if (IS_ERR(i3cdev)) in i3c_master_early_i3c_dev_add()
1041 i3cdev->boardinfo = boardinfo; in i3c_master_early_i3c_dev_add()
1043 ret = i3c_master_attach_i3c_dev(master, i3cdev); in i3c_master_early_i3c_dev_add()
1047 ret = i3c_master_setdasa_locked(master, i3cdev->info.static_addr, in i3c_master_early_i3c_dev_add()
1048 i3cdev->boardinfo->init_dyn_addr); in i3c_master_early_i3c_dev_add()
1052 i3cdev->info.dyn_addr = i3cdev->boardinfo->init_dyn_addr; in i3c_master_early_i3c_dev_add()
1053 ret = i3c_master_reattach_i3c_dev(i3cdev, 0); in i3c_master_early_i3c_dev_add()
1057 ret = i3c_master_retrieve_dev_info(i3cdev); in i3c_master_early_i3c_dev_add()
1064 i3c_master_rstdaa_locked(master, i3cdev->boardinfo->init_dyn_addr); in i3c_master_early_i3c_dev_add()
1066 i3c_master_detach_i3c_dev(i3cdev); in i3c_master_early_i3c_dev_add()
1068 i3c_master_free_i3c_dev(i3cdev); in i3c_master_early_i3c_dev_add()
1164 struct i3c_dev_desc *i3cdev; in i3c_master_set_info() local
1177 i3cdev = i3c_master_alloc_i3c_dev(master, info); in i3c_master_set_info()
1178 if (IS_ERR(i3cdev)) in i3c_master_set_info()
1179 return PTR_ERR(i3cdev); in i3c_master_set_info()
1181 master->this = i3cdev; in i3c_master_set_info()
1184 ret = i3c_master_attach_i3c_dev(master, i3cdev); in i3c_master_set_info()
1191 i3c_master_free_i3c_dev(i3cdev); in i3c_master_set_info()
1199 struct i3c_dev_desc *i3cdev, *i3ctmp; in i3c_master_detach_free_devs() local
1202 list_for_each_entry_safe(i3cdev, i3ctmp, &master->bus.devs.i3c, in i3c_master_detach_free_devs()
1204 i3c_master_detach_i3c_dev(i3cdev); in i3c_master_detach_free_devs()
1206 if (i3cdev->boardinfo && i3cdev->boardinfo->init_dyn_addr) in i3c_master_detach_free_devs()
1208 i3cdev->boardinfo->init_dyn_addr, in i3c_master_detach_free_devs()
1211 i3c_master_free_i3c_dev(i3cdev); in i3c_master_detach_free_devs()
1384 static void i3c_master_attach_boardinfo(struct i3c_dev_desc *i3cdev) in i3c_master_attach_boardinfo() argument
1386 struct i3c_master_controller *master = i3cdev->common.master; in i3c_master_attach_boardinfo()
1390 if (i3cdev->info.pid != i3cboardinfo->pid) in i3c_master_attach_boardinfo()
1393 i3cdev->boardinfo = i3cboardinfo; in i3c_master_attach_boardinfo()
1394 i3cdev->info.static_addr = i3cboardinfo->static_addr; in i3c_master_attach_boardinfo()
1403 struct i3c_dev_desc *i3cdev; in i3c_master_search_i3c_dev_duplicate() local
1405 i3c_bus_for_each_i3cdev(&master->bus, i3cdev) { in i3c_master_search_i3c_dev_duplicate()
1406 if (i3cdev != refdev && i3cdev->info.pid == refdev->info.pid) in i3c_master_search_i3c_dev_duplicate()
1407 return i3cdev; in i3c_master_search_i3c_dev_duplicate()