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

#include <baseboard/gpio.h>
#include <bootmode.h>
#include <boot/coreboot_tables.h>
#include <gpio.h>
#include <types.h>

void fill_lb_gpios(struct lb_gpios *gpios)
{
	struct lb_gpio chromeos_gpios[] = {
#if CONFIG(VBOOT_LID_SWITCH)
		{-1, ACTIVE_HIGH, get_lid_switch(), "lid"},
#else
		/* fake LID open to avoid shutdown in depthcharge */
		{-1, ACTIVE_HIGH, 1, "lid"},
#endif
		{-1, ACTIVE_HIGH, 0, "power"},
		{-1, ACTIVE_HIGH, gfx_get_init_done(), "oprom"},
		{-1, ACTIVE_HIGH, 0, "EC in RW"},
	};
	lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
}

int get_write_protect_state(void)
{
	return gpio_get(GPIO_PCH_WP);
}

int get_ec_is_trusted(void)
{
	/* VB2_CONTEXT_EC_TRUSTED should be set according to the Ti50 boot mode. */
	return 0;
}
