From 8665db1dabf4a71a4c8b4628a7bcf2ca45cc393e Mon Sep 17 00:00:00 2001 From: Dino Li Date: Wed, 2 Nov 2022 14:37:55 +0800 Subject: [PATCH] espi: it8xxx2: reset PLTRST# virtual wire signal during eSPI reset The PLTRST# virtual wire signal's reset signal is eSPI Reset#. But it8xxx2 didn't enable the feature by default. This change will enable the feature at default. Signed-off-by: Dino Li --- drivers/espi/espi_it8xxx2.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/espi/espi_it8xxx2.c b/drivers/espi/espi_it8xxx2.c index da7d1b6584c..eff5f5d7075 100644 --- a/drivers/espi/espi_it8xxx2.c +++ b/drivers/espi/espi_it8xxx2.c @@ -47,6 +47,12 @@ LOG_MODULE_REGISTER(espi, CONFIG_ESPI_LOG_LEVEL); #define IT8XXX2_ESPI_VW_INTERRUPT_ENABLE BIT(7) #define IT8XXX2_ESPI_INTERRUPT_PUT_PC BIT(7) +/* + * VWCTRL2 register: + * bit4 = 1b: Refers to ESPI_RESET# for PLTRST#. + */ +#define IT8XXX2_ESPI_VW_RESET_PLTRST BIT(4) + #define IT8XXX2_ESPI_UPSTREAM_ENABLE BIT(7) #define IT8XXX2_ESPI_UPSTREAM_GO BIT(6) #define IT8XXX2_ESPI_UPSTREAM_INTERRUPT_ENABLE BIT(5) @@ -1870,6 +1876,9 @@ static int espi_it8xxx2_init(const struct device *dev) DEVICE_DT_INST_GET(0), 0); irq_enable(IT8XXX2_ESPI_VW_IRQ); + /* Reset PLTRST# virtual wire signal during eSPI reset */ + vw_reg->VWCTRL2 |= IT8XXX2_ESPI_VW_RESET_PLTRST; + #ifdef CONFIG_ESPI_OOB_CHANNEL espi_it8xxx2_oob_init(dev); #endif