Re: [PATCH v2 0/4] i2c: SMBus ARP support
From: Jeremy Kerr <jk@codeconstruct.com.au>
Date: 2026-01-27 00:32:33
Also in:
linux-i2c, lkml
Hi Heikki,
Since we use kernel mode device drivers, we need the kernel device instances (struct device) that bind to them. If you want to deal with user mode drivers then you can always do that with the i2c-dev interface, but then you will not be using the kernel drivers such as the mctp-i2c.c in this case.
Sure you could - the userspace ARP implementation would be responsible for binding an existing kernel driver to the newly-allocated dynamic i2c address - say, through the new_device interface. The choice of driver would typically depend on the enumerated UDID.
But just to be clear, this is not only about MCTP. The ARP-capable i2c-clients can be anything.
Yes, I'm not just talking about MCTP here either.
So even if you still want to scan the ARP-devices in user space separately, the kernel must enumerate those devices independently in any case. I should also point out that to my surprise the i2c-dev interface (I2C_CHARDEV) isn't always enabled, even when I2C seems to be otherwise fully supported in the kernel. We simply can't assume that it's always available.
I don't think requiring a specific functionality to be enabled would be a showstopper for any particular implementation. We need CONFIG_I2C already, why is CONFIG_I2C_CHARDEV any different? Cheers, Jeremy