aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/i2c/rt1011/chip.h
diff options
context:
space:
mode:
authorCheng-Yi Chiang <cychiang@google.com>2019-10-10 01:07:44 +0800
committerPatrick Georgi <pgeorgi@google.com>2019-10-24 15:45:53 +0000
commitc761f28171e3c70660c05fce0297562802476ae2 (patch)
tree9bc5e9d559779a540919216460f076ec804c3c86 /src/drivers/i2c/rt1011/chip.h
parentcfde82c1d74bf044bf849adaaf44fc3a268ec10f (diff)
drivers/i2c/rt1011: Add a driver for RT1011
RT1011 is a smart amplifier. It needs to know speaker related parameters including speaker resistor value and temperature when the calibration is done in order to run Dynamic Speaker Management (DSM) algorithm on chip. The purpose of DSM is to protect speaker when the volume is large. The calibration data of speaker is stored in VPD in factory. This driver is needed to read data from VPD and write to ACPI _DSD when config CHROMEOS_DSM_CALIB is turned on. Kernel rt1011 codec driver will read these device properties to set up codec accordingly on boot. The reason to prepare these parameters in coreboot is because kernel codec driver expects to read per-device parameters directly from device properties. Another benefit is that other OS can also take these parameters through ACPI _DSD table and take benefit of DSM on RT1011. The kernel driver device properties of RT1011 are documented at linux/Documentation/devicetree/bindings/sound/rt1011.txt It is currently in ASoC maintainer's tree at https://kernel.googlesource.com/pub/scm/linux/kernel/git/broonie/sound/+/for-next/ and hopefully should be merged to mainline kernel in the next merge window. BUG=b:140397934 BRANCH=none TEST=On Helios, with patch series, check realtek,r0_calib and realtek,temperature_calib are available to rt1011 codec driver. Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org> Change-Id: I9550b9890ce2cae787f4f17779a5ade77f619171 Reviewed-on: https://review.coreboot.org/c/coreboot/+/36029 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/drivers/i2c/rt1011/chip.h')
-rw-r--r--src/drivers/i2c/rt1011/chip.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/drivers/i2c/rt1011/chip.h b/src/drivers/i2c/rt1011/chip.h
new file mode 100644
index 0000000000..6bbddac3fd
--- /dev/null
+++ b/src/drivers/i2c/rt1011/chip.h
@@ -0,0 +1,31 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2019 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+/*
+ * Realtek RT1011 audio codec devicetree bindings
+ */
+
+#include <stdint.h>
+
+struct drivers_i2c_rt1011_config {
+ const char *name; /* ACPI Device Name */
+ const char *desc; /* Device Description */
+ unsigned int uid; /* ACPI _UID */
+
+ /* The VPD key of calibrated speaker resistance. */
+ const char *r0_calib_key;
+ /* The VPD key of temperature during speaker calibration. */
+ const char *temperature_calib_key;
+};