diff --git a/src/drivers/generic/adau7002/adau7002.c b/src/drivers/generic/adau7002/adau7002.c index 2ea10867e9..38d3d07a01 100644 --- a/src/drivers/generic/adau7002/adau7002.c +++ b/src/drivers/generic/adau7002/adau7002.c @@ -29,6 +29,9 @@ static void adau7002_fill_ssdt(struct device *dev) { + struct drivers_generic_adau7002_config *config; + struct acpi_dp *dp; + if (!dev || !dev->enabled) return; @@ -45,6 +48,12 @@ static void adau7002_fill_ssdt(struct device *dev) acpigen_write_name_string("_DDN", dev->chip_ops->name); acpigen_write_STA(acpi_device_status(dev)); + /* _DSD for devicetree properties */ + config = dev->chip_info; + dp = acpi_dp_new_table("_DSD"); + acpi_dp_add_integer(dp, "wakeup-delay-ms", config->wakeup_delay); + acpi_dp_write(dp); + acpigen_pop_len(); /* Device */ acpigen_pop_len(); /* Scope */ diff --git a/src/drivers/generic/adau7002/chip.h b/src/drivers/generic/adau7002/chip.h index 95b4d1ec7f..f8cab445e3 100644 --- a/src/drivers/generic/adau7002/chip.h +++ b/src/drivers/generic/adau7002/chip.h @@ -17,6 +17,8 @@ #define __I2C_GENERIC_ADAU7002_CHIP_H__ struct drivers_generic_adau7002_config { + /* Delay */ + unsigned int wakeup_delay; }; #endif /* __I2C_GENERIC_ADAU7002_CHIP_H__ */