summaryrefslogtreecommitdiff
path: root/src/mainboard/google
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/google')
-rw-r--r--src/mainboard/google/dedede/Makefile.inc1
-rw-r--r--src/mainboard/google/dedede/fw_config.c23
2 files changed, 24 insertions, 0 deletions
diff --git a/src/mainboard/google/dedede/Makefile.inc b/src/mainboard/google/dedede/Makefile.inc
index 1b5503d40f..290f2a3b68 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-y += 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..895f4891f5
--- /dev/null
+++ b/src/mainboard/google/dedede/fw_config.c
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <arch/mmio.h>
+#include <bootstate.h>
+#include <console/console.h>
+#include <fw_config.h>
+#include <gpio.h>
+#include <intelblocks/gpio.h>
+
+#define PAD_CFG_DW2_OFFSET (2 * sizeof(uint32_t))
+#define VCCIOSEL_1V8 (1 << 8)
+
+static void fw_config_handle(void *unused)
+{
+ void *pad_conf_offset = gpio_dwx_address(GPP_D17) + PAD_CFG_DW2_OFFSET;
+ uint32_t pad_conf = read32(pad_conf_offset);
+
+ if (fw_config_probe(FW_CONFIG(AUDIO_AMP, RT1015P_AUTO))) {
+ pad_conf |= VCCIOSEL_1V8;
+ write32(pad_conf_offset, pad_conf);
+ }
+}
+BOOT_STATE_INIT_ENTRY(BS_DEV_ENABLE, BS_ON_ENTRY, fw_config_handle, NULL);