drivers/generic/adau7002: Add wakeup-delay-ms property

Passes out wakeup-delay to driver. This delay is applied at
the start of capture to make sure dmics are ready before we
start recording. This avoids pop noise at begining of capture.

BUG=b:119926436
TEST=
With kernel patch
https://lore.kernel.org/patchwork/patch/1029806/
No pop sound heard at start of capture

Change-Id: I32b18bf80fad5899ab4093a127dfd52d589bc365
Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com>
Reviewed-on: https://review.coreboot.org/c/30724
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Akshu Agrawal 2019-01-08 14:06:42 +05:30 committed by Martin Roth
parent f5b346c912
commit 7ac3149b5d
2 changed files with 11 additions and 0 deletions

View File

@ -29,6 +29,9 @@
static void adau7002_fill_ssdt(struct device *dev) static void adau7002_fill_ssdt(struct device *dev)
{ {
struct drivers_generic_adau7002_config *config;
struct acpi_dp *dp;
if (!dev || !dev->enabled) if (!dev || !dev->enabled)
return; return;
@ -45,6 +48,12 @@ static void adau7002_fill_ssdt(struct device *dev)
acpigen_write_name_string("_DDN", dev->chip_ops->name); acpigen_write_name_string("_DDN", dev->chip_ops->name);
acpigen_write_STA(acpi_device_status(dev)); 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(); /* Device */
acpigen_pop_len(); /* Scope */ acpigen_pop_len(); /* Scope */

View File

@ -17,6 +17,8 @@
#define __I2C_GENERIC_ADAU7002_CHIP_H__ #define __I2C_GENERIC_ADAU7002_CHIP_H__
struct drivers_generic_adau7002_config { struct drivers_generic_adau7002_config {
/* Delay */
unsigned int wakeup_delay;
}; };
#endif /* __I2C_GENERIC_ADAU7002_CHIP_H__ */ #endif /* __I2C_GENERIC_ADAU7002_CHIP_H__ */