[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20260113140430.207990-4-heikki.krogerus@linux.intel.com>
Date: Tue, 13 Jan 2026 15:04:29 +0100
From: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
To: Wolfram Sang <wsa+renesas@...g-engineering.com>
Cc: Jeremy Kerr <jk@...econstruct.com.au>,
Matt Johnston <matt@...econstruct.com.au>,
linux-i2c@...r.kernel.org,
netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v1 3/4] mctp i2c: Enable SMBus ARP discovery
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 <heikki.krogerus@...ux.intel.com>
---
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 <linux/netdevice.h>
#include <linux/i2c.h>
#include <linux/i2c-mux.h>
+#include <linux/i2c-smbus.h>
#include <linux/if_arp.h>
#include <net/mctp.h>
#include <net/mctpdevice.h>
@@ -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
Powered by blists - more mailing lists