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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 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.

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.

Thanks,
Guenter





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux