summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/drivers/i2c/cs42l42/chip.h10
-rw-r--r--src/drivers/i2c/cs42l42/cs42l42.c2
2 files changed, 12 insertions, 0 deletions
diff --git a/src/drivers/i2c/cs42l42/chip.h b/src/drivers/i2c/cs42l42/chip.h
index 5be2e14cd1..1adffe7088 100644
--- a/src/drivers/i2c/cs42l42/chip.h
+++ b/src/drivers/i2c/cs42l42/chip.h
@@ -106,4 +106,14 @@ struct drivers_i2c_cs42l42_config {
uint64_t bias_lvls[4];
/* headset bias ramp rate */
enum cs42l42_hs_bias_ramp_rate hs_bias_ramp_rate;
+ /*
+ * cirrus,hs-bias-sense-disable: This is boolean property. If present the
+ * HSBIAS sense is disabled. Configures HSBIAS output current sense through
+ * the external 2.21-k resistor. HSBIAS_SENSE is hardware feature to reduce
+ * the potential pop noise during the headset plug out slowly. But on some
+ * platforms ESD voltage will affect it causing test to fail, especially
+ * with CTIA headset type. For different hardware setups, a designer might
+ * want to tweak default behavior.
+ */
+ bool hs_bias_sense_disable;
};
diff --git a/src/drivers/i2c/cs42l42/cs42l42.c b/src/drivers/i2c/cs42l42/cs42l42.c
index d2ff6df8a3..a871cfceed 100644
--- a/src/drivers/i2c/cs42l42/cs42l42.c
+++ b/src/drivers/i2c/cs42l42/cs42l42.c
@@ -87,6 +87,8 @@ static void cs42l42_fill_ssdt(const struct device *dev)
acpi_dp_add_integer_array(dsd, "cirrus,bias-lvls", config->bias_lvls, 4);
acpi_dp_add_integer(dsd, "cirrus,hs-bias-ramp-rate", config->hs_bias_ramp_rate);
+ if (config->hs_bias_sense_disable)
+ acpi_dp_add_integer(dsd, "cirrus,hs-bias-sense-disable", 1);
/* Write Device Property Hierarchy */
acpi_dp_write(dsd);