/* SPDX-License-Identifier: GPL-2.0-or-later */

#include <baseboard/variants.h>
#include <fw_config.h>
#include <soc/soc_chip.h>

static void ext_vr_update(void)
{
	struct soc_intel_jasperlake_config *cfg = config_of_soc();
	if (fw_config_probe(FW_CONFIG(EXT_VR, EXT_VR_ABSENT)))
		cfg->disable_external_bypass_vr = 1;
}

static void usb_port_update(void)
{
	struct soc_intel_jasperlake_config *cfg = config_of_soc();

	if (fw_config_is_provisioned() &&
	   fw_config_probe(FW_CONFIG(DB_PORTS, DB_PORTS_NONE))) {
		/* Disable USB C1 port */
		cfg->usb2_ports[1].enable = 0;
		cfg->usb3_ports[1].enable = 0;
		/* Disable USB A1 port */
		cfg->usb2_ports[3].enable = 0;
		cfg->usb3_ports[3].enable = 0;
	}
	if (fw_config_is_provisioned() &&
	   fw_config_probe(FW_CONFIG(DB_PORTS, DB_PORTS_LTE))) {
		/* Disable USB C1 port */
		cfg->usb2_ports[1].enable = 0;
		cfg->usb3_ports[1].enable = 0;
	}
}

void variant_devtree_update(void)
{
	ext_vr_update();
	usb_port_update();
}
