This driver can also be built as a module. If so, the module
          will be called spd5118.
 
+config SENSORS_SPD5118_DETECT
+       bool "Enable detect function"
+       depends on SENSORS_SPD5118
+       default (!DMI || !X86)
+       help
+         If enabled, the driver auto-detects if a chip in the SPD address
+         range is compliant to the SPD51888 standard and auto-instantiates
+         if that is the case. If disabled, SPD5118 compliant devices have
+         to be instantiated by other means. On X86 systems with DMI support
+         this will typically be done from DMI DDR detection code in the
+         I2C SMBus subsystem. Devicetree based systems will instantiate
+         attached devices if the DIMMs are listed in the devicetree file.
+
+         Disabling the detect function will speed up boot time and reduce
+         the risk of mis-detecting SPD5118 compliant devices. However, it
+         may result in missed DIMMs under some circumstances.
+
+         If unsure, say Y.
+
 config SENSORS_TC74
        tristate "Microchip TC74"
        depends on I2C
 
        },
        .probe          = spd5118_probe,
        .id_table       = spd5118_id,
-       .detect         = spd5118_detect,
-       .address_list   = normal_i2c,
+       .detect         = IS_ENABLED(CONFIG_SENSORS_SPD5118_DETECT) ? spd5118_detect : NULL,
+       .address_list   = IS_ENABLED(CONFIG_SENSORS_SPD5118_DETECT) ? normal_i2c : NULL,
 };
 
 module_i2c_driver(spd5118_driver);