/*
 * Copyright (c) 2021 Microchip Technology Inc. and its subsidiaries.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef _MEC172X_ESPI_IO_H
#define _MEC172X_ESPI_IO_H

#include <stdint.h>
#include <stddef.h>

/* Offsets from base for various register groups */
#define MCHP_ESPI_IO_PC_OFS		0x0100u
#define MCHP_ESPI_IO_HOST_BAR_OFS	0x0120u
#define MCHP_ESPI_IO_LTR_OFS		0x0220u
#define MCHP_ESPI_IO_OOB_OFS		0x0240u
#define MCHP_ESPI_IO_FC_OFS		0x0280u
#define MCHP_ESPI_IO_CAP_OFS		0x02b0u
#define MCHP_ESPI_IO_SIRQ_OFS		0x03a0u

/* eSPI Global Capabilities 0 */
#define MCHP_ESPI_GBL_CAP0_MASK		0x0fu
#define MCHP_ESPI_GBL_CAP0_PC_SUPP	BIT(0)
#define MCHP_ESPI_GBL_CAP0_VW_SUPP	BIT(1)
#define MCHP_ESPI_GBL_CAP0_OOB_SUPP	BIT(2)
#define MCHP_ESPI_GBL_CAP0_FC_SUPP	BIT(3)

/* eSPI Global Capabilities 1 */
#define MCHP_ESPI_GBL_CAP1_MASK			0xffu
#define MCHP_ESPI_GBL_CAP1_MAX_FREQ_POS		0u
#define MCHP_ESPI_GBL_CAP1_MAX_FREQ_MASK	0x07u
#define MCHP_ESPI_GBL_CAP1_MAX_FREQ_20M		0x00u
#define MCHP_ESPI_GBL_CAP1_MAX_FREQ_25M		0x01u
#define MCHP_ESPI_GBL_CAP1_MAX_FREQ_33M		0x02u
#define MCHP_ESPI_GBL_CAP1_MAX_FREQ_50M		0x03u
#define MCHP_ESPI_GBL_CAP1_MAX_FREQ_66M		0x04u
#define MCHP_ESPI_GBL_CAP1_ALERT_POS		3u /* Read-Only */
#define MCHP_ESPI_GBL_CAP1_ALERT_DED_PIN	\
	BIT(MCHP_ESPI_GBL_CAP1_ALERT_POS)
#define MCHP_ESPI_GBL_CAP1_ALERT_ON_IO1		0u
#define MCHP_ESPI_GBL_CAP1_IO_MODE_POS		4u
#define MCHP_ESPI_GBL_CAP1_IO_MODE_MASK0	0x03u
#define MCHP_ESPI_GBL_CAP1_IO_MODE_MASK		SHLU32(0x03u, 4)
#define MCHP_ESPI_GBL_CAP1_IO_MODE0_1		0u
#define MCHP_ESPI_GBL_CAP1_IO_MODE0_12		1u
#define MCHP_ESPI_GBL_CAP1_IO_MODE0_14		2u
#define MCHP_ESPI_GBL_CAP1_IO_MODE0_124		3u
#define MCHP_ESPI_GBL_CAP1_IO_MODE_1		\
	SHLU32(MCHP_ESPI_GBL_CAP1_IO_MODE0_1, MCHP_ESPI_GBL_CAP1_IO_MODE_POS)

#define MCHP_ESPI_GBL_CAP1_IO_MODE_12		\
	SHLU32(MCHP_ESPI_GBL_CAP1_IO_MODE0_12, MCHP_ESPI_GBL_CAP1_IO_MODE_POS)

#define MCHP_ESPI_GBL_CAP1_IO_MODE_14		\
	SHLU32(MCHP_ESPI_GBL_CAP1_IO_MODE0_14, MCHP_ESPI_GBL_CAP1_IO_MODE_POS)

#define MCHP_ESPI_GBL_CAP1_IO_MODE_124		\
	SHLU32(MCHP_ESPI_GBL_CAP1_IO_MODE0_124, MCHP_ESPI_GBL_CAP1_IO_MODE_POS)

/*
 * Support Open Drain ALERT pin configuration
 * EC sets this bit if it can support open-drain ESPI_ALERT#
 */
#define MCHP_ESPI_GBL_CAP1_ALERT_ODS_POS	6u
#define MCHP_ESPI_GBL_CAP1_ALERT_ODS BIT(MCHP_ESPI_GBL_CAP1_ALERT_ODS_POS)

/*
 * Read-Only ALERT Open Drain select.
 * If EC has indicated it can support open-drain ESPI_ALERT# then
 * the Host can enable open-drain ESPI_ALERT# by sending a configuraiton
 * message. This read-only bit relects the configuration selection.
 */
#define MCHP_ESPI_GBL_CAP1_ALERT_ODS_SEL_POS	7u
#define MCHP_ESPI_GBL_CAP1_ALERT_SEL_ODS \
	BIT(MCHP_ESPI_GBL_CAP1_ALERT_ODS_SEL_POS)

/* Peripheral Channel(PC) Capabilities */
#define MCHP_ESPI_PC_CAP_MASK			0x07u
#define MCHP_ESPI_PC_CAP_MAX_PLD_SZ_MASK	0x07u
#define MCHP_ESPI_PC_CAP_MAX_PLD_SZ_64		0x01u
#define MCHP_ESPI_PC_CAP_MAX_PLD_SZ_128		0x02u
#define MCHP_ESPI_PC_CAP_MAX_PLD_SZ_256		0x03u

/* Virtual Wire(VW) Capabilities */
#define MCHP_ESPI_VW_CAP_MASK			0x3fu
#define MCHP_ESPI_VW_CAP_MAX_VW_CNT_MASK	0x3fu

/* Out-of-Band(OOB) Capabilities */
#define MCHP_ESPI_OOB_CAP_MASK			0x07u
#define MCHP_ESPI_OOB_CAP_MAX_PLD_SZ_MASK	0x07u
#define MCHP_ESPI_OOB_CAP_MAX_PLD_SZ_73		0x01u
#define MCHP_ESPI_OOB_CAP_MAX_PLD_SZ_137	0x02u
#define MCHP_ESPI_OOB_CAP_MAX_PLD_SZ_265	0x03u

/* Flash Channel(FC) Capabilities */
#define MCHP_ESPI_FC_CAP_MASK			0xffu
#define MCHP_ESPI_FC_CAP_MAX_PLD_SZ_MASK	0x07u
#define MCHP_ESPI_FC_CAP_MAX_PLD_SZ_64		0x01u
#define MCHP_ESPI_FC_CAP_SHARE_POS		3u
#define MCHP_ESPI_FC_CAP_SHARE_MASK0		0x03u
#define MCHP_ESPI_FC_CAP_SHARE_MASK		\
	SHLU32(MCHP_ESPI_FC_CAP_SHARE_MASK0, MCHP_ESPI_FC_CAP_SHARE_POS)

#define MCHP_ESPI_FC_CAP_SHARE_MAF_ONLY		0u
#define MCHP_ESPI_FC_CAP_SHARE_MAF2_ONLY	\
	SHLU32(1U, MCHP_ESPI_FC_CAP_SHARE_POS)

#define MCHP_ESPI_FC_CAP_SHARE_SAF_ONLY		\
	SHLU32(2U, MCHP_ESPI_FC_CAP_SHARE_POS)

#define MCHP_ESPI_FC_CAP_SHARE_MAF_SAF		\
	SHLU32(3U, MCHP_ESPI_FC_CAP_SHARE_POS)

#define MCHP_ESPI_FC_CAP_MAX_RD_SZ_POS		5u
#define MCHP_ESPI_FC_CAP_MAX_RD_SZ_MASK0	0x07u
#define MCHP_ESPI_FC_CAP_MAX_RD_SZ_MASK		\
	SHLU32(MCHP_ESPI_FC_CAP_MAX_RD_SZ_MASK0, \
	       MCHP_ESPI_FC_CAP_MAX_RD_SZ_POS)

#define MCHP_ESPI_FC_CAP_MAX_RD_SZ_64		\
	BIT(MCHP_ESPI_FC_CAP_MAX_RD_SZ_POS)

/* PC Ready */
#define MCHP_ESPI_PC_READY_MASK		0x01u;
#define MCHP_ESPI_PC_READY		0x01u;

/* OOB Ready */
#define MCHP_ESPI_OOB_READY_MASK	0x01u;
#define MCHP_ESPI_OOB_READY		0x01u;

/* FC Ready */
#define MCHP_ESPI_FC_READY_MASK		0x01u;
#define MCHP_ESPI_FC_READY		0x01u;

/* ESPI_RESET# Interrupt Status */
#define MCHP_ESPI_RST_ISTS_MASK		0x03u;
#define MCHP_ESPI_RST_ISTS_POS		0u
#define MCHP_ESPI_RST_ISTS		BIT(MCHP_ESPI_RST_ISTS_POS)
#define MCHP_ESPI_RST_ISTS_PIN_RO_POS	1u
#define MCHP_ESPI_RST_ISTS_PIN_RO_HI	BIT(MCHP_ESPI_RST_ISTS_PIN_RO_POS)

/* ESPI_RESET# Interrupt Enable */
#define MCHP_ESPI_RST_IEN_MASK		0x01u
#define MCHP_ESPI_RST_IEN		0x01u

/* eSPI Platform Reset Source */
#define MCHP_ESPI_PLTRST_SRC_MASK	0x01u
#define MCHP_ESPI_PLTRST_SRC_POS	0u
#define MCHP_ESPI_PLTRST_SRC_IS_PIN	0x01u
#define MCHP_ESPI_PLTRST_SRC_IS_VW	0x00u

/* VW Ready */
#define MCHP_ESPI_VW_READY_MASK		0x01u
#define MCHP_ESPI_VW_READY		0x01u

/* SAF Erase Block size */
#define MCHP_ESPI_SERASE_SZ_1K_BITPOS	0
#define MCHP_ESPI_SERASE_SZ_2K_BITPOS	1
#define MCHP_ESPI_SERASE_SZ_4K_BITPOS	2
#define MCHP_ESPI_SERASE_SZ_8K_BITPOS	3
#define MCHP_ESPI_SERASE_SZ_16K_BITPOS	4
#define MCHP_ESPI_SERASE_SZ_32K_BITPOS	5
#define MCHP_ESPI_SERASE_SZ_64K_BITPOS	6
#define MCHP_ESPI_SERASE_SZ_128K_BITPOS 7
#define MCHP_ESPI_SERASE_SZ_1K		BIT(0)
#define MCHP_ESPI_SERASE_SZ_2K		BIT(1)
#define MCHP_ESPI_SERASE_SZ_4K		BIT(2)
#define MCHP_ESPI_SERASE_SZ_8K		BIT(3)
#define MCHP_ESPI_SERASE_SZ_16K		BIT(4)
#define MCHP_ESPI_SERASE_SZ_32K		BIT(5)
#define MCHP_ESPI_SERASE_SZ_64K		BIT(6)
#define MCHP_ESPI_SERASE_SZ_128K	BIT(7)
#define MCHP_ESPI_SERASE_SZ(bitpos) BIT((bitpos) + 10u)

/* VW Error Status */
#define MCHP_ESPI_VW_ERR_STS_MASK		0x33u
#define MCHP_ESPI_VW_ERR_STS_FATAL_POS		0u
#define MCHP_ESPI_VW_ERR_STS_FATAL_RO		\
	BIT(MCHP_ESPI_VW_ERR_STS_FATAL_POS)

#define MCHP_ESPI_VW_ERR_STS_FATAL_CLR_POS	1u
#define MCHP_ESPI_VW_ERR_STS_FATAL_CLR_WO	\
	BIT(MCHP_ESPI_VW_ERR_STS_FATAL_CLR_POS)

#define MCHP_ESPI_VW_ERR_STS_NON_FATAL_POS	4u
#define MCHP_ESPI_VW_ERR_STS_NON_FATAL_RO	\
	BIT(MCHP_ESPI_VW_ERR_STS_NON_FATAL_POS)

#define MCHP_ESPI_VW_ERR_STS_NON_FATAL_CLR_POS	5u
#define MCHP_ESPI_VW_ERR_STS_NON_FATAL_CLR_WO	\
	BIT(MCHP_ESPI_VW_ERR_STS_NON_FATAL_CLR_POS)

/* VW Channel Enable Status */
#define MCHP_ESPI_VW_EN_STS_MASK	0x01u
#define MCHP_ESPI_VW_EN_STS_RO		0x01u

/*
 * MCHP_ESPI_IO_PC - eSPI IO Peripheral Channel registers @ 0x400F3500
 */

/* Peripheral Channel Last Cycle length, type, and tag. */
#define MCHP_ESPI_PC_LC_LEN_POS		0u
#define MCHP_ESPI_PC_LC_LEN_MASK0	0x0fffu
#define MCHP_ESPI_PC_LC_LEN_MASK	0x0fffu
#define MCHP_ESPI_PC_LC_TYPE_POS	12u
#define MCHP_ESPI_PC_LC_TYPE_MASK0	0xffu
#define MCHP_ESPI_PC_LC_TYPE_MASK	(0xffu << 12)
#define MCHP_ESPI_PC_LC_TAG_POS		20u
#define MCHP_ESPI_PC_LC_TAG_MASK0	0x0fu
#define MCHP_ESPI_PC_LC_TAG_MASK	(0x0fu << 20)

/*
 * Peripheral Channel Status
 * Bus error, Channel enable change, and Bus master enable change.
 */
#define MCHP_ESPI_PC_STS_BUS_ERR_POS	16u /* RW1C */
#define MCHP_ESPI_PC_STS_BUS_ERR	BIT(MCHP_ESPI_PC_STS_BUS_ERR_POS)
#define MCHP_ESPI_PC_STS_EN_POS		24u /* RO */
#define MCHP_ESPI_PC_STS_EN		BIT(MCHP_ESPI_PC_STS_EN_POS)
#define MCHP_ESPI_PC_STS_EN_CHG_POS	25u /* RW1C */
#define MCHP_ESPI_PC_STS_EN_CHG		BIT(MCHP_ESPI_PC_STS_EN_CHG_POS)
#define MCHP_ESPI_PC_STS_BM_EN_POS	27u /* RO */
#define MCHP_ESPI_PC_STS_BM_EN		BIT(MCHP_ESPI_PC_STS_BM_EN_POS)
#define MCHP_ESPI_PC_STS_BM_EN_CHG_POS	28u /* RW1C */
#define MCHP_ESPI_PC_STS_BM_EN_CHG	BIT(MCHP_ESPI_PC_STS_BM_EN_CHG_POS)

/*
 * Peripheral Channel Interrupt Enables for
 * Bus error, Channel enable change, and Bus master enable change.
 * PC_LC_ADDR_LSW (@ 0x0000) Periph Chan Last Cycle address LSW
 * PC_LC_ADDR_MSW (@ 0x0004) Periph Chan Last Cycle address MSW
 * PC_LC_LEN_TYPE_TAG (@ 0x0008) Periph Chan Last Cycle length/type/tag
 * PC_ERR_ADDR_LSW (@ 0x000C) Periph Chan Error Address LSW
 * PC_ERR_ADDR_MSW (@ 0x0010) Periph Chan Error Address MSW
 * PC_STATUS (@ 0x0014) Periph Chan Status
 * PC_IEN (@ 0x0018) Periph Chan IEN
 */
#define MCHP_ESPI_PC_IEN_BUS_ERR_POS	16u
#define MCHP_ESPI_PC_IEN_BUS_ERR	BIT(MCHP_ESPI_PC_IEN_BUS_ERR_POS)
#define MCHP_ESPI_PC_IEN_EN_CHG_POS	25u
#define MCHP_ESPI_PC_IEN_EN_CHG		BIT(MCHP_ESPI_PC_IEN_BUS_ERR_POS)
#define MCHP_ESPI_PC_IEN_BM_EN_CHG_POS	28u
#define MCHP_ESPI_PC_IEN_BM_EN_CHG	BIT(MCHP_ESPI_PC_IEN_BUS_ERR_POS)

/*---- ESPI_IO_LTR - eSPI IO LTR registers ----*/
#define MCHP_ESPI_LTR_STS_TX_DONE_POS	0u /* RW1C */
#define MCHP_ESPI_LTR_STS_TX_DONE	BIT(MCHP_ESPI_LTR_STS_TX_DONE_POS)
#define MCHP_ESPI_LTR_STS_OVRUN_POS	3u /* RW1C */
#define MCHP_ESPI_LTR_STS_OVRUN		BIT(MCHP_ESPI_LTR_STS_OVRUN_POS)
#define MCHP_ESPI_LTR_STS_HDIS_POS	4u /* RW1C */
#define MCHP_ESPI_LTR_STS_HDIS		BIT(MCHP_ESPI_LTR_STS_HDIS_POS)
#define MCHP_ESPI_LTR_STS_TX_BUSY_POS	8u /* RO */
#define MCHP_ESPI_LTR_STS_TX_BUSY	BIT(MCHP_ESPI_LTR_STS_TX_BUSY_POS)

#define MCHP_ESPI_LTR_IEN_TX_DONE_POS	0u
#define MCHP_ESPI_LTR_IEN_TX_DONE	BIT(MCHP_ESPI_LTR_IEN_TX_DONE_POS)

#define MCHP_ESPI_LTR_CTRL_START_POS	0u
#define MCHP_ESPI_LTR_CTRL_START	BIT(MCHP_ESPI_LTR_CTRL_START_POS)
#define MCHP_ESPI_LTR_CTRL_TAG_POS	8u
#define MCHP_ESPI_LTR_CTRL_TAG_MASK0	0x0fu
#define MCHP_ESPI_LTR_CTRL_TAG_MASK	\
	SHLU32(MCHP_ESPI_LTR_CTRL_TAG_MASK0, MCHP_ESPI_LTR_CTRL_TAG_POS)

#define MCHP_ESPI_LTR_MSG_VAL_POS	0u
#define MCHP_ESPI_LTR_MSG_VAL_MASK0	0x3ffu
#define MCHP_ESPI_LTR_MSG_VAL_MASK	\
	SHLU32(MCHP_ESPI_LTR_MSG_VAL_MASK0, MCHP_ESPI_LTR_MSG_VAL_POS)
#define MCHP_ESPI_LTR_MSG_SC_POS	10u
#define MCHP_ESPI_LTR_MSG_SC_MASK0	0x07u
#define MCHP_ESPI_LTR_MSG_SC_MASK	\
	SHLU32(MCHP_ESPI_LTR_MSG_SC_MASK0, MCHP_ESPI_LTR_MSG_SC_POS)
#define MCHP_ESPI_LTR_MSG_RT_POS	13u
#define MCHP_ESPI_LTR_MSG_RT_MASK0	0x03u
#define MCHP_ESPI_LTR_MSG_RT_MASK	\
	SHLU32(MCHP_ESPI_LTR_MSG_RT_MASK0, MCHP_ESPI_LTR_MSG_RT_POS)
/* eSPI specification indicates RT field must be 00b */
#define MCHP_ESPI_LTR_MSG_RT_VAL	0u
#define MCHP_ESPI_LTR_MSG_REQ_POS	15u
/* inifinite latency(default) */
#define MCHP_ESPI_LTR_MSG_REQ_INF	0u
/* latency computed from VAL and SC(scale) fields */
#define MCHP_ESPI_LTR_MSG_REQ_VAL	 BIT(MCHP_ESPI_LTR_MSG_REQ_POS)

/*---- ESPI_IO_OOB - eSPI IO OOB registers ----*/
#define MCHP_ESPI_OOB_RX_ADDR_LSW_MASK	0xfffffffcu
#define MCHP_ESPI_OOB_TX_ADDR_LSW_MASK	0xfffffffcu

/* OOB RX_LEN register */
/* Number of bytes received (RO) */
#define MCHP_ESPI_OOB_RX_LEN_POS	0u
#define MCHP_ESPI_OOB_RX_LEN_MASK	0x1fffu
/* Receive buffer length field (RW) */
#define MCHP_ESPI_OOB_RX_BUF_LEN_POS	16u
#define MCHP_ESPI_OOB_RX_BUF_LEN_MASK0	0x1fffu
#define MCHP_ESPI_OOB_RX_BUF_LEN_MASK	\
	SHLU32(MCHP_ESPI_OOB_RX_BUF_LEN_MASK0, MCHP_ESPI_OOB_RX_BUF_LEN_POS)

/* OOB TX_LEN register */
#define MCHP_ESPI_OOB_TX_MSG_LEN_POS	0u
#define MCHP_ESPI_OOB_TX_MSG_LEN_MASK	0x1fffu

/* OOB RX_CTRL */
/* Set AVAIL bit to indicate SRAM Buffer and size has been configured */
#define MCHP_ESPI_OOB_RX_CTRL_AVAIL_POS	0u /* WO */
#define MCHP_ESPI_OOB_RX_CTRL_AVAIL	BIT(MCHP_ESPI_OOB_RX_CTRL_AVAIL_POS)
#define MCHP_ESPI_OOB_RX_CTRL_CHEN_POS	9u /* RO */
#define MCHP_ESPI_OOB_RX_CTRL_CHEN	BIT(MCHP_ESPI_OOB_RX_CTRL_CHEN_POS)
/* Copy of eSPI OOB Capabilities max. payload size */
#define MCHP_ESPI_OOB_RX_CTRL_MAX_SZ_POS	16u /* RO */
#define MCHP_ESPI_OOB_RX_CTRL_MAX_SZ_MASK0	0x07u
#define MCHP_ESPI_OOB_RX_CTRL_MAX_SZ_MASK	\
	SHLU32(MCHP_ESPI_OOB_RX_CTRL_MAX_SZ_MASK0, \
	       MCHP_ESPI_OOB_RX_CTRL_MAX_SZ_POS)

/* OOB RX_IEN */
#define MCHP_ESPI_OOB_RX_IEN_POS	0u
#define MCHP_ESPI_OOB_RX_IEN		BIT(MCHP_ESPI_OOB_RX_IEN_POS)

/* OOB RX_STS */
#define MCHP_ESPI_OOB_RX_STS_DONE_POS	0u /* RW1C */
#define MCHP_ESPI_OOB_RX_STS_DONE	BIT(MCHP_ESPI_OOB_RX_STS_DONE_POS)
#define MCHP_ESPI_OOB_RX_STS_IBERR_POS	1u  /* RW1C */
#define MCHP_ESPI_OOB_RX_STS_IBERR	BIT(MCHP_ESPI_OOB_RX_STS_IBERR_POS)
#define MCHP_ESPI_OOB_RX_STS_OVRUN_POS	2u  /* RW1C */
#define MCHP_ESPI_OOB_RX_STS_OVRUN	BIT(MCHP_ESPI_OOB_RX_STS_OVRUN_POS)
#define MCHP_ESPI_OOB_RX_STS_RXEN_POS	3u  /* RO */
#define MCHP_ESPI_OOB_RX_STS_RXEN	BIT(MCHP_ESPI_OOB_RX_STS_RXEN_POS)
#define MCHP_ESPI_OOB_RX_STS_TAG_POS	8u  /* RO */
#define MCHP_ESPI_OOB_RX_STS_TAG_MASK0	0x0fu
#define MCHP_ESPI_OOB_RX_STS_TAG_MASK	\
	SHLU32(MCHP_ESPI_OOB_RX_STS_TAG_MASK0, MCHP_ESPI_OOB_RX_STS_TAG_POS)

#define MCHP_ESPI_OOB_RX_STS_ALL_RW1C	0x07u
#define MCHP_ESPI_OOB_RX_STS_ALL	0x0fu

/* OOB TX_CTRL */
#define MCHP_ESPI_OOB_TX_CTRL_START_POS 0u /* WO */
#define MCHP_ESPI_OOB_TX_CTRL_START	BIT(MCHP_ESPI_OOB_TX_CTRL_START_POS)
#define MCHP_ESPI_OOB_TX_CTRL_TAG_POS	8u  /* RW */
#define MCHP_ESPI_OOB_TX_CTRL_TAG_MASK0 0x0fu
#define MCHP_ESPI_OOB_TX_CTRL_TAG_MASK	\
	SHLU32(MCHP_ESPI_OOB_TX_CTRL_TAG_MASK0, MCHP_ESPI_OOB_TX_CTRL_TAG_POS)

/* OOB TX_IEN */
#define MCHP_ESPI_OOB_TX_IEN_DONE_POS	0u
#define MCHP_ESPI_OOB_TX_IEN_DONE	BIT(MCHP_ESPI_OOB_TX_IEN_DONE_POS)
#define MCHP_ESPI_OOB_TX_IEN_CHG_EN_POS 1u
#define MCHP_ESPI_OOB_TX_IEN_CHG_EN	BIT(MCHP_ESPI_OOB_TX_IEN_CHG_EN_POS)
#define MCHP_ESPI_OOB_TX_IEN_ALL	0x03u

/* OOB TX_STS */
#define MCHP_ESPI_OOB_TX_STS_DONE_POS	0u /* RW1C */
#define MCHP_ESPI_OOB_TX_STS_DONE	BIT(MCHP_ESPI_OOB_TX_STS_DONE_POS)
#define MCHP_ESPI_OOB_TX_STS_CHG_EN_POS 1u /* RW1C */
#define MCHP_ESPI_OOB_TX_STS_CHG_EN	BIT(MCHP_ESPI_OOB_TX_STS_CHG_EN_POS)
#define MCHP_ESPI_OOB_TX_STS_IBERR_POS	2u /* RW1C */
#define MCHP_ESPI_OOB_TX_STS_IBERR	BIT(MCHP_ESPI_OOB_TX_STS_IBERR_POS)
#define MCHP_ESPI_OOB_TX_STS_OVRUN_POS	3u /* RW1C */
#define MCHP_ESPI_OOB_TX_STS_OVRUN	BIT(MCHP_ESPI_OOB_TX_STS_OVRUN_POS)
#define MCHP_ESPI_OOB_TX_STS_BADREQ_POS 5u /* RW1C */
#define MCHP_ESPI_OOB_TX_STS_BADREQ	BIT(MCHP_ESPI_OOB_TX_STS_BADREQ_POS)
#define MCHP_ESPI_OOB_TX_STS_BUSY_POS	8u /* RO */
#define MCHP_ESPI_OOB_TX_STS_BUSY	BIT(MCHP_ESPI_OOB_TX_STS_BUSY_POS)
/* Read-only copy of OOB Channel Enabled bit */
#define MCHP_ESPI_OOB_TX_STS_CHEN_POS	9u /* RO */
#define MCHP_ESPI_OOB_TX_STS_CHEN	BIT(MCHP_ESPI_OOB_TX_STS_CHEN_POS)

#define MCHP_ESPI_OOB_TX_STS_ALL_RW1C	0x2fu

/*---- MCHP_ESPI_IO_FC - eSPI IO Flash channel registers ----*/
/* FC MEM_ADDR_LSW */
#define MCHP_ESPI_FC_MEM_ADDR_LSW_MASK	0xfffffffcu

/* FC CTRL */
#define MCHP_ESPI_FC_CTRL_START_POS	0u /* WO */
#define MCHP_ESPI_FC_CTRL_START		BIT(MCHP_ESPI_FC_CTRL_START_POS)
#define MCHP_ESPI_FC_CTRL_FUNC_POS	2u  /* RW */
#define MCHP_ESPI_FC_CTRL_FUNC_MASK0	0x03u
#define MCHP_ESPI_FC_CTRL_FUNC_MASK	\
	SHLU32(MCHP_ESPI_FC_CTRL_FUNC_MASK0, MCHP_ESPI_FC_CTRL_FUNC_POS)
#define MCHP_ESPI_FC_CTRL_RD0		0x00u
#define MCHP_ESPI_FC_CTRL_WR0		0x01u
#define MCHP_ESPI_FC_CTRL_ERS0		0x02u
#define MCHP_ESPI_FC_CTRL_ERL0		0x03u
#define MCHP_ESPI_FC_CTRL_FUNC(f)	\
	((uint32_t)(f) & MCHP_ESPI_FC_CTRL_FUNC_MASK)

#define MCHP_ESPI_FC_CTRL_TAG_POS	4u
#define MCHP_ESPI_FC_CTRL_TAG_MASK0	0x0fu
#define MCHP_ESPI_FC_CTRL_TAG_MASK	\
	SHLU32(MCHP_ESPI_FC_CTRL_TAG_MASK0, MCHP_ESPI_FC_CTRL_TAG_POS)

#define MCHP_ESPI_FC_CTRL_TAG(t)	\
	((uint32_t)(t) & MCHP_ESPI_FC_CTRL_TAG_MASK)

#define MCHP_ESPI_FC_CTRL_ABORT_POS	16u /* WO */
#define MCHP_ESPI_FC_CTRL_ABORT		BIT(MCHP_ESPI_FC_CTRL_ABORT_POS)

/* FC IEN */
#define MCHP_ESPI_FC_IEN_DONE_POS	0u
#define MCHP_ESPI_FC_IEN_DONE		BIT(MCHP_ESPI_FC_IEN_DONE_POS)
#define MCHP_ESPI_FC_IEN_CHG_EN_POS	1u
#define MCHP_ESPI_FC_IEN_CHG_EN		BIT(MCHP_ESPI_FC_IEN_CHG_EN_POS)

/* FC CFG */
#define MCHP_ESPI_FC_CFG_BUSY_POS	0u /* RO */
#define MCHP_ESPI_FC_CFG_BUSY		BIT(MCHP_ESPI_FC_CFG_BUSY_POS)
#define MCHP_ESPI_FC_CFG_ERBSZ_POS	2u  /* RO */
#define MCHP_ESPI_FC_CFG_ERBSZ_MASK0	0x07u
#define MCHP_ESPI_FC_CFG_ERBSZ_MASK	\
	SHLU32(MCHP_ESPI_FC_CFG_ERBSZ_MASK0, MCHP_ESPI_FC_CFG_ERBSZ_POS)
#define MCHP_ESPI_FC_CFG_ERBSZ_4K	\
	SHLU32(0x01u, MCHP_ESPI_FC_CFG_ERBSZ_POS)
#define MCHP_ESPI_FC_CFG_ERBSZ_64K	\
	SHLU32(0x02u, MCHP_ESPI_FC_CFG_ERBSZ_POS)
#define MCHP_ESPI_FC_CFG_ERBSZ_4K_64K	\
	SHLU32(0x03u, MCHP_ESPI_FC_CFG_ERBSZ_POS)
#define MCHP_ESPI_FC_CFG_ERBSZ_128K	\
	SHLU32(0x04u, MCHP_ESPI_FC_CFG_ERBSZ_POS)
#define MCHP_ESPI_FC_CFG_ERBSZ_256K	\
	SHLU32(0x05u, MCHP_ESPI_FC_CFG_ERBSZ_POS)
#define MCHP_ESPI_FC_CFG_MAXPLD_POS	8u /* RO */
#define MCHP_ESPI_FC_CFG_MAXPLD_MASK0	0x07u
#define MCHP_ESPI_FC_CFG_MAXPLD_MASK	\
	SHLU32(MCHP_ESPI_FC_CFG_MAXPLD_MASK0, MCHP_ESPI_FC_CFG_MAXPLD_POS)
#define MCHP_ESPI_FC_CFG_MAXPLD_64B	\
	SHLU32(0x01u, MCHP_ESPI_FC_CFG_MAXPLD_POS)
#define MCHP_ESPI_FC_CFG_MAXPLD_128B	\
	SHLU32(0x02u, MCHP_ESPI_FC_CFG_MAXPLD_POS)
#define MCHP_ESPI_FC_CFG_MAXPLD_256B	\
	SHLU32(0x03u, MCHP_ESPI_FC_CFG_MAXPLD_POS)
#define MCHP_ESPI_FC_CFG_SAFS_SEL_POS	11u
#define MCHP_ESPI_FC_CFG_SAFS_SEL	BIT(MCHP_ESPI_FC_CFG_SAFS_SEL_POS)
#define MCHP_ESPI_FC_CFG_MAXRD_POS	12u /* RO */
#define MCHP_ESPI_FC_CFG_MAXRD_MASK0	0x07u
#define MCHP_ESPI_FC_CFG_MAXRD_MASK	\
	SHLU32(MCHP_ESPI_FC_CFG_MAXRD_MASK0, MCHP_ESPI_FC_CFG_MAXRD_POS)
#define MCHP_ESPI_FC_CFG_MAXRD_64B	\
	SHLU32(0x01u, MCHP_ESPI_FC_CFG_MAXRD_POS)
#define MCHP_ESPI_FC_CFG_MAXRD_128B	\
	SHLU32(0x02u, MCHP_ESPI_FC_CFG_MAXRD_POS)
#define MCHP_ESPI_FC_CFG_MAXRD_256B	\
	SHLU32(0x03u, MCHP_ESPI_FC_CFG_MAXRD_POS)
#define MCHP_ESPI_FC_CFG_MAXRD_512B	\
	SHLU32(0x04u, MCHP_ESPI_FC_CFG_MAXRD_POS)
#define MCHP_ESPI_FC_CFG_MAXRD_1K	\
	SHLU32(0x05u, MCHP_ESPI_FC_CFG_MAXRD_POS)
#define MCHP_ESPI_FC_CFG_MAXRD_2K	\
	SHLU32(0x06u, MCHP_ESPI_FC_CFG_MAXRD_POS)
#define MCHP_ESPI_FC_CFG_MAXRD_4K	\
	SHLU32(0x07u, MCHP_ESPI_FC_CFG_MAXRD_POS)
#define MCHP_ESPI_FC_CFG_FORCE_MS_POS	28u /* RW */
#define MCHP_ESPI_FC_CFG_FORCE_MS_MASK0 0x03u
#define MCHP_ESPI_FC_CFG_FORCE_MS_MASK	\
	SHLU32(MCHP_ESPI_FC_CFG_FORCE_MS_MASK0, MCHP_ESPI_FC_CFG_FORCE_MS_POS)
/* Host (eSPI Master) can select MAFS or SAFS */
#define MCHP_ESPI_FC_CFG_FORCE_NONE	0u
/* EC forces eSPI slave HW to only allow MAFS */
#define MCHP_ESPI_FC_CFG_FORCE_MAFS	\
	SHLU32(0x02u, MCHP_ESPI_FC_CFG_FORCE_MS_POS)
/* EC forces eSPI slave HW to only allow SAFS */
#define MCHP_ESPI_FC_CFG_FORCE_SAFS	\
	SHLU32(0x03u, MCHP_ESPI_FC_CFG_FORCE_MS_POS)

/* FC STS */
#define MCHP_ESPI_FC_STS_CHAN_EN_POS	0u /* RO */
#define MCHP_ESPI_FC_STS_CHAN_EN	BIT(MCHP_ESPI_FC_STS_CHAN_EN_POS)

#define MCHP_ESPI_FC_STS_CHAN_EN_CHG_POS	1u /* RW1C */
#define MCHP_ESPI_FC_STS_CHAN_EN_CHG	BIT(MCHP_ESPI_FC_STS_CHAN_EN_CHG_POS)

#define MCHP_ESPI_FC_STS_DONE_POS	2u /* RW1C */
#define MCHP_ESPI_FC_STS_DONE		BIT(MCHP_ESPI_FC_STS_DONE_POS)
#define MCHP_ESPI_FC_STS_MDIS_POS	3u /* RW1C */
#define MCHP_ESPI_FC_STS_MDIS		BIT(MCHP_ESPI_FC_STS_MDIS_POS)
#define MCHP_ESPI_FC_STS_IBERR_POS	4u /* RW1C */
#define MCHP_ESPI_FC_STS_IBERR		BIT(MCHP_ESPI_FC_STS_IBERR_POS)
#define MCHP_ESPI_FC_STS_ABS_POS	5u /* RW1C */
#define MCHP_ESPI_FC_STS_ABS		BIT(MCHP_ESPI_FC_STS_ABS_POS)
#define MCHP_ESPI_FC_STS_OVRUN_POS	6u /* RW1C */
#define MCHP_ESPI_FC_STS_OVRUN		BIT(MCHP_ESPI_FC_STS_OVRUN_POS)
#define MCHP_ESPI_FC_STS_INC_POS	7u /* RW1C */
#define MCHP_ESPI_FC_STS_INC		BIT(MCHP_ESPI_FC_STS_INC_POS)
#define MCHP_ESPI_FC_STS_FAIL_POS	8u /* RW1C */
#define MCHP_ESPI_FC_STS_FAIL		BIT(MCHP_ESPI_FC_STS_FAIL_POS)
#define MCHP_ESPI_FC_STS_OVFL_POS	9u /* RW1C */
#define MCHP_ESPI_FC_STS_OVFL		BIT(MCHP_ESPI_FC_STS_OVFL_POS)
#define MCHP_ESPI_FC_STS_BADREQ_POS	11u /* RW1C */
#define MCHP_ESPI_FC_STS_BADREQ		BIT(MCHP_ESPI_FC_STS_BADREQ_POS)

#define MCHP_ESPI_FC_STS_ALL_RW1C	0x0bfeu

/*---- MCHP_ESPI_IO_BAR_HOST - eSPI IO Host visible BAR registers ----*/

/*
 * IOBAR_INH_LSW/MSW 64-bit register: each bit = 1 inhibits an I/O BAR
 * independent of the BAR's Valid bit.
 * Logical Device Number = bit position.
 */
#define MCHP_ESPI_IOBAR_LDN_MBOX	0u
#define MCHP_ESPI_IOBAR_LDN_KBC		1u
#define MCHP_ESPI_IOBAR_LDN_ACPI_EC_0	2u
#define MCHP_ESPI_IOBAR_LDN_ACPI_EC_1	3u
#define MCHP_ESPI_IOBAR_LDN_ACPI_EC_2	4u
#define MCHP_ESPI_IOBAR_LDN_ACPI_EC_3	5u
#define MCHP_ESPI_IOBAR_LDN_ACPI_EC_4	6u
#define MCHP_ESPI_IOBAR_LDN_ACPI_PM1	7u
#define MCHP_ESPI_IOBAR_LDN_PORT92	8u
#define MCHP_ESPI_IOBAR_LDN_UART_0	9u
#define MCHP_ESPI_IOBAR_LDN_UART_1	10u
#define MCHP_ESPI_IOBAR_LDN_IOC		13u
#define MCHP_ESPI_IOBAR_LDN_MEM		14u
#define MCHP_ESPI_IOBAR_LDN_GLUE_LOG	15u
#define MCHP_ESPI_IOBAR_LDN_EMI_0	16u
#define MCHP_ESPI_IOBAR_LDN_EMI_1	17u
#define MCHP_ESPI_IOBAR_LDN_EMI_2	18u
#define MCHP_ESPI_IOBAR_LDN_RTC		20u
#define MCHP_ESPI_IOBAR_LDN_P80CAP_0	32u	/* BDP Port80 Capture */
#define MCHP_ESPI_IOBAR_LDN_P80CAP_1	31u	/* BDP Alias Capture */
#define MCHP_ESPI_IOBAR_LDN_T32B	47u
#define MCHP_ESPI_IOBAR_LDN_LASIC	48u

/*
 * IOBAR_INIT: Default address of I/O Plug and Play Super-IO index/data
 * configuration registers. (Defaults to 0x2E/0x2F)
 */
#define MCHP_ESPI_IOBAR_INIT_DFLT	0x2eu

/*
 * EC_IRQ: A write to bit[0] triggers EC SERIRQ. The actual
 * SERIRQ slot is configured in MCHP_ESPI_IO_SIRQ.EC_SIRQ
 */
#define MCHP_ESPI_EC_IRQ_GEN (1u << 0)

/* 32-bit Host IO BAR */
#define MCHP_ESPI_IO_BAR_HOST_VALID_POS		0u
#define MCHP_ESPI_IO_BAR_HOST_VALID		\
	BIT(MCHP_ESPI_IO_BAR_HOST_VALID_POS)
#define MCHP_ESPI_IO_BAR_HOST_ADDR_POS		16u
#define MCHP_ESPI_IO_BAR_HOST_ADDR_MASK0	0xffffu
#define MCHP_ESPI_IO_BAR_HOST_ADDR_MASK		0xffff0000u

/* Offsets from first SIRQ */
#define MCHP_ESPI_SIRQ_MBOX_SIRQ	0u
#define MCHP_ESPI_SIRQ_MBOX_SMI		1u
#define MCHP_ESPI_SIRQ_KBC_KIRQ		2u
#define MCHP_ESPI_SIRQ_KBC_MIRQ		3u
#define MCHP_ESPI_SIRQ_ACPI_EC0		4u
#define MCHP_ESPI_SIRQ_ACPI_EC1		5u
#define MCHP_ESPI_SIRQ_ACPI_EC2		6u
#define MCHP_ESPI_SIRQ_ACPI_EC3		7u
#define MCHP_ESPI_SIRQ_ACPI_EC4		8u
#define MCHP_ESPI_SIRQ_UART0		9u
#define MCHP_ESPI_SIRQ_UART1		10u
#define MCHP_ESPI_SIRQ_EMI0_HOST	11u
#define MCHP_ESPI_SIRQ_EMI0_E2H		12u
#define MCHP_ESPI_SIRQ_EMI1_HOST	13u
#define MCHP_ESPI_SIRQ_EMI1_E2H		14u
#define MCHP_ESPI_SIRQ_EMI2_HOST	15u
#define MCHP_ESPI_SIRQ_EMI2_E2H		16u
#define MCHP_ESPI_SIRQ_RTC		17u
#define MCHP_ESPI_SIRQ_EC		18u
#define MCHP_ESPI_SIRQ_RSVD19		19u
#define MCHP_ESPI_SIRQ_MAX		20u

/*
 * Values for Logical Device SIRQ registers.
 * Unless disabled each logical device must have a unique value
 * programmed to its SIRQ register.
 * Values 0x00u through 0x7Fu are sent using VWire host index 0x00
 * Values 0x80h through 0xFEh are sent using VWire host index 0x01
 * All registers reset default is 0xFFu (disabled).
 */
#define MCHP_ESPI_IO_SIRQ_DIS	0xFFu

/* eSPI Memory component registers */
/* BM_STS */
#define MCHP_ESPI_BM_STS_DONE_1_POS	0u /* RW1C */
#define MCHP_ESPI_BM_STS_DONE_1		BIT(MCHP_ESPI_BM_STS_DONE_1_POS)
#define MCHP_ESPI_BM_STS_BUSY_1_POS	1u /* RO */
#define MCHP_ESPI_BM_STS_BUSY_1		BIT(MCHP_ESPI_BM_STS_BUSY_1_POS)
#define MCHP_ESPI_BM_STS_AB_EC_1_POS	2u /* RW1C */
#define MCHP_ESPI_BM_STS_AB_EC_1	BIT(MCHP_ESPI_BM_STS_AB_EC_1_POS)
#define MCHP_ESPI_BM_STS_AB_HOST_1_POS	3u /* RW1C */
#define MCHP_ESPI_BM_STS_AB_HOST_1	BIT(MCHP_ESPI_BM_STS_AB_HOST_1_POS)
#define MCHP_ESPI_BM_STS_AB_CH2_1_POS	4u /* RW1C */
#define MCHP_ESPI_BM_STS_CH2_AB_1	BIT(MCHP_ESPI_BM_STS_AB_CH2_1_POS)
#define MCHP_ESPI_BM_STS_OVFL_1_POS	5u /* RW1C */
#define MCHP_ESPI_BM_STS_OVFL_1_CH2	BIT(MCHP_ESPI_BM_STS_OVFL_1_POS)
#define MCHP_ESPI_BM_STS_OVRUN_1_POS	6u /* RW1C */
#define MCHP_ESPI_BM_STS_OVRUN_1_CH2	BIT(MCHP_ESPI_BM_STS_OVRUN_1_POS)
#define MCHP_ESPI_BM_STS_INC_1_POS	7u /* RW1C */
#define MCHP_ESPI_BM_STS_INC_1		BIT(MCHP_ESPI_BM_STS_INC_1_POS)
#define MCHP_ESPI_BM_STS_FAIL_1_POS	8u /* RW1C */
#define MCHP_ESPI_BM_STS_FAIL_1		BIT(MCHP_ESPI_BM_STS_FAIL_1_POS)
#define MCHP_ESPI_BM_STS_IBERR_1_POS	9u /* RW1C */
#define MCHP_ESPI_BM_STS_IBERR_1	BIT(MCHP_ESPI_BM_STS_IBERR_1_POS)
#define MCHP_ESPI_BM_STS_BADREQ_1_POS	11u /* RW1C */
#define MCHP_ESPI_BM_STS_BADREQ_1	BIT(MCHP_ESPI_BM_STS_BADREQ_1_POS)
#define MCHP_ESPI_BM_STS_DONE_2_POS	16u /* RW1C */
#define MCHP_ESPI_BM_STS_DONE_2		BIT(MCHP_ESPI_BM_STS_DONE_2_POS)
#define MCHP_ESPI_BM_STS_BUSY_2_POS	17u /* RO */
#define MCHP_ESPI_BM_STS_BUSY_2		BIT(MCHP_ESPI_BM_STS_BUSY_2_POS)
#define MCHP_ESPI_BM_STS_AB_EC_2_POS	18u /* RW1C */
#define MCHP_ESPI_BM_STS_AB_EC_2	BIT(MCHP_ESPI_BM_STS_AB_EC_2_POS)
#define MCHP_ESPI_BM_STS_AB_HOST_2_POS	19u /* RW1C */
#define MCHP_ESPI_BM_STS_AB_HOST_2	BIT(MCHP_ESPI_BM_STS_AB_HOST_2_POS)
#define MCHP_ESPI_BM_STS_AB_CH1_2_POS	20u /* RW1C */
#define MCHP_ESPI_BM_STS_AB_CH1_2	BIT(MCHP_ESPI_BM_STS_AB_CH1_2_POS)
#define MCHP_ESPI_BM_STS_OVFL_2_POS	21u /* RW1C */
#define MCHP_ESPI_BM_STS_OVFL_2_CH2	BIT(MCHP_ESPI_BM_STS_OVFL_2_POS)
#define MCHP_ESPI_BM_STS_OVRUN_2_POS	22u /* RW1C */
#define MCHP_ESPI_BM_STS_OVRUN_CH2_2	BIT(MCHP_ESPI_BM_STS_OVRUN_2_POS)
#define MCHP_ESPI_BM_STS_INC_2_POS	23u /* RW1C */
#define MCHP_ESPI_BM_STS_INC_2		BIT(MCHP_ESPI_BM_STS_INC_2_POS)
#define MCHP_ESPI_BM_STS_FAIL_2_POS	24u /* RW1C */
#define MCHP_ESPI_BM_STS_FAIL_2		BIT(MCHP_ESPI_BM_STS_FAIL_2_POS)
#define MCHP_ESPI_BM_STS_IBERR_2_POS	25u /* RW1C */
#define MCHP_ESPI_BM_STS_IBERR_2	BIT(MCHP_ESPI_BM_STS_IBERR_2_POS)
#define MCHP_ESPI_BM_STS_BADREQ_2_POS	27u /* RW1C */
#define MCHP_ESPI_BM_STS_BADREQ_2	BIT(MCHP_ESPI_BM_STS_BADREQ_2_POS)

#define MCHP_ESPI_BM_STS_ALL_RW1C_1	0x0bfdu
#define MCHP_ESPI_BM_STS_ALL_RW1C_2	0x0bfd0000u

/* BM_IEN */
#define MCHP_ESPI_BM1_IEN_DONE_POS	0u
#define MCHP_ESPI_BM1_IEN_DONE		BIT(MCHP_ESPI_BM1_IEN_DONE_POS)
#define MCHP_ESPI_BM2_IEN_DONE_POS	16u
#define MCHP_ESPI_BM2_IEN_DONE		BIT(MCHP_ESPI_BM2_IEN_DONE_POS)

/* BM_CFG */
#define MCHP_ESPI_BM1_CFG_TAG_POS	0u
#define MCHP_ESPI_BM1_CFG_TAG_MASK0	0x0fu
#define MCHP_ESPI_BM1_CFG_TAG_MASK	0x0fu
#define MCHP_ESPI_BM2_CFG_TAG_POS	16u
#define MCHP_ESPI_BM2_CFG_TAG_MASK0	0x0fu
#define MCHP_ESPI_BM2_CFG_TAG_MASK	0x0f0000u

/* BM1_CTRL */
#define MCHP_ESPI_BM1_CTRL_START_POS	0u /* WO */
#define MCHP_ESPI_BM1_CTRL_START	BIT(MCHP_ESPI_BM1_CTRL_START_POS)
#define MCHP_ESPI_BM1_CTRL_ABORT_POS	1u /* WO */
#define MCHP_ESPI_BM1_CTRL_ABORT	BIT(MCHP_ESPI_BM1_CTRL_ABORT_POS)
#define MCHP_ESPI_BM1_CTRL_EN_INC_POS	2u /* RW */
#define MCHP_ESPI_BM1_CTRL_EN_INC	BIT(MCHP_ESPI_BM1_CTRL_EN_INC_POS)
#define MCHP_ESPI_BM1_CTRL_WAIT_NB2_POS 3u  /* RW */
#define MCHP_ESPI_BM1_CTRL_WAIT_NB2	BIT(MCHP_ESPI_BM1_CTRL_WAIT_NB2_POS)
#define MCHP_ESPI_BM1_CTRL_CTYPE_POS	8u
#define MCHP_ESPI_BM1_CTRL_CTYPE_MASK0	0x03u
#define MCHP_ESPI_BM1_CTRL_CTYPE_MASK	\
	SHLU32(MCHP_ESPI_BM1_CTRL_CTYPE_MASK0, MCHP_ESPI_BM1_CTRL_CTYPE_POS)
#define MCHP_ESPI_BM1_CTRL_CTYPE_RD_ADDR32	0x00u
#define MCHP_ESPI_BM1_CTRL_CTYPE_WR_ADDR32	\
	SHLU32(0x01u, MCHP_ESPI_BM1_CTRL_CTYPE_POS)
#define MCHP_ESPI_BM1_CTRL_CTYPE_RD_ADDR64	\
	SHLU32(0x02u, MCHP_ESPI_BM1_CTRL_CTYPE_POS)
#define MCHP_ESPI_BM1_CTRL_CTYPE_WR_ADDR64	\
	SHLU32(0x03u, MCHP_ESPI_BM1_CTRL_CTYPE_POS)
#define MCHP_ESPI_BM1_CTRL_LEN_POS	16u
#define MCHP_ESPI_BM1_CTRL_LEN_MASK0	0x1fffu
#define MCHP_ESPI_BM1_CTRL_LEN_MASK	0x1fff0000u

/* BM1_EC_ADDR_LSW */
#define MCHP_ESPI_BM1_EC_ADDR_LSW_MASK	0xfffffffcu

/* BM2_CTRL */
#define MCHP_ESPI_BM2_CTRL_START_POS	0u /* WO */
#define MCHP_ESPI_BM2_CTRL_START	BIT(MCHP_ESPI_BM2_CTRL_START_POS)
#define MCHP_ESPI_BM2_CTRL_ABORT_POS	1u /* WO */
#define MCHP_ESPI_BM2_CTRL_ABORT	BIT(MCHP_ESPI_BM2_CTRL_ABORT_POS)
#define MCHP_ESPI_BM2_CTRL_EN_INC_POS	2u /* RW */
#define MCHP_ESPI_BM2_CTRL_EN_INC	BIT(MCHP_ESPI_BM2_CTRL_EN_INC_POS)
#define MCHP_ESPI_BM2_CTRL_WAIT_NB2_POS 3u /* RW */
#define MCHP_ESPI_BM2_CTRL_WAIT_NB2	BIT(MCHP_ESPI_BM2_CTRL_WAIT_NB2_POS)
#define MCHP_ESPI_BM2_CTRL_CTYPE_POS		8u
#define MCHP_ESPI_BM2_CTRL_CTYPE_MASK0		0x03u
#define MCHP_ESPI_BM2_CTRL_CTYPE_MASK		0x0300u
#define MCHP_ESPI_BM2_CTRL_CTYPE_RD_ADDR32	0x00u
#define MCHP_ESPI_BM2_CTRL_CTYPE_WR_ADDR32	0x0100u
#define MCHP_ESPI_BM2_CTRL_CTYPE_RD_ADDR64	0x0200u
#define MCHP_ESPI_BM2_CTRL_CTYPE_WR_ADDR64	0x0300u
#define MCHP_ESPI_BM2_CTRL_LEN_POS		16u
#define MCHP_ESPI_BM2_CTRL_LEN_MASK0		0x1fffu
#define MCHP_ESPI_BM2_CTRL_LEN_MASK		0x1fff0000u

/* BM2_EC_ADDR_LSW */
#define MCHP_ESPI_BM2_EC_ADDR_LSW_MASK	0xfffffffcu

/*
 * MCHP_ESPI_MEM_BAR_EC @ 0x400F3930
 * Half-word H0 of each EC Memory BAR contains
 * Memory BAR memory address mask bits in bits[7:0]
 * Logical Device Number in bits[13:8]
 */
#define MCHP_ESPI_EBAR_H0_MEM_MASK_POS	0u
#define MCHP_ESPI_EBAR_H0_MEM_MASK_MASK 0xffu
#define MCHP_ESPI_EBAR_H0_LDN_POS	8u
#define MCHP_ESPI_EBAR_H0_LDN_MASK0	0x3fu
#define MCHP_ESPI_EBAR_H0_LDN_MASK	0x3f00u

/*
 * MCHP_ESPI_MEM_BAR_HOST @ 0x400F3B30
 * Each Host BAR contains:
 * bit[0] (RW) = Valid bit
 * bits[15:1] = Reserved, read-only 0
 * bits[47:16] (RW) = bits[31:0] of the Host Memory address.
 */

/* Memory BAR Host address valid */
#define MCHP_ESPI_HBAR_VALID_POS	0u
#define MCHP_ESPI_HBAR_VALID_MASK	0x01u
/*
 * Host address is in bits[47:16] of the HBAR
 * HBAR's are spaced every 10 bytes (80 bits) but
 * only implement bits[47:0]
 */
#define MCHP_ESPI_HBAR_VALID_OFS	0x00u	/* byte 0 */
/* 32-bit Host Address */
#define MCHP_ESPI_HBAR_ADDR_B0_OFS	0x02u	/* byte 2 */
#define MCHP_ESPI_HBAR_ADDR_B1_OFS	0x03u	/* byte 3 */
#define MCHP_ESPI_HBAR_ADDR_B2_OFS	0x04u	/* byte 4 */
#define MCHP_ESPI_HBAR_ADDR_B3_OFS	0x05u	/* byte 5 */

#define MCHP_EC_SRAM_BAR_H0_VALID_POS		0u
#define MCHP_EC_SRAM_BAR_H0_VALID_MASK0		0x01u
#define MCHP_EC_SRAM_BAR_H0_VALID_MASK		0x01u
#define MCHP_EC_SRAM_BAR_H0_VALID		0x01u
#define MCHP_EC_SRAM_BAR_H0_ACCESS_POS		1u
#define MCHP_EC_SRAM_BAR_H0_ACCESS_MASK0	0x03u
#define MCHP_EC_SRAM_BAR_H0_ACCESS_MASK		0x06u
#define MCHP_EC_SRAM_BAR_H0_ACCESS_NONE		0x00u
#define MCHP_EC_SRAM_BAR_H0_ACCESS_RO		0x02u
#define MCHP_EC_SRAM_BAR_H0_ACCESS_WO		0x04u
#define MCHP_EC_SRAM_BAR_H0_ACCESS_RW		0x06u
#define MCHP_EC_SRAM_BAR_H0_SIZE_POS		4u
#define MCHP_EC_SRAM_BAR_H0_SIZE_MASK0		0x0fu
#define MCHP_EC_SRAM_BAR_H0_SIZE_MASK		0xf0u
#define MCHP_EC_SRAM_BAR_H0_SIZE_1B		0x00u
#define MCHP_EC_SRAM_BAR_H0_SIZE_2B		0x10u
#define MCHP_EC_SRAM_BAR_H0_SIZE_4B		0x20u
#define MCHP_EC_SRAM_BAR_H0_SIZE_8B		0x30u
#define MCHP_EC_SRAM_BAR_H0_SIZE_16B		0x40u
#define MCHP_EC_SRAM_BAR_H0_SIZE_32B		0x50u
#define MCHP_EC_SRAM_BAR_H0_SIZE_64B		0x60u
#define MCHP_EC_SRAM_BAR_H0_SIZE_128B		0x70u
#define MCHP_EC_SRAM_BAR_H0_SIZE_256B		0x80u
#define MCHP_EC_SRAM_BAR_H0_SIZE_512B		0x90u
#define MCHP_EC_SRAM_BAR_H0_SIZE_1KB		0xa0u
#define MCHP_EC_SRAM_BAR_H0_SIZE_2KB		0xb0u
#define MCHP_EC_SRAM_BAR_H0_SIZE_4KB		0xc0u
#define MCHP_EC_SRAM_BAR_H0_SIZE_8KB		0xd0u
#define MCHP_EC_SRAM_BAR_H0_SIZE_16KB		0xe0u
#define MCHP_EC_SRAM_BAR_H0_SIZE_32KB		0xf0u
/* EC and Host SRAM BAR start offset of EC or Host memory address */
#define MCHP_EC_SRAM_BAR_MADDR_OFS1		2u
#define MCHP_EC_SRAM_BAR_MADDR_OFS2		4u

/* Interfaces to any C modules */
#ifdef __cplusplus
extern "C" {
#endif

/* Array indices for eSPI IO BAR Host and EC-only register structures */
enum espi_io_bar_idx {
	IOB_IOC = 0,
	IOB_MEM,
	IOB_MBOX,
	IOB_KBC,
	IOB_ACPI_EC0,
	IOB_ACPI_EC1,
	IOB_ACPI_EC2,
	IOB_ACPI_EC3,
	IOB_ACPI_EC4,
	IOB_ACPI_PM1,
	IOB_PORT92,
	IOB_UART0,
	IOB_UART1,
	IOB_EMI0,
	IOB_EMI1,
	IOB_EMI2,
	IOB_P80BD,		/* MEC152x IOB_P80_CAP0 */
	IOB_P80BD_ALIAS,	/* MEC152x IOB_P80_CAP1 */
	IOB_RTC,
	IOB_RSVD19,
	IOB_T32B,
	IOB_RSVD21,
	IOB_GLUE,
	IOB_MAX
};

/** @brief Serial IRQ byte register indices */
enum espi_io_sirq_idx {
	SIRQ_MBOX = 0,	   SIRQ_MBOX_SMI,     SIRQ_KBC_KIRQ,
	SIRQ_KBC_MIRQ,	   SIRQ_ACPI_EC0_OBF, SIRQ_ACPI_EC1_OBF,
	SIRQ_ACPI_EC2_OBF, SIRQ_ACPI_EC3_OBF, SIRQ_ACPI_EC4_OBF,
	SIRQ_UART0,	   SIRQ_UART1,	      SIRQ_EMI0_HEV,
	SIRQ_EMI0_E2H,	   SIRQ_EMI1_HEV,     SIRQ_EMI1_E2H,
	SIRQ_EMI2_HEV,	   SIRQ_EMI2_E2H,     SIRQ_RTC,
	SIRQ_EC,	   SIRQ_MAX
};

enum espi_mem_bar_idx {
	MEMB_MBOX = 0,
	MEMB_ACPI_EC0,
	MEMB_ACPI_EC1,
	MEMB_ACPI_EC2,
	MEMB_ACPI_EC3,
	MEMB_ACPI_EC4,
	MEMB_EMI0,
	MEMB_EMI1,
	MEMB_EMI2,
	MEMB_T32B,
	MEMB_MAX
};

/* eSPI */
struct espi_io_mbar { /* 80-bit register */
	volatile uint16_t  LDN_MASK;
	volatile uint16_t  RESERVED[4];
}; /* Size = 10 (0xa) */

struct espi_mbar_host {
	volatile uint16_t  VALID;
	volatile uint16_t  HADDR_LSH;
	volatile uint16_t  HADDR_MSH;
	volatile uint16_t  RESERVED[2];
}; /* Size = 10 (0xa) */

struct espi_sram_bar {
	volatile uint16_t  VACCSZ;
	volatile uint16_t  EC_SRAM_BASE_LSH;
	volatile uint16_t  EC_SRAM_BASE_MSH;
	volatile uint16_t  RESERVED[2];
}; /* Size = 10 (0xa) */

struct espi_sram_host_bar {
	volatile uint16_t  ACCSZ;
	volatile uint16_t  HBASE_LSH;
	volatile uint16_t  HBASE_MSH;
	volatile uint16_t  RESERVED[2];
}; /* Size = 10 (0xa) */

/** @brief eSPI Capabilities, I/O and Memory components in one structure */
struct espi_iom_regs { /* @ 0x400F3400 */
	volatile uint8_t   RTIDX;		/* @ 0x0000 */
	volatile uint8_t   RTDAT;		/* @ 0x0001 */
	volatile uint16_t  RESERVED;
	volatile uint32_t  RESERVED1[63];
	volatile uint32_t  PCLC[3];		/* @ 0x0100 */
	volatile uint32_t  PCERR[2];		/* @ 0x010C */
	volatile uint32_t  PCSTS;		/* @ 0x0114 */
	volatile uint32_t  PCIEN;		/* @ 0x0118 */
	volatile uint32_t  RESERVED2;
	volatile uint32_t  PCBINH[2];		/* @ 0x0120 */
	volatile uint32_t  PCBINIT;		/* @ 0x0128 */
	volatile uint32_t  PCECIRQ;		/* @ 0x012C */
	volatile uint32_t  PCCKNP;		/* @ 0x0130 */
	volatile uint32_t  PCBARI[29];		/* @ 0x0134 */
	volatile uint32_t  RESERVED3[30];
	volatile uint32_t  PCLTRSTS;		/* @ 0x0220 */
	volatile uint32_t  PCLTREN;		/* @ 0x0224 */
	volatile uint32_t  PCLTRCTL;		/* @ 0x0228 */
	volatile uint32_t  PCLTRM;		/* @ 0x022C */
	volatile uint32_t  RESERVED4[4];
	volatile uint32_t  OOBRXA[2];		/* @ 0x0240 */
	volatile uint32_t  OOBTXA[2];		/* @ 0x0248 */
	volatile uint32_t  OOBRXL;		/* @ 0x0250 */
	volatile uint32_t  OOBTXL;		/* @ 0x0254 */
	volatile uint32_t  OOBRXC;		/* @ 0x0258 */
	volatile uint32_t  OOBRXIEN;		/* @ 0x025C */
	volatile uint32_t  OOBRXSTS;		/* @ 0x0260 */
	volatile uint32_t  OOBTXC;		/* @ 0x0264 */
	volatile uint32_t  OOBTXIEN;		/* @ 0x0268 */
	volatile uint32_t  OOBTXSTS;		/* @ 0x026C */
	volatile uint32_t  RESERVED5[4];
	volatile uint32_t  FCFA[2];		/* @ 0x0280 */
	volatile uint32_t  FCBA[2];		/* @ 0x0288 */
	volatile uint32_t  FCLEN;		/* @ 0x0290 */
	volatile uint32_t  FCCTL;		/* @ 0x0294 */
	volatile uint32_t  FCIEN;		/* @ 0x0298 */
	volatile uint32_t  FCCFG;		/* @ 0x029C */
	volatile uint32_t  FCSTS;		/* @ 0x02A0 */
	volatile uint32_t  RESERVED6[3];
	volatile uint32_t  VWSTS;		/* @ 0x02B0 */
	volatile uint32_t  RESERVED7[11];
	volatile uint8_t   CAPID;		/* @ 0x02E0 */
	volatile uint8_t   CAP0;		/* @ 0x02E1 */
	volatile uint8_t   CAP1;		/* @ 0x02E2 */
	volatile uint8_t   CAPPC;		/* @ 0x02E3 */
	volatile uint8_t   CAPVW;		/* @ 0x02E4 */
	volatile uint8_t   CAPOOB;		/* @ 0x02E5 */
	volatile uint8_t   CAPFC;		/* @ 0x02E6 */
	volatile uint8_t   PCRDY;		/* @ 0x02E7 */
	volatile uint8_t   OOBRDY;		/* @ 0x02E8 */
	volatile uint8_t   FCRDY;		/* @ 0x02E9 */
	volatile uint8_t   ERIS;		/* @ 0x02EA */
	volatile uint8_t   ERIE;		/* @ 0x02EB */
	volatile uint8_t   PLTSRC;		/* @ 0x02EC */
	volatile uint8_t   VWRDY;		/* @ 0x02ED */
	volatile uint8_t   SAFEBS;		/* @ 0x02EE */
	volatile uint8_t   RESERVED8;
	volatile uint32_t  RESERVED9[16];
	volatile uint32_t  ACTV;		/* @ 0x0330 */
	volatile uint32_t  IOHBAR[29];		/* @ 0x0334 */
	volatile uint32_t  RESERVED10;
	volatile uint8_t   SIRQ[19];		/* @ 0x03ac */
	volatile uint8_t   RESERVED11;
	volatile uint32_t  RESERVED12[12];
	volatile uint32_t  VWERREN;		/* @ 0x03f0 */
	volatile uint32_t  RESERVED13[79];
	struct espi_io_mbar MBAR[10];		/* @ 0x0530 */
	volatile uint32_t  RESERVED14[6];
	struct espi_sram_bar SRAMBAR[2];	/* @ 0x05AC */
	volatile uint32_t  RESERVED15[16];
	volatile uint32_t  BM_STATUS;		/* @ 0x0600 */
	volatile uint32_t  BM_IEN;		/* @ 0x0604 */
	volatile uint32_t  BM_CONFIG;		/* @ 0x0608 */
	volatile uint32_t  RESERVED16;
	volatile uint32_t  BM_CTRL1;		/* @ 0x0610 */
	volatile uint32_t  BM_HADDR1_LSW;	/* @ 0x0614 */
	volatile uint32_t  BM_HADDR1_MSW;	/* @ 0x0618 */
	volatile uint32_t  BM_EC_ADDR1_LSW;	/* @ 0x061C */
	volatile uint32_t  BM_EC_ADDR1_MSW;	/* @ 0x0620 */
	volatile uint32_t  BM_CTRL2;		/* @ 0x0624 */
	volatile uint32_t  BM_HADDR2_LSW;	/* @ 0x0628 */
	volatile uint32_t  BM_HADDR2_MSW;	/* @ 0x062C */
	volatile uint32_t  BM_EC_ADDR2_LSW;	/* @ 0x0630 */
	volatile uint32_t  BM_EC_ADDR2_MSW;	/* @ 0x0634 */
	volatile uint32_t  RESERVED17[62];
	struct espi_mbar_host HMBAR[10];	/* @ 0x0730 */
	volatile uint32_t  RESERVED18[6];
	struct espi_sram_host_bar HSRAMBAR[2];	/* @ 0x07AC */
}; /* Size = 1984 (0x7c0) */

#ifdef __cplusplus
}
#endif

#endif /* #ifndef _MEC172X_ESPI_IO_H */
