diff options
-rw-r--r-- | src/mainboard/google/dedede/Makefile.inc | 1 | ||||
-rw-r--r-- | src/mainboard/google/dedede/fw_config.c | 23 |
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); |