Lines Matching defs:i3c
13 #include <linux/i3c/device.h>
14 #include <linux/i3c/master.h>
73 struct i3c_device *i3c;
128 rc = i3c_device_do_priv_xfers(mi->i3c, &xfer, 1);
133 /* Bad i3c bus driver */
175 static void mctp_i3c_ibi_handler(struct i3c_device *i3c,
178 struct mctp_i3c_device *mi = i3cdev_get_drvdata(i3c);
186 /* Not a mctp-i3c interrupt, ignore it */
193 dev_warn_once(i3cdev_to_dev(i3c), "IBI with missing MDB");
210 i3c_device_get_info(mi->i3c, &info);
217 rc = i3c_device_request_ibi(mi->i3c, &ibi);
221 * (ENOTSUPP is from the i3c layer, not EOPNOTSUPP).
223 dev_warn(i3cdev_to_dev(mi->i3c),
227 dev_err(i3cdev_to_dev(mi->i3c),
232 rc = i3c_device_enable_ibi(mi->i3c);
237 dev_err(i3cdev_to_dev(mi->i3c), "Failed enabling IBI (%d)\n", rc);
244 i3c_device_free_ibi(mi->i3c);
252 struct i3c_device *i3c)
264 mi->i3c = i3c;
268 i3cdev_set_drvdata(i3c, mi);
280 dev_warn(i3cdev_to_dev(i3c), "Error adding mctp-i3c device, %d\n", rc);
284 static int mctp_i3c_probe(struct i3c_device *i3c)
291 if (b->bus == i3c->bus) {
298 /* probably no "mctp-controller" property on the i3c bus */
302 return mctp_i3c_add_device(mbus, i3c);
312 i3c_device_disable_ibi(mi->i3c);
313 i3c_device_free_ibi(mi->i3c);
316 i3cdev_set_drvdata(mi->i3c, NULL);
324 static void mctp_i3c_remove(struct i3c_device *i3c)
326 struct mctp_i3c_device *mi = i3cdev_get_drvdata(i3c);
408 rc = i3c_device_do_priv_xfers(mi->i3c, &xfer, 1);
640 /* Removes all mctp-i3c busses */
710 .name = "mctp-i3c",
752 MODULE_DEVICE_TABLE(i3c, mctp_i3c_ids);