blob: e27e383e2d46b19274463d340364ca568d19a657 [file] [log] [blame]
/*
* Copyright (c) 2021 Nuvoton Technology Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/dt-bindings/espi/npcx_espi.h>
/*
* Nuvoton NPCX7 eSPI Virtual Wires Mapping Table
* |--------------------------------------------------------------------------|
* | VW idx | SLV reg | Wire Bit 3 | Wire Bit 2 | Wire Bit 1| Wire Bit 0 |
* |--------------------------------------------------------------------------|
* | Input (Master-to-Slave) Virtual Wires |
* |--------------------------------------------------------------------------|
* | 02h[S] | VWEVMS0 | Reserved | SLP_S5# | SLP_S4# | SLP_S3# |
* | 03h[S] | VWEVMS1 | Reserved | OOB_RST_WARN | PLTRST# | SUS_STAT# |
* | 07h[S] | VWEVMS2 | Reserved | Reserved | Reserved | HOS_RST_WARN|
* | 41h[P] | VWEVMS3 | SLP_A# | Reserved | SUS_PDNACK| SUS_WARN# |
* | 42h[P] | VWEVMS4 | Reserved | Reserved | SLP_WLAN# | SLP_LAN# |
* |--------------------------------------------------------------------------|
* | Output (Slave-to-Master) Virtual Wires |
* |--------------------------------------------------------------------------|
* | 04h[S] | VWEVSM0 | PME# | WAKE# | Reserved | OOB_RST_ACK |
* | 05h[S] | VWEVSM1 | SLV_BOOT_STS | ERR_NONFATAL | ERR_FATAL | SLV_BT_DONE |
* | 06h[S] | VWEVSM2 | HOST_RST_ACK | Reserved | SMI# | SCI# |
* | 40h[P] | VWEVSM3 | Reserved | Reserved | Reserved | SUS_ACK# |
* |--------------------------------------------------------------------------|
* | Output (Slave-to-Master) Virtual Wires (High at reset state) |
* |--------------------------------------------------------------------------|
* | 50h[P] | VWGPSM0 | SLV_GPIO_3 | SLV_GPIO_2 | SLV_GPIO_1| SLV_GPIO_0 |
* | 51h[P] | VWGPSM1 | SLV_GPIO_7 | SLV_GPIO_6 | SLV_GPIO_5| SLV_GPIO_4 |
* |--------------------------------------------------------------------------|
* [S] System-/[P] Platform-Specific Virtual Wires
*/
/ {
npcx-espi-vws-map {
compatible = "nuvoton,npcx-espi-vw-conf";
/* eSPI Virtual Vire (VW) input configuration */
/* index 02h (In) */
vw-slp-s3 {
vw-reg = <NPCX_VWEVMS0 0x01>;
vw-wui = <&wui_vw_slp_s3>;
};
vw-slp-s4 {
vw-reg = <NPCX_VWEVMS0 0x02>;
vw-wui = <&wui_vw_slp_s4>;
};
vw-slp-s5 {
vw-reg = <NPCX_VWEVMS0 0x04>;
vw-wui = <&wui_vw_slp_s5>;
};
/* index 03h (In) */
vw-sus-stat {
vw-reg = <NPCX_VWEVMS1 0x01>;
vw-wui = <&wui_vw_sus_stat>;
};
vw-plt-rst {
vw-reg = <NPCX_VWEVMS1 0x02>;
vw-wui = <&wui_vw_plt_rst>;
};
vw-oob-rst-warn {
vw-reg = <NPCX_VWEVMS1 0x04>;
vw-wui = <&wui_vw_oob_rst_warn>;
};
/* index 07h (In) */
vw-host-rst-warn {
vw-reg = <NPCX_VWEVMS2 0x01>;
vw-wui = <&wui_vw_host_rst_warn>;
};
/* index 41h (In) */
vw-sus-warn {
vw-reg = <NPCX_VWEVMS3 0x01>;
vw-wui = <&wui_vw_sus_warn>;
};
vw-sus-pwrdn-ack {
vw-reg = <NPCX_VWEVMS3 0x02>;
vw-wui = <&wui_vw_sus_pwrdn_ack>;
};
vw-slp-a {
vw-reg = <NPCX_VWEVMS3 0x08>;
vw-wui = <&wui_vw_slp_a>;
};
/* index 42h (In) */
vw-slp-lan {
vw-reg = <NPCX_VWEVMS4 0x01>;
vw-wui = <&wui_vw_slp_lan>;
};
vw-slp-wlan {
vw-reg = <NPCX_VWEVMS4 0x02>;
vw-wui = <&wui_vw_slp_wlan>;
};
/* eSPI Virtual Vire (VW) output configuration */
/* index 04h (Out) */
vw-oob-rst-ack {
vw-reg = <NPCX_VWEVSM0 0x01>;
};
vw-wake {
vw-reg = <NPCX_VWEVSM0 0x04>;
};
vw-pme {
vw-reg = <NPCX_VWEVSM0 0x08>;
};
/* index 05h (Out) */
vw-slv-boot-done {
vw-reg = <NPCX_VWEVSM1 0x01>;
};
vw-err-fatal {
vw-reg = <NPCX_VWEVSM1 0x02>;
};
vw-err-non-fatal {
vw-reg = <NPCX_VWEVSM1 0x04>;
};
vw-slv-boot-sts-with-done {
/*
* SLAVE_BOOT_DONE & SLAVE_LOAD_STS bits (bit 0 & bit 3)
* have to be sent together. Hence its bitmask is 0x09.
*/
vw-reg = <NPCX_VWEVSM1 0x09>;
};
/* index 06h (Out) */
vw-sci {
vw-reg = <NPCX_VWEVSM2 0x01>;
};
vw-smi {
vw-reg = <NPCX_VWEVSM2 0x02>;
};
vw-host-rst-ack {
vw-reg = <NPCX_VWEVSM2 0x08>;
};
/* index 40h (Out) */
vw-sus-ack {
vw-reg = <NPCX_VWEVSM3 0x01>;
};
/*
* Virtual wires for platform level usage (High at Reset state)
*/
/* index 50h (Out) */
vw_slv_gpio_0 {
vw-reg = <NPCX_VWGPSM0 0x01>;
};
vw_slv_gpio_1 {
vw-reg = <NPCX_VWGPSM0 0x02>;
};
vw_slv_gpio_2 {
vw-reg = <NPCX_VWGPSM0 0x04>;
};
vw_slv_gpio_3 {
vw-reg = <NPCX_VWGPSM0 0x08>;
};
/* index 51h (Out) */
vw_slv_gpio_4 {
vw-reg = <NPCX_VWGPSM1 0x01>;
};
vw_slv_gpio_5 {
vw-reg = <NPCX_VWGPSM1 0x02>;
};
vw_slv_gpio_6 {
vw-reg = <NPCX_VWGPSM1 0x04>;
};
vw_slv_gpio_7 {
vw-reg = <NPCX_VWGPSM1 0x08>;
};
};
};