espi: updated MEC172x espi module for pinctrl

Changes to espi module to support pinctrl

Signed-off-by: Jay Vasanth <jay.vasanth@microchip.com>
This commit is contained in:
Jay Vasanth 2022-01-21 12:15:27 -05:00 committed by Carles Cufí
commit f8130d5ce3
3 changed files with 24 additions and 3 deletions

View file

@ -1207,13 +1207,17 @@ static const struct espi_xec_irq_info espi_xec_irq_info_0[] = {
DT_FOREACH_PROP_ELEM(DT_NODELABEL(espi0), girqs, XEC_IRQ_INFO)
};
/* pin control structure(s) */
PINCTRL_DT_INST_DEFINE(0);
static const struct espi_xec_config espi_xec_config = {
.base_addr = DT_INST_REG_ADDR(0),
.vw_base_addr = DT_INST_REG_ADDR_BY_NAME(0, vw),
.pcr_idx = DT_INST_PROP_BY_IDX(0, pcrs, 0),
.pcr_bitpos = DT_INST_PROP_BY_IDX(0, pcrs, 1),
.irq_info_list = espi_xec_irq_info_0,
.irq_info_size = ARRAY_SIZE(espi_xec_irq_info_0),
.irq_info_list = espi_xec_irq_info_0,
.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(0),
};
DEVICE_DT_INST_DEFINE(0, &espi_xec_init, NULL,
@ -1288,6 +1292,8 @@ static void espi_xec_connect_irqs(const struct device *dev)
* contains the state of 4 virtual wires.
* The total supported virtual wires is 64 * 4 = 256.
* MEC172x supports 11 MSVW groups and 11 SMVW groups.
* NOTE: While ESPI_nRESET is active most of the eSPI hardware is held
* in reset state.
*/
static int espi_xec_init(const struct device *dev)
{
@ -1297,6 +1303,12 @@ static int espi_xec_init(const struct device *dev)
struct pcr_regs *pcr = XEC_PCR_REG_BASE;
int ret;
ret = pinctrl_apply_state(cfg->pcfg, PINCTRL_STATE_DEFAULT);
if (ret != 0) {
LOG_ERR("XEC eSPI V2 pinctrl setup failed (%d)", ret);
return ret;
}
data->plt_rst_asserted = 0;
#ifdef ESPI_XEC_V2_DEBUG
data->espi_rst_count = 0;

View file

@ -10,6 +10,7 @@
#include <stdint.h>
#include <device.h>
#include <drivers/espi.h>
#include <drivers/pinctrl.h>
#define ESPI_XEC_V2_DEBUG 1
@ -38,8 +39,10 @@ struct espi_xec_config {
uint32_t vw_base_addr;
uint8_t pcr_idx;
uint8_t pcr_bitpos;
const struct espi_xec_irq_info *irq_info_list;
uint8_t irq_info_size;
uint8_t rsvd[1];
const struct espi_xec_irq_info *irq_info_list;
const struct pinctrl_dev_config *pcfg;
};
#define ESPI_XEC_CONFIG(dev) \