summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drivers/i2c/generic/chip.h1
-rw-r--r--src/drivers/i2c/generic/generic.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/drivers/i2c/generic/chip.h b/src/drivers/i2c/generic/chip.h
index 9e2abb9ed7..99e599d5ea 100644
--- a/src/drivers/i2c/generic/chip.h
+++ b/src/drivers/i2c/generic/chip.h
@@ -28,6 +28,7 @@ struct drivers_i2c_generic_config {
const char *desc; /* Device Description */
unsigned uid; /* ACPI _UID */
enum i2c_speed speed; /* Bus speed in Hz, default is I2C_SPEED_FAST */
+ const char *compat_string; /* Compatible string for _HID=PRP0001 */
unsigned wake; /* Wake GPE */
struct acpi_irq irq; /* Interrupt */
diff --git a/src/drivers/i2c/generic/generic.c b/src/drivers/i2c/generic/generic.c
index 598f211ed8..9b4f00daa4 100644
--- a/src/drivers/i2c/generic/generic.c
+++ b/src/drivers/i2c/generic/generic.c
@@ -116,10 +116,13 @@ void i2c_generic_fill_ssdt(struct device *dev,
}
/* DSD */
- if (config->probed || config->property_count ||
+ if (config->probed || config->property_count || config->compat_string ||
(reset_gpio_index != -1) ||
(enable_gpio_index != -1) || (irq_gpio_index != -1)) {
dsd = acpi_dp_new_table("_DSD");
+ if (config->compat_string)
+ acpi_dp_add_string(dsd, "compatible",
+ config->compat_string);
if (config->probed)
acpi_dp_add_integer(dsd, "linux,probed", 1);
if (irq_gpio_index != -1)