[SRU][N][PATCH 6/11] i2c: smbus: Support DDR5 and LPDDR5 SPD EEPROMs

Alice C. Munduruca alice.munduruca at canonical.com
Tue Sep 2 14:37:15 UTC 2025


From: Guenter Roeck <linux at roeck-us.net>

Detect (LP)DDR5 memory and instantiate the SPD5118 driver automatically.

Suggested-by: Thomas Weißschuh <linux at weissschuh.net>
Cc: Wolfram Sang <wsa+renesas at sang-engineering.com>
Acked-by: Wolfram Sang <wsa+renesas at sang-engineering.com>
Reviewed-by: Armin Wolf <W_Armin at gmx.de>
Reviewed-by: Thomas Weißschuh <linux at weissschuh.net>
Signed-off-by: Guenter Roeck <linux at roeck-us.net>
(cherry picked from commit 84d477354b0a3c3a2cd154cd2cd4d7fd6188f9f2)
BugLink: https://bugs.launchpad.net/bugs/2114963
Signed-off-by: Alice C. Munduruca <alice.munduruca at canonical.com>
---
 drivers/i2c/i2c-smbus.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c
index 1521e943d938..c11486bf56f1 100644
--- a/drivers/i2c/i2c-smbus.c
+++ b/drivers/i2c/i2c-smbus.c
@@ -358,7 +358,7 @@ EXPORT_SYMBOL_GPL(i2c_free_slave_host_notify_device);
  * target systems are the same.
  * Restrictions to automatic SPD instantiation:
  *  - Only works if all filled slots have the same memory type
- *  - Only works for DDR, DDR2, DDR3 and DDR4 for now
+ *  - Only works for (LP)DDR memory types up to DDR5
  *  - Only works on systems with 1 to 8 memory slots
  */
 #if IS_ENABLED(CONFIG_DMI)
@@ -427,6 +427,10 @@ void i2c_register_spd(struct i2c_adapter *adap)
 	case 0x1E:	/* LPDDR4 */
 		name = "ee1004";
 		break;
+	case 0x22:	/* DDR5 */
+	case 0x23:	/* LPDDR5 */
+		name = "spd5118";
+		break;
 	default:
 		dev_info(&adap->dev,
 			 "Memory type 0x%02x not supported yet, not instantiating SPD\n",
-- 
2.48.1




More information about the kernel-team mailing list