summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKarthikeyan Ramasubramanian <kramasub@google.com>2021-07-22 00:54:03 -0600
committerWerner Zeh <werner.zeh@siemens.com>2021-07-26 05:31:52 +0000
commitce79ceec86a38145b3a27aa4c78cf83a76cd51d0 (patch)
treebb893cbe5a8b101105c1f95ca94a92042739cfbf /src
parent16f2c5082c92ceb4defc252819aaeca96d801543 (diff)
mb/google/dedede: Program VCCIO selection for EN_SPKR GPIO
Realtek speaker amplifiers under auto mode operation have Absolute Max Rating (AMR) at 1.98 V. Hence probe the firmware config for speaker amplifier and program the VCCIOSEL accordingly. BUG=b:194120188 TEST=Build and boot to OS in Gallop. Ensure that the VCCIO selection is configured as expected and probing the GPIO reads the configured voltage. Change-Id: Ifa0b272c23bc70d9b0b23f9cc9222d875cd24921 Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/56508 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Evan Green <evgreen@chromium.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/mainboard/google/dedede/Makefile.inc1
-rw-r--r--src/mainboard/google/dedede/fw_config.c17
2 files changed, 18 insertions, 0 deletions
diff --git a/src/mainboard/google/dedede/Makefile.inc b/src/mainboard/google/dedede/Makefile.inc
index 1b5503d40f..cc815d857b 100644
--- a/src/mainboard/google/dedede/Makefile.inc
+++ b/src/mainboard/google/dedede/Makefile.inc
@@ -9,6 +9,7 @@ ramstage-$(CONFIG_CHROMEOS) += chromeos.c
ramstage-y += mainboard.c
ramstage-y += ec.c
ramstage-y += board_info.c
+ramstage-$(CONFIG_FW_CONFIG) += fw_config.c
VARIANT_DIR:=$(call strip_quotes,$(CONFIG_VARIANT_DIR))
diff --git a/src/mainboard/google/dedede/fw_config.c b/src/mainboard/google/dedede/fw_config.c
new file mode 100644
index 0000000000..178f0e1679
--- /dev/null
+++ b/src/mainboard/google/dedede/fw_config.c
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <bootstate.h>
+#include <fw_config.h>
+#include <gpio.h>
+
+static const struct pad_config spkr_pads[] = {
+ PAD_CFG_GPO_VCCIOSEL(GPP_D17, 0, PLTRST, 1V8),
+};
+
+static void fw_config_handle(void *unused)
+{
+ if (fw_config_probe(FW_CONFIG(AUDIO_AMP, RT1015P_AUTO))) {
+ gpio_configure_pads(spkr_pads, ARRAY_SIZE(spkr_pads));
+ }
+}
+BOOT_STATE_INIT_ENTRY(BS_DEV_ENABLE, BS_ON_ENTRY, fw_config_handle, NULL);