From ce79ceec86a38145b3a27aa4c78cf83a76cd51d0 Mon Sep 17 00:00:00 2001 From: Karthikeyan Ramasubramanian Date: Thu, 22 Jul 2021 00:54:03 -0600 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/56508 Tested-by: build bot (Jenkins) Reviewed-by: Evan Green Reviewed-by: Furquan Shaikh --- src/mainboard/google/dedede/Makefile.inc | 1 + src/mainboard/google/dedede/fw_config.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 src/mainboard/google/dedede/fw_config.c 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 +#include +#include + +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);