summaryrefslogtreecommitdiff
path: root/include/linux/misc
diff options
context:
space:
mode:
authorPrathima <Prathima.Lk@amd.com>2026-07-10 16:46:39 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-07-17 15:50:48 +0200
commitf61a6fd4593bddc0f2109a1d3359fd2a88124d33 (patch)
tree6862aa3a6692ffa9df4947b77b3a17821a654104 /include/linux/misc
parentba27ea7abd35d260e3b489f985ec2b4113c0fd85 (diff)
downloadlinux-next-f61a6fd4593bddc0f2109a1d3359fd2a88124d33.tar.gz
linux-next-f61a6fd4593bddc0f2109a1d3359fd2a88124d33.zip
misc: amd-sbi: Add support for SB-TSI over I3C
AMD SB-TSI temperature sensors can be accessed over both I2C and I3C buses depending on the platform configuration. Extend the SB-TSI driver to support both I2C and I3C bus interfaces by selecting the appropriate transport based on the probed bus type. The driver maintains backward compatibility with existing I2C deployments while enabling support for systems using the I3C bus. Register both I2C and I3C drivers using module_i3c_i2c_driver() and update the Kconfig dependency from I2C to I3C_OR_I2C. Reviewed-by: Akshay Gupta <Akshay.Gupta@amd.com> Signed-off-by: Prathima <Prathima.Lk@amd.com> Link: https://patch.msgid.link/20260710111642.850022-6-Akshay.Gupta@amd.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/misc')
-rw-r--r--include/linux/misc/tsi.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/include/linux/misc/tsi.h b/include/linux/misc/tsi.h
index 6533879cc358..0bdd9d923f92 100644
--- a/include/linux/misc/tsi.h
+++ b/include/linux/misc/tsi.h
@@ -9,20 +9,27 @@
#define _LINUX_MISC_TSI_H_
#include <linux/i2c.h>
+#include <linux/i3c/device.h>
#include <linux/types.h>
/**
* struct sbtsi_data - driver private data for an AMD SB-TSI device
* @client: underlying I2C client
- * @dev_addr: I2C device address, used as the auxiliary device instance id
+ * @i3cdev: underlying I3C device (when using I3C bus)
+ * @dev_addr: I2C/I3C device address, used as the auxiliary device instance id
* @ext_range_mode: sensor uses extended temperature range
* @read_order: if set, decimal part must be read before integer part
+ * @is_i3c: true when the device is accessed over I3C
*/
struct sbtsi_data {
- struct i2c_client *client;
+ union {
+ struct i2c_client *client;
+ struct i3c_device *i3cdev;
+ };
u8 dev_addr;
bool ext_range_mode;
bool read_order;
+ bool is_i3c;
};
/*