Since the SMBus Address Resolution Protocol (ARP) is now supported with all I2C host adapters, every ARP-capable MCTP device will get automatically enumerated. Those devices just need to be bind to this driver. The SMBus ARP-capable MCTP devices are identified by checking the interface (MCTP SMBus/I2C Transport Binding Specification section 6.5). The interface must match the ASF protocol, so all devices that use the ASF protocol as their interface will be probed by this driver. Link: https://www.dmtf.org/sites/default/files/standards/documents/DSP0237_1.2.0.pdf Signed-off-by: Heikki Krogerus --- drivers/net/mctp/mctp-i2c.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/mctp/mctp-i2c.c b/drivers/net/mctp/mctp-i2c.c index f782d93f826e..3a0ffe941c76 100644 --- a/drivers/net/mctp/mctp-i2c.c +++ b/drivers/net/mctp/mctp-i2c.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -1096,6 +1097,12 @@ static const struct i2c_device_id mctp_i2c_id[] = { }; MODULE_DEVICE_TABLE(i2c, mctp_i2c_id); +static const struct smbus_device_id mctp_smbus_id[] = { + { SMBUS_INTERFACE_ASF }, + {} +}; +MODULE_DEVICE_TABLE(smbus, mctp_smbus_id); + static const struct of_device_id mctp_i2c_of_match[] = { { .compatible = "mctp-i2c-controller" }, {}, @@ -1110,6 +1117,7 @@ static struct i2c_driver mctp_i2c_driver = { .probe = mctp_i2c_probe, .remove = mctp_i2c_remove, .id_table = mctp_i2c_id, + .smbus_id_table = mctp_smbus_id, }; static __init int mctp_i2c_mod_init(void) -- 2.50.1