#include <linux/pm.h>
 #include <linux/pm_runtime.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 
 #include "intel-lpss.h"
 
        .clk_rate = 120000000,
 };
 
+static struct property_entry spt_i2c_properties[] = {
+       PROPERTY_ENTRY_U32("i2c-sda-hold-time-ns", 230),
+       { },
+};
+
+static struct property_set spt_i2c_pset = {
+       .properties = spt_i2c_properties,
+};
+
+static const struct intel_lpss_platform_info spt_i2c_info = {
+       .clk_rate = 120000000,
+       .pset = &spt_i2c_pset,
+};
+
 static const struct intel_lpss_platform_info bxt_info = {
        .clk_rate = 100000000,
 };
 
 static const struct acpi_device_id intel_lpss_acpi_ids[] = {
        /* SPT */
-       { "INT3446", (kernel_ulong_t)&spt_info },
-       { "INT3447", (kernel_ulong_t)&spt_info },
+       { "INT3446", (kernel_ulong_t)&spt_i2c_info },
+       { "INT3447", (kernel_ulong_t)&spt_i2c_info },
        /* BXT */
        { "80860AAC", (kernel_ulong_t)&bxt_i2c_info },
        { "80860ABC", (kernel_ulong_t)&bxt_info },
 
 #include <linux/pci.h>
 #include <linux/pm.h>
 #include <linux/pm_runtime.h>
+#include <linux/property.h>
 
 #include "intel-lpss.h"
 
        .clk_rate = 120000000,
 };
 
+static struct property_entry spt_i2c_properties[] = {
+       PROPERTY_ENTRY_U32("i2c-sda-hold-time-ns", 230),
+       { },
+};
+
+static struct property_set spt_i2c_pset = {
+       .properties = spt_i2c_properties,
+};
+
+static const struct intel_lpss_platform_info spt_i2c_info = {
+       .clk_rate = 120000000,
+       .pset = &spt_i2c_pset,
+};
+
 static const struct intel_lpss_platform_info spt_uart_info = {
        .clk_rate = 120000000,
        .clk_con_id = "baudclk",
        { PCI_VDEVICE(INTEL, 0x9d28), (kernel_ulong_t)&spt_uart_info },
        { PCI_VDEVICE(INTEL, 0x9d29), (kernel_ulong_t)&spt_info },
        { PCI_VDEVICE(INTEL, 0x9d2a), (kernel_ulong_t)&spt_info },
-       { PCI_VDEVICE(INTEL, 0x9d60), (kernel_ulong_t)&spt_info },
-       { PCI_VDEVICE(INTEL, 0x9d61), (kernel_ulong_t)&spt_info },
-       { PCI_VDEVICE(INTEL, 0x9d62), (kernel_ulong_t)&spt_info },
-       { PCI_VDEVICE(INTEL, 0x9d63), (kernel_ulong_t)&spt_info },
-       { PCI_VDEVICE(INTEL, 0x9d64), (kernel_ulong_t)&spt_info },
-       { PCI_VDEVICE(INTEL, 0x9d65), (kernel_ulong_t)&spt_info },
+       { PCI_VDEVICE(INTEL, 0x9d60), (kernel_ulong_t)&spt_i2c_info },
+       { PCI_VDEVICE(INTEL, 0x9d61), (kernel_ulong_t)&spt_i2c_info },
+       { PCI_VDEVICE(INTEL, 0x9d62), (kernel_ulong_t)&spt_i2c_info },
+       { PCI_VDEVICE(INTEL, 0x9d63), (kernel_ulong_t)&spt_i2c_info },
+       { PCI_VDEVICE(INTEL, 0x9d64), (kernel_ulong_t)&spt_i2c_info },
+       { PCI_VDEVICE(INTEL, 0x9d65), (kernel_ulong_t)&spt_i2c_info },
        { PCI_VDEVICE(INTEL, 0x9d66), (kernel_ulong_t)&spt_uart_info },
        /* SPT-H */
        { PCI_VDEVICE(INTEL, 0xa127), (kernel_ulong_t)&spt_uart_info },
        { PCI_VDEVICE(INTEL, 0xa128), (kernel_ulong_t)&spt_uart_info },
        { PCI_VDEVICE(INTEL, 0xa129), (kernel_ulong_t)&spt_info },
        { PCI_VDEVICE(INTEL, 0xa12a), (kernel_ulong_t)&spt_info },
-       { PCI_VDEVICE(INTEL, 0xa160), (kernel_ulong_t)&spt_info },
-       { PCI_VDEVICE(INTEL, 0xa161), (kernel_ulong_t)&spt_info },
+       { PCI_VDEVICE(INTEL, 0xa160), (kernel_ulong_t)&spt_i2c_info },
+       { PCI_VDEVICE(INTEL, 0xa161), (kernel_ulong_t)&spt_i2c_info },
        { PCI_VDEVICE(INTEL, 0xa166), (kernel_ulong_t)&spt_uart_info },
        { }
 };