diff options
-rw-r--r-- | zephyr/program/intelrvp/mtlrvp/src/mtlrvp.c | 13 | ||||
-rw-r--r-- | zephyr/program/rex/src/usbc_config.c | 12 |
2 files changed, 19 insertions, 6 deletions
diff --git a/zephyr/program/intelrvp/mtlrvp/src/mtlrvp.c b/zephyr/program/intelrvp/mtlrvp/src/mtlrvp.c index dbbcb0aef8..cb7e282f63 100644 --- a/zephyr/program/intelrvp/mtlrvp/src/mtlrvp.c +++ b/zephyr/program/intelrvp/mtlrvp/src/mtlrvp.c @@ -32,9 +32,14 @@ #include "usbc_ppc.h" #include "util.h" +#include <zephyr/drivers/espi.h> + #define CPRINTF(format, args...) cprintf(CC_COMMAND, format, ##args) #define CPRINTS(format, args...) cprints(CC_COMMAND, format, ##args) +/* eSPI device */ +#define espi_dev DEVICE_DT_GET(DT_CHOSEN(cros_ec_espi)) + /*******************************************************************/ /* USB-C Configuration Start */ @@ -134,12 +139,14 @@ static void board_connect_c0_sbu_deferred(void) } DECLARE_DEFERRED(board_connect_c0_sbu_deferred); -void board_overcurrent_event(int port, int is_overcurrented) +__override void board_overcurrent_event(int port, int is_overcurrented) { /* - * TODO: Meteorlake PCH does not use Physical GPIO for over current - * error, hence Send 'Over Current Virtual Wire' eSPI signal. + * Meteorlake PCH uses Virtual Wire for over current error, + * hence Send 'Over Current Virtual Wire' eSPI signal. */ + espi_send_vwire(espi_dev, port + ESPI_VWIRE_SIGNAL_SLV_GPIO_0, + !is_overcurrented); } void board_reset_pd_mcu(void) diff --git a/zephyr/program/rex/src/usbc_config.c b/zephyr/program/rex/src/usbc_config.c index 0401b6892b..fceb6e0197 100644 --- a/zephyr/program/rex/src/usbc_config.c +++ b/zephyr/program/rex/src/usbc_config.c @@ -25,11 +25,15 @@ #include "usb_mux.h" #include "usbc_ppc.h" +#include <zephyr/drivers/espi.h> #include <zephyr/drivers/gpio.h> #define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ##args) #define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ##args) +/* eSPI device */ +#define espi_dev DEVICE_DT_GET(DT_CHOSEN(cros_ec_espi)) + /*******************************************************************/ /* USB-C Configuration Start */ @@ -57,12 +61,14 @@ static void usbc_interrupt_init(void) } DECLARE_HOOK(HOOK_INIT, usbc_interrupt_init, HOOK_PRIO_POST_I2C); -void board_overcurrent_event(int port, int is_overcurrented) +__override void board_overcurrent_event(int port, int is_overcurrented) { /* - * TODO: Meteorlake PCH does not use Physical GPIO for over current - * error, hence Send 'Over Current Virtual Wire' eSPI signal. + * Meteorlake PCH uses Virtual Wire for over current error, + * hence Send 'Over Current Virtual Wire' eSPI signal. */ + espi_send_vwire(espi_dev, port + ESPI_VWIRE_SIGNAL_SLV_GPIO_0, + !is_overcurrented); } void sbu_fault_interrupt(enum gpio_signal signal) |