Re: [PATCH 2/3] hwmon: Add support for SPD5118 compliant temperature sensors

From: Thomas Weißschuh
Date: Thu May 30 2024 - 17:02:47 EST


On 2024-05-30 13:46:48+0000, Guenter Roeck wrote:
> On 5/30/24 13:20, Thomas Weißschuh wrote:
> > On 2024-05-29 13:52:03+0000, Guenter Roeck wrote:
> > > Add support for SPD5118 (Jedec JESD300-5B.01) compliant temperature
> > > sensors. Such sensors are typically found on DDR5 memory modules.
> >
> > I can get the module to automatically probe with this change:
> >
> > diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c
> > index 97f338b123b1..8d9218f755d7 100644
> > --- a/drivers/i2c/i2c-smbus.c
> > +++ b/drivers/i2c/i2c-smbus.c
> > @@ -382,6 +386,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",
> >
> > (Credits go to Paul Menzel [0])
> >
> > Maybe you can add that to your series.
> >
>
> That is specifically for SPD (eeprom) support, which I didn't provide
> in the driver. It does not register the equivalent jc42.4 temperature
> sensor either. Given that, using the code to register a temperature
> sensor seems inappropriate.

I see, I wasn't aware about the specifics of SPD.

It felt like a nice way to get automatic probing.
(I was wondering about that today before)

> I didn't include accessing the SPD eeprom to the driver because I don't
> have a use case. I don't mind adding it, though, if others think that it is
> important.

Wolfgang seems to think it's important:
https://lore.kernel.org/lkml/tdia472d4pow2osabef24y2ujkkquplfajxmmtk5pnxllsdxsz@wxzynz7llasr/

> > To also work with my PIIX4 I2C bus, I also need:
> >
> > diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
> > index fe6e8a1bb607..ff66e883b348 100644
> > --- a/drivers/i2c/busses/Kconfig
> > +++ b/drivers/i2c/busses/Kconfig
> > @@ -195,6 +195,7 @@ config I2C_ISMT
> > config I2C_PIIX4
> > tristate "Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC)"
> > depends on PCI && HAS_IOPORT
> > + select I2C_SMBUS
> > help
> > If you say yes to this option, support will be included for the Intel
> > PIIX4 family of mainboard I2C interfaces. Specifically, the following
> > diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
> > index 6a0392172b2f..f8d81f8c0cb3 100644
> > --- a/drivers/i2c/busses/i2c-piix4.c
> > +++ b/drivers/i2c/busses/i2c-piix4.c
> > @@ -29,6 +29,7 @@
> > #include <linux/stddef.h>
> > #include <linux/ioport.h>
> > #include <linux/i2c.h>
> > +#include <linux/i2c-smbus.h>
> > #include <linux/slab.h>
> > #include <linux/dmi.h>
> > #include <linux/acpi.h>
> > @@ -982,6 +983,8 @@ static int piix4_add_adapter(struct pci_dev *dev, unsigned short smba,
> > return retval;
> > }
> >
> > + i2c_register_spd(adap);
> > +
> > *padap = adap;
> > return 0;
> > }
> >
> > Though I guess it's not the right place to call i2c_register_sdp(),
> > I'll look at it some more and then submit it.
> >
>
> Hmm, I didn't find a better place though.
>
> Please copy me when you submit a patch; I can test it on an AMD system with
> DDR4.

Will do.


Thomas