Intel doesn’t provide an API or user space driver to manage the SMBus.
You might check the following resources that can be useful for developing the required driver:
If you need additional Intel documentation for your application please let us know, and we will gladly provide it to you.
So, for info, here's how we avoided writing a driver:
We are only interested in extremely infrequent low speed transactions. So, rather than building a driver, we're accessing the device via DeviceIoControl() in kernel32.dll. This is working really well for us and we have had no issues. This is extremely inefficient versus a dedicated driver but in practical terms, it works for us.
Thanks to all,