/* SPDX-License-Identifier: GPL-2.0-only */

#include <arch/io.h>
#include <endian.h>
#include <device/pnp_ops.h>
#include <device/pnp_def.h>

#include "bootblock.h"

#define PNP_CFG_IDX	0x2e
#define PNP_LDN_SERIAL	0x0d

static void pnp_enter_conf_state(pnp_devfn_t dev)
{
	outb(0x55, PNP_CFG_IDX);
	outb(0x55, PNP_CFG_IDX);
}

static void pnp_exit_conf_state(pnp_devfn_t dev)
{
	outb(0xaa, PNP_CFG_IDX);
}

static void wilco_ec_serial_init(void)
{
	pnp_devfn_t dev = PNP_DEV(PNP_CFG_IDX, PNP_LDN_SERIAL);

	pnp_enter_conf_state(dev);
	pnp_set_logical_device(dev);
	pnp_set_enable(dev, 1);
	pnp_set_iobase(dev, PNP_IDX_IO1, cpu_to_be16(CONFIG_TTYS0_BASE));
	pnp_write_config(dev, PNP_IDX_IO0, 1);
	pnp_exit_conf_state(dev);
}

void wilco_ec_early_init(void)
{
	if (CONFIG(DRIVERS_UART_8250IO))
		wilco_ec_serial_init();
}
