i3c: master: add enable(disable) hot join in sys entry
[linux-block.git] / include / linux / i3c / master.h
index 24c1863b86e2b6940d263555515039fa0b317203..3b5bd8e3257c173cbc4e1a93f45ef2e4cbb6d440 100644 (file)
@@ -460,6 +460,8 @@ struct i3c_master_controller_ops {
        int (*disable_ibi)(struct i3c_dev_desc *dev);
        void (*recycle_ibi_slot)(struct i3c_dev_desc *dev,
                                 struct i3c_ibi_slot *slot);
+       int (*enable_hotjoin)(struct i3c_master_controller *master);
+       int (*disable_hotjoin)(struct i3c_master_controller *master);
 };
 
 /**
@@ -495,6 +497,7 @@ struct i3c_master_controller {
        const struct i3c_master_controller_ops *ops;
        unsigned int secondary : 1;
        unsigned int init_done : 1;
+       unsigned int hotjoin: 1;
        struct {
                struct list_head i3c;
                struct list_head i2c;
@@ -551,6 +554,8 @@ int i3c_master_register(struct i3c_master_controller *master,
                        const struct i3c_master_controller_ops *ops,
                        bool secondary);
 void i3c_master_unregister(struct i3c_master_controller *master);
+int i3c_master_enable_hotjoin(struct i3c_master_controller *master);
+int i3c_master_disable_hotjoin(struct i3c_master_controller *master);
 
 /**
  * i3c_dev_get_master_data() - get master private data attached to an I3C