Browse Source
add espi driver for rts5912 Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>pull/90829/head
8 changed files with 992 additions and 0 deletions
@ -0,0 +1,9 @@ |
|||||||
|
# Copyright (c) 2025, Realtek, SIBG-SD7 |
||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
config ESPI_RTS5912 |
||||||
|
bool "Realtek RTS5912 eSPI Driver" |
||||||
|
default y |
||||||
|
depends on DT_HAS_REALTEK_RTS5912_ESPI_ENABLED |
||||||
|
help |
||||||
|
Enable the Realtek RTS5912 eSPI driver. |
@ -0,0 +1,240 @@ |
|||||||
|
/*
|
||||||
|
* Copyright (c) 2025 Realtek, SIBG-SD7 |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: Apache-2.0 |
||||||
|
*/ |
||||||
|
|
||||||
|
#define DT_DRV_COMPAT realtek_rts5912_espi |
||||||
|
|
||||||
|
#include <zephyr/kernel.h> |
||||||
|
#include <zephyr/drivers/espi.h> |
||||||
|
#include <zephyr/drivers/gpio.h> |
||||||
|
#include <zephyr/drivers/pinctrl.h> |
||||||
|
#include <zephyr/drivers/clock_control.h> |
||||||
|
#include <zephyr/drivers/clock_control/clock_control_rts5912.h> |
||||||
|
#include <zephyr/logging/log.h> |
||||||
|
|
||||||
|
LOG_MODULE_REGISTER(espi, CONFIG_ESPI_LOG_LEVEL); |
||||||
|
|
||||||
|
#include "espi_utils.h" |
||||||
|
#include "reg/reg_espi.h" |
||||||
|
|
||||||
|
BUILD_ASSERT(DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT) == 1, "support only one espi compatible node"); |
||||||
|
|
||||||
|
struct espi_rts5912_config { |
||||||
|
volatile struct espi_reg *const espi_reg; |
||||||
|
uint32_t espislv_clk_grp; |
||||||
|
uint32_t espislv_clk_idx; |
||||||
|
const struct device *clk_dev; |
||||||
|
const struct pinctrl_dev_config *pcfg; |
||||||
|
}; |
||||||
|
|
||||||
|
struct espi_rts5912_data { |
||||||
|
sys_slist_t callbacks; |
||||||
|
uint32_t config_data; |
||||||
|
}; |
||||||
|
|
||||||
|
/*
|
||||||
|
* ========================================================================= |
||||||
|
* ESPI common function and API |
||||||
|
* ========================================================================= |
||||||
|
*/ |
||||||
|
|
||||||
|
#define RTS5912_ESPI_MAX_FREQ_20 20 |
||||||
|
#define RTS5912_ESPI_MAX_FREQ_25 25 |
||||||
|
#define RTS5912_ESPI_MAX_FREQ_33 33 |
||||||
|
#define RTS5912_ESPI_MAX_FREQ_50 50 |
||||||
|
#define RTS5912_ESPI_MAX_FREQ_66 66 |
||||||
|
|
||||||
|
static int espi_rts5912_configure(const struct device *dev, struct espi_cfg *cfg) |
||||||
|
{ |
||||||
|
const struct espi_rts5912_config *const espi_config = dev->config; |
||||||
|
struct espi_rts5912_data *data = dev->data; |
||||||
|
volatile struct espi_reg *const espi_reg = espi_config->espi_reg; |
||||||
|
|
||||||
|
uint32_t gen_conf = 0; |
||||||
|
uint8_t io_mode = 0; |
||||||
|
|
||||||
|
/* Maximum Frequency Supported */ |
||||||
|
switch (cfg->max_freq) { |
||||||
|
case RTS5912_ESPI_MAX_FREQ_20: |
||||||
|
gen_conf |= 0UL << ESPI_ESPICFG_MXFREQSUP_Pos; |
||||||
|
break; |
||||||
|
case RTS5912_ESPI_MAX_FREQ_25: |
||||||
|
gen_conf |= 1UL << ESPI_ESPICFG_MXFREQSUP_Pos; |
||||||
|
break; |
||||||
|
case RTS5912_ESPI_MAX_FREQ_33: |
||||||
|
gen_conf |= 2UL << ESPI_ESPICFG_MXFREQSUP_Pos; |
||||||
|
break; |
||||||
|
case RTS5912_ESPI_MAX_FREQ_50: |
||||||
|
gen_conf |= 3UL << ESPI_ESPICFG_MXFREQSUP_Pos; |
||||||
|
break; |
||||||
|
case RTS5912_ESPI_MAX_FREQ_66: |
||||||
|
gen_conf |= 4UL << ESPI_ESPICFG_MXFREQSUP_Pos; |
||||||
|
break; |
||||||
|
default: |
||||||
|
return -EINVAL; |
||||||
|
} |
||||||
|
|
||||||
|
/* I/O Mode Supported */ |
||||||
|
io_mode = cfg->io_caps >> 1; |
||||||
|
|
||||||
|
if (io_mode > 3) { |
||||||
|
return -EINVAL; |
||||||
|
} |
||||||
|
gen_conf |= io_mode << ESPI_ESPICFG_IOSUP_Pos; |
||||||
|
|
||||||
|
/* Channel Supported */ |
||||||
|
if (cfg->channel_caps & ESPI_CHANNEL_PERIPHERAL) { |
||||||
|
gen_conf |= BIT(0) << ESPI_ESPICFG_CHSUP_Pos; |
||||||
|
} |
||||||
|
|
||||||
|
if (cfg->channel_caps & ESPI_CHANNEL_VWIRE) { |
||||||
|
gen_conf |= BIT(1) << ESPI_ESPICFG_CHSUP_Pos; |
||||||
|
} |
||||||
|
|
||||||
|
if (cfg->channel_caps & ESPI_CHANNEL_OOB) { |
||||||
|
gen_conf |= BIT(2) << ESPI_ESPICFG_CHSUP_Pos; |
||||||
|
} |
||||||
|
|
||||||
|
if (cfg->channel_caps & ESPI_CHANNEL_FLASH) { |
||||||
|
gen_conf |= BIT(3) << ESPI_ESPICFG_CHSUP_Pos; |
||||||
|
} |
||||||
|
|
||||||
|
espi_reg->ESPICFG = gen_conf; |
||||||
|
data->config_data = espi_reg->ESPICFG; |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
static bool espi_rts5912_channel_ready(const struct device *dev, enum espi_channel ch) |
||||||
|
{ |
||||||
|
const struct espi_rts5912_config *const espi_config = dev->config; |
||||||
|
volatile struct espi_reg *const espi_reg = espi_config->espi_reg; |
||||||
|
|
||||||
|
switch (ch) { |
||||||
|
case ESPI_CHANNEL_PERIPHERAL: |
||||||
|
return espi_reg->EPCFG & ESPI_EPCFG_CHEN ? true : false; |
||||||
|
case ESPI_CHANNEL_VWIRE: |
||||||
|
return espi_reg->EVCFG & ESPI_EVCFG_CHEN ? true : false; |
||||||
|
case ESPI_CHANNEL_OOB: |
||||||
|
return espi_reg->EOCFG & ESPI_EOCFG_CHEN ? true : false; |
||||||
|
case ESPI_CHANNEL_FLASH: |
||||||
|
return espi_reg->EFCONF & ESPI_EFCONF_CHEN ? true : false; |
||||||
|
default: |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
static int espi_rts5912_manage_callback(const struct device *dev, struct espi_callback *callback, |
||||||
|
bool set) |
||||||
|
{ |
||||||
|
struct espi_rts5912_data *data = dev->data; |
||||||
|
|
||||||
|
return espi_manage_callback(&data->callbacks, callback, set); |
||||||
|
} |
||||||
|
|
||||||
|
static DEVICE_API(espi, espi_rts5912_driver_api) = { |
||||||
|
.config = espi_rts5912_configure, |
||||||
|
.get_channel_status = espi_rts5912_channel_ready, |
||||||
|
.manage_callback = espi_rts5912_manage_callback, |
||||||
|
}; |
||||||
|
|
||||||
|
static void espi_rst_isr(const struct device *dev) |
||||||
|
{ |
||||||
|
const struct espi_rts5912_config *const espi_config = dev->config; |
||||||
|
struct espi_rts5912_data *data = dev->data; |
||||||
|
|
||||||
|
struct espi_event evt = {.evt_type = ESPI_BUS_RESET, .evt_details = 0, .evt_data = 0}; |
||||||
|
|
||||||
|
volatile struct espi_reg *const espi_reg = espi_config->espi_reg; |
||||||
|
uint32_t status = espi_reg->ERSTCFG; |
||||||
|
|
||||||
|
espi_reg->ERSTCFG |= ESPI_ERSTCFG_RSTSTS; |
||||||
|
espi_reg->ERSTCFG ^= ESPI_ERSTCFG_RSTPOL; |
||||||
|
|
||||||
|
if (status & ESPI_ERSTCFG_RSTSTS) { |
||||||
|
if (status & ESPI_ERSTCFG_RSTPOL) { |
||||||
|
/* rst pin high go low trigger interrupt */ |
||||||
|
evt.evt_data = 0; |
||||||
|
} else { |
||||||
|
/* rst pin low go high trigger interrupt */ |
||||||
|
evt.evt_data = 1; |
||||||
|
} |
||||||
|
espi_send_callbacks(&data->callbacks, dev, evt); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
static void espi_bus_reset_setup(const struct device *dev) |
||||||
|
{ |
||||||
|
const struct espi_rts5912_config *const espi_config = dev->config; |
||||||
|
volatile struct espi_reg *const espi_reg = espi_config->espi_reg; |
||||||
|
|
||||||
|
espi_reg->ERSTCFG = ESPI_ERSTCFG_RSTINTEN; |
||||||
|
espi_reg->ERSTCFG = ESPI_ERSTCFG_RSTMONEN; |
||||||
|
|
||||||
|
if (espi_reg->ERSTCFG & ESPI_ERSTCFG_RSTSTS) { |
||||||
|
/* high to low */ |
||||||
|
espi_reg->ERSTCFG = |
||||||
|
ESPI_ERSTCFG_RSTMONEN | ESPI_ERSTCFG_RSTPOL | ESPI_ERSTCFG_RSTINTEN; |
||||||
|
} else { |
||||||
|
/* low to high */ |
||||||
|
espi_reg->ERSTCFG = ESPI_ERSTCFG_RSTMONEN | ESPI_ERSTCFG_RSTINTEN; |
||||||
|
} |
||||||
|
|
||||||
|
NVIC_ClearPendingIRQ(DT_IRQ_BY_NAME(DT_DRV_INST(0), bus_rst, irq)); |
||||||
|
|
||||||
|
IRQ_CONNECT(DT_IRQ_BY_NAME(DT_DRV_INST(0), bus_rst, irq), |
||||||
|
DT_IRQ_BY_NAME(DT_DRV_INST(0), bus_rst, priority), espi_rst_isr, |
||||||
|
DEVICE_DT_GET(DT_DRV_INST(0)), 0); |
||||||
|
irq_enable(DT_IRQ_BY_NAME(DT_DRV_INST(0), bus_rst, irq)); |
||||||
|
} |
||||||
|
|
||||||
|
static int espi_rts5912_init(const struct device *dev) |
||||||
|
{ |
||||||
|
const struct espi_rts5912_config *const espi_config = dev->config; |
||||||
|
struct rts5912_sccon_subsys sccon; |
||||||
|
|
||||||
|
int rc; |
||||||
|
|
||||||
|
/* Setup eSPI pins */ |
||||||
|
rc = pinctrl_apply_state(espi_config->pcfg, PINCTRL_STATE_DEFAULT); |
||||||
|
if (rc < 0) { |
||||||
|
LOG_ERR("eSPI pinctrl setup failed (%d)", rc); |
||||||
|
return rc; |
||||||
|
} |
||||||
|
|
||||||
|
if (!device_is_ready(espi_config->clk_dev)) { |
||||||
|
LOG_ERR("eSPI clock not ready"); |
||||||
|
return -ENODEV; |
||||||
|
} |
||||||
|
|
||||||
|
/* Enable eSPI clock */ |
||||||
|
sccon.clk_grp = espi_config->espislv_clk_grp; |
||||||
|
sccon.clk_idx = espi_config->espislv_clk_idx; |
||||||
|
rc = clock_control_on(espi_config->clk_dev, (clock_control_subsys_t)&sccon); |
||||||
|
if (rc != 0) { |
||||||
|
LOG_ERR("eSPI clock control on failed"); |
||||||
|
goto exit; |
||||||
|
} |
||||||
|
|
||||||
|
/* Setup eSPI bus reset */ |
||||||
|
espi_bus_reset_setup(dev); |
||||||
|
exit: |
||||||
|
return rc; |
||||||
|
} |
||||||
|
|
||||||
|
PINCTRL_DT_INST_DEFINE(0); |
||||||
|
|
||||||
|
static struct espi_rts5912_data espi_rts5912_data_0; |
||||||
|
|
||||||
|
static const struct espi_rts5912_config espi_rts5912_config = { |
||||||
|
.espi_reg = (volatile struct espi_reg *const)DT_INST_REG_ADDR_BY_NAME(0, espi_target), |
||||||
|
.espislv_clk_grp = DT_CLOCKS_CELL_BY_NAME(DT_DRV_INST(0), espi_target, clk_grp), |
||||||
|
.espislv_clk_idx = DT_CLOCKS_CELL_BY_NAME(DT_DRV_INST(0), espi_target, clk_idx), |
||||||
|
.clk_dev = DEVICE_DT_GET(DT_INST_CLOCKS_CTLR(0)), |
||||||
|
.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(0), |
||||||
|
}; |
||||||
|
|
||||||
|
DEVICE_DT_INST_DEFINE(0, &espi_rts5912_init, NULL, &espi_rts5912_data_0, &espi_rts5912_config, |
||||||
|
PRE_KERNEL_2, CONFIG_ESPI_INIT_PRIORITY, &espi_rts5912_driver_api); |
@ -0,0 +1,19 @@ |
|||||||
|
# Copyright (c) 2025, Realtek, SIBG-SD7 |
||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
description: Realtek RTS5912 eSPI controller |
||||||
|
|
||||||
|
compatible: "realtek,rts5912-espi" |
||||||
|
|
||||||
|
include: [espi-controller.yaml, pinctrl-device.yaml] |
||||||
|
|
||||||
|
properties: |
||||||
|
reg: |
||||||
|
description: mmio register space |
||||||
|
required: true |
||||||
|
|
||||||
|
pinctrl-0: |
||||||
|
required: true |
||||||
|
|
||||||
|
pinctrl-names: |
||||||
|
required: true |
@ -0,0 +1,633 @@ |
|||||||
|
/*
|
||||||
|
* Copyright (c) 2025 Realtek, SIBG-SD7 |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: Apache-2.0 |
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef ZEPHYR_SOC_REALTEK_RTS5912_REG_ESPI_H |
||||||
|
#define ZEPHYR_SOC_REALTEK_RTS5912_REG_ESPI_H |
||||||
|
|
||||||
|
struct espi_reg { |
||||||
|
uint32_t EPSTS; |
||||||
|
uint32_t EPCFG; |
||||||
|
uint32_t EPINTEN; |
||||||
|
const uint32_t EPRXINFO; |
||||||
|
uint32_t EPRXADRH; |
||||||
|
uint32_t EPRXADRL; |
||||||
|
uint32_t EPCPRADR; |
||||||
|
uint32_t EPCPRVLD; |
||||||
|
uint32_t EPBUF; |
||||||
|
uint32_t EPBUFSZ; |
||||||
|
uint32_t EPPTRCLR; |
||||||
|
uint32_t ELMSG; |
||||||
|
uint32_t EPMRDA; |
||||||
|
uint32_t EPMRADRL; |
||||||
|
uint32_t EPMRADRH; |
||||||
|
uint32_t EPMRLEN; |
||||||
|
uint32_t EVSTS; |
||||||
|
uint32_t EVCFG; |
||||||
|
uint32_t EVIDX2; |
||||||
|
uint32_t EVIDX3; |
||||||
|
uint32_t EVIDX7; |
||||||
|
uint32_t EVIDX41; |
||||||
|
uint32_t EVIDX42; |
||||||
|
uint32_t EVIDX43; |
||||||
|
uint32_t EVIDX44; |
||||||
|
uint32_t EVIDX47; |
||||||
|
uint32_t EVIDX4A; |
||||||
|
uint32_t EVTXDAT; |
||||||
|
uint32_t EVPVIDX; |
||||||
|
uint32_t EVRXINTEN; |
||||||
|
uint32_t EVTXINTEN; |
||||||
|
uint32_t EOSTS; |
||||||
|
uint32_t EOCFG; |
||||||
|
uint32_t EORXINTEN; |
||||||
|
uint32_t EORXBUF; |
||||||
|
uint32_t EORXLEN; |
||||||
|
uint32_t EOTXBUF; |
||||||
|
uint32_t EOTXLEN; |
||||||
|
uint32_t EOTXCTRL; |
||||||
|
uint32_t EOTXINTEN; |
||||||
|
uint32_t EFSTS; |
||||||
|
uint32_t EFCONF; |
||||||
|
uint32_t EMADR; |
||||||
|
uint32_t EMTRLEN; |
||||||
|
uint32_t EMBUF; |
||||||
|
uint32_t EMCTRL; |
||||||
|
uint32_t EMINTEN; |
||||||
|
uint32_t ESBUF; |
||||||
|
uint32_t ESINTEN; |
||||||
|
uint32_t ESRXADR; |
||||||
|
uint32_t ESRXLEN; |
||||||
|
uint32_t ESPICFG; |
||||||
|
uint32_t ERSTCFG; |
||||||
|
uint32_t EVIDX51; |
||||||
|
uint32_t EVIDX61; |
||||||
|
uint32_t ESRXC; |
||||||
|
uint32_t EFCFG2; |
||||||
|
uint32_t EFCFG3; |
||||||
|
uint32_t EFCFG4; |
||||||
|
const uint32_t RESERVED[3]; |
||||||
|
uint32_t ELCTRL; |
||||||
|
uint32_t ESBUF1; |
||||||
|
uint32_t ESPRG0; |
||||||
|
uint32_t ESPRG1; |
||||||
|
uint32_t ESPDRT; |
||||||
|
uint32_t ESP0STR; |
||||||
|
uint32_t ESP1STR; |
||||||
|
uint32_t ESP2STR; |
||||||
|
uint32_t ESP3STR; |
||||||
|
uint32_t ESP4STR; |
||||||
|
uint32_t ESP5STR; |
||||||
|
uint32_t ESP6STR; |
||||||
|
uint32_t ESP7STR; |
||||||
|
uint32_t ESP8STR; |
||||||
|
uint32_t ESP9STR; |
||||||
|
uint32_t ESPASTR; |
||||||
|
uint32_t ESPBSTR; |
||||||
|
uint32_t ESPCSTR; |
||||||
|
uint32_t ESPDSTR; |
||||||
|
uint32_t ESPESTR; |
||||||
|
uint32_t ESPFSTR; |
||||||
|
uint32_t ESP0LEN; |
||||||
|
uint32_t ESP1LEN; |
||||||
|
uint32_t ESP2LEN; |
||||||
|
uint32_t ESP3LEN; |
||||||
|
uint32_t ESP4LEN; |
||||||
|
uint32_t ESP5LEN; |
||||||
|
uint32_t ESP6LEN; |
||||||
|
uint32_t ESP7LEN; |
||||||
|
uint32_t ESP8LEN; |
||||||
|
uint32_t ESP9LEN; |
||||||
|
uint32_t ESPALEN; |
||||||
|
uint32_t ESPBLEN; |
||||||
|
uint32_t ESPCLEN; |
||||||
|
uint32_t ESPDLEN; |
||||||
|
uint32_t ESPELEN; |
||||||
|
uint32_t ESPFLEN; |
||||||
|
uint32_t ESWPRG0; |
||||||
|
uint32_t ESRPRG0; |
||||||
|
uint32_t ESWPRG1; |
||||||
|
uint32_t ESRPRG1; |
||||||
|
uint32_t ESWPRG2; |
||||||
|
uint32_t ESRPRG2; |
||||||
|
uint32_t ESWPRG3; |
||||||
|
uint32_t ESRPRG3; |
||||||
|
uint32_t ESWPRG4; |
||||||
|
uint32_t ESRPRG4; |
||||||
|
uint32_t ESWPRG5; |
||||||
|
uint32_t ESRPRG5; |
||||||
|
uint32_t ESWPRG6; |
||||||
|
uint32_t ESRPRG6; |
||||||
|
uint32_t ESWPRG7; |
||||||
|
uint32_t ESRPRG7; |
||||||
|
uint32_t ESWPRG8; |
||||||
|
uint32_t ESRPRG8; |
||||||
|
uint32_t ESWPRG9; |
||||||
|
uint32_t ESRPRG9; |
||||||
|
uint32_t ESWPRGA; |
||||||
|
uint32_t ESRPRGA; |
||||||
|
uint32_t ESWPRGB; |
||||||
|
uint32_t ESRPRGB; |
||||||
|
uint32_t ESWPRGC; |
||||||
|
uint32_t ESRPRGC; |
||||||
|
uint32_t ESWPRGD; |
||||||
|
uint32_t ESRPRGD; |
||||||
|
uint32_t ESWPRGE; |
||||||
|
uint32_t ESRPRGE; |
||||||
|
uint32_t ESWPRGF; |
||||||
|
uint32_t ESRPRGF; |
||||||
|
uint32_t ESPREN; |
||||||
|
uint32_t ESPSTS; |
||||||
|
uint32_t ESFLSZ; |
||||||
|
uint32_t ESPINTEN; |
||||||
|
uint32_t IOSHORTSTS; |
||||||
|
uint32_t IOSHORTRDADDR; |
||||||
|
uint32_t IOSHORTRDDATA; |
||||||
|
uint32_t LDNCFG; |
||||||
|
uint32_t ID0; |
||||||
|
uint32_t ID1; |
||||||
|
uint32_t VER; |
||||||
|
}; |
||||||
|
|
||||||
|
BUILD_ASSERT(sizeof(struct espi_reg) == 568, "reg_espi size is not correct"); |
||||||
|
|
||||||
|
/* EPSTS */ |
||||||
|
#define ESPI_EPSTS_MWDONE BIT(0) |
||||||
|
#define ESPI_EPSTS_MWADMS BIT(1) |
||||||
|
#define ESPI_EPSTS_MRDONE BIT(2) |
||||||
|
#define ESPI_EPSTS_LTXDONE BIT(3) |
||||||
|
#define ESPI_EPSTS_CLRSTS BIT(4) |
||||||
|
|
||||||
|
/* EPCFG */ |
||||||
|
#define ESPI_EPCFG_CHEN BIT(0) |
||||||
|
#define ESPI_EPCFG_CHRDY BIT(1) |
||||||
|
#define ESPI_EPCFG_BMTREN BIT(2) |
||||||
|
#define ESPI_EPCFG_MXPLSUP GENMASK(6, 4) |
||||||
|
#define ESPI_EPCFG_MXPLSEL GENMASK(10, 8) |
||||||
|
#define ESPI_EPCFG_MXRDSZ GENMASK(14, 12) |
||||||
|
|
||||||
|
/* EPINTEN */ |
||||||
|
#define ESPI_EPINTEN_CFGCHGEN BIT(0) |
||||||
|
#define ESPI_EPINTEN_MEMWREN BIT(1) |
||||||
|
#define ESPI_EPINTEN_MEMRDEN BIT(2) |
||||||
|
|
||||||
|
/* EPRXINFO */ |
||||||
|
#define ESPI_EPRXINFO_LENGTH GENMASK(11, 0) |
||||||
|
#define ESPI_EPRXINFO_TAG GENMASK(15, 12) |
||||||
|
#define ESPI_EPRXINFO_CYCLE GENMASK(23, 16) |
||||||
|
#define ESPI_EPRXINFO_OPCODE GENMASK(31, 24) |
||||||
|
|
||||||
|
/* EPCPRVLD */ |
||||||
|
#define ESPI_EPCPRVLD_VALIDEN BIT(0) |
||||||
|
|
||||||
|
/* EPBUFSZ */ |
||||||
|
#define ESPI_EPBUFSZ_SIZE GENMASK(3, 0) |
||||||
|
|
||||||
|
/* EPPTRCLR */ |
||||||
|
#define ESPI_EPPTRCLR_WRCLR BIT(0) |
||||||
|
#define ESPI_EPPTRCLR_RDCLR BIT(1) |
||||||
|
|
||||||
|
/* ELMSG */ |
||||||
|
#define ESPI_ELMSG_MSGDAT GENMASK(15, 0) |
||||||
|
#define ESPI_ELMSG_MSGCODE GENMASK(31, 16) |
||||||
|
|
||||||
|
/* EPMRLEN */ |
||||||
|
#define ESPI_EPMRLEN_RXLEN GENMASK(11, 0) |
||||||
|
|
||||||
|
/* EVSTS */ |
||||||
|
#define ESPI_EVSTS_RXEPT BIT(0) |
||||||
|
#define ESPI_EVSTS_RXOVR BIT(1) |
||||||
|
#define ESPI_EVSTS_TXFULL BIT(2) |
||||||
|
#define ESPI_EVSTS_ILLCHG BIT(3) |
||||||
|
#define ESPI_EVSTS_IDX2CHG BIT(4) |
||||||
|
#define ESPI_EVSTS_IDX3CHG BIT(5) |
||||||
|
#define ESPI_EVSTS_IDX7CHG BIT(6) |
||||||
|
#define ESPI_EVSTS_IDX41CHG BIT(7) |
||||||
|
#define ESPI_EVSTS_IDX42CHG BIT(8) |
||||||
|
#define ESPI_EVSTS_IDX43CHG BIT(9) |
||||||
|
#define ESPI_EVSTS_IDX44CHG BIT(10) |
||||||
|
#define ESPI_EVSTS_IDX47CHG BIT(11) |
||||||
|
#define ESPI_EVSTS_IDX4ACHG BIT(12) |
||||||
|
#define ESPI_EVSTS_IDX51CHG BIT(13) |
||||||
|
#define ESPI_EVSTS_IDX61CHG BIT(14) |
||||||
|
#define ESPI_EVSTS_RXIDXCHG BIT(15) |
||||||
|
#define ESPI_EVSTS_TXDONE BIT(16) |
||||||
|
#define ESPI_EVSTS_RXIDXCLR BIT(17) |
||||||
|
|
||||||
|
/* EVCFG */ |
||||||
|
#define ESPI_EVCFG_CHEN BIT(0) |
||||||
|
#define ESPI_EVCFG_CHRDY BIT(1) |
||||||
|
#define ESPI_EVCFG_MAXSUP GENMASK(13, 8) |
||||||
|
#define ESPI_EVCFG_MAXCNT GENMASK(21, 16) |
||||||
|
|
||||||
|
/* EVIDX2 */ |
||||||
|
#define ESPI_EVIDX2_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVIDX3 */ |
||||||
|
#define ESPI_EVIDX3_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVIDX7 */ |
||||||
|
#define ESPI_EVIDX7_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVIDX41 */ |
||||||
|
#define ESPI_EVIDX41_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVIDX42 */ |
||||||
|
#define ESPI_EVIDX42_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVIDX43 */ |
||||||
|
#define ESPI_EVIDX43_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVIDX44 */ |
||||||
|
#define ESPI_EVIDX44_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVIDX47 */ |
||||||
|
#define ESPI_EVIDX47_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVIDX4A */ |
||||||
|
#define ESPI_EVIDX4A_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVTXDAT */ |
||||||
|
#define ESPI_EVTXDAT_TXDAT GENMASK(7, 0) |
||||||
|
#define ESPI_EVTXDAT_TXIDX GENMASK(15, 8) |
||||||
|
|
||||||
|
/* EVPVIDX */ |
||||||
|
#define ESPI_EVPVIDX_PVIDX GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVRXINTEN */ |
||||||
|
#define ESPI_EVRXINTEN_CFGCHGEN BIT(0) |
||||||
|
#define ESPI_EVRXINTEN_RXCHGEN GENMASK(2, 1) |
||||||
|
|
||||||
|
/* EVTXINTEN */ |
||||||
|
#define ESPI_EVTXINTEN_TXMPTEN BIT(0) |
||||||
|
|
||||||
|
/* EOSTS */ |
||||||
|
#define ESPI_EOSTS_RXPND BIT(0) |
||||||
|
#define ESPI_EOSTS_RXDONE BIT(1) |
||||||
|
#define ESPI_EOSTS_TXPND BIT(2) |
||||||
|
#define ESPI_EOSTS_TXDONE BIT(3) |
||||||
|
#define ESPI_EOSTS_CFGENCHG BIT(4) |
||||||
|
|
||||||
|
/* EOCFG */ |
||||||
|
#define ESPI_EOCFG_CHEN BIT(0) |
||||||
|
#define ESPI_EOCFG_CHRDY BIT(1) |
||||||
|
#define ESPI_EOCFG_MXSZSUP GENMASK(6, 4) |
||||||
|
#define ESPI_EOCFG_MXSZSEL GENMASK(10, 8) |
||||||
|
|
||||||
|
/* EORXINTEN */ |
||||||
|
#define ESPI_EORXINTEN_CHENCHG BIT(0) |
||||||
|
#define ESPI_EORXINTEN_RXEN GENMASK(1, 0) |
||||||
|
|
||||||
|
/* EORXBUF */ |
||||||
|
#define ESPI_EORXBUF_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EORXLEN */ |
||||||
|
#define ESPI_EORXLEN_LENGTH GENMASK(11, 0) |
||||||
|
|
||||||
|
/* EOTXBUF */ |
||||||
|
#define ESPI_EOTXBUF_TXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EOTXLEN */ |
||||||
|
#define ESPI_EOTXLEN_LENGTH GENMASK(11, 0) |
||||||
|
|
||||||
|
/* EOTXCTRL */ |
||||||
|
#define ESPI_EOTXCTRL_TXSTR BIT(0) |
||||||
|
|
||||||
|
/* EOTXINTEN */ |
||||||
|
#define ESPI_EOTXINTEN_TXEN BIT(0) |
||||||
|
|
||||||
|
/* EFSTS */ |
||||||
|
#define ESPI_EFSTS_MAFTXDN BIT(0) |
||||||
|
#define ESPI_EFSTS_MAFREOVR BIT(1) |
||||||
|
#define ESPI_EFSTS_MAFREUDR BIT(2) |
||||||
|
#define ESPI_EFSTS_SAFDONE BIT(3) |
||||||
|
#define ESPI_EFSTS_SAFRW BIT(4) |
||||||
|
#define ESPI_EFSTS_SAFERS BIT(5) |
||||||
|
#define ESPI_EFSTS_CHENCHG BIT(6) |
||||||
|
#define ESPI_EFSTS_OP2 BIT(7) |
||||||
|
|
||||||
|
/* EFCONF */ |
||||||
|
#define ESPI_EFCONF_CHEN BIT(0) |
||||||
|
#define ESPI_EFCONF_CHRDY BIT(1) |
||||||
|
#define ESPI_EFCONF_ERBLKSZ GENMASK(3, 1) |
||||||
|
#define ESPI_EFCONF_MXPLSUP GENMASK(13, 11) |
||||||
|
#define ESPI_EFCONF_MXPLSEL GENMASK(15, 13) |
||||||
|
#define ESPI_EFCONF_SHAREMD BIT(11) |
||||||
|
#define ESPI_EFCONF_MXRDSZ GENMASK(14, 12) |
||||||
|
#define ESPI_EFCONF_SHARECAPSP GENMASK(18, 16) |
||||||
|
#define ESPI_EFCONF_RPMCCNT1 GENMASK(22, 20) |
||||||
|
#define ESPI_EFCONF_RPMCOP1 GENMASK(31, 24) |
||||||
|
|
||||||
|
/* EMTRLEN */ |
||||||
|
#define ESPI_EMTRLEN_TRLEN GENMASK(11, 0) |
||||||
|
|
||||||
|
/* EMCTRL */ |
||||||
|
#define ESPI_EMCTRL_START BIT(0) |
||||||
|
#define ESPI_EMCTRL_MDSEL_Pos 1 |
||||||
|
#define ESPI_EMCTRL_MDSEL_Msk (0x3UL << ESPI_EMCTRL_MDSEL_Pos) |
||||||
|
#define ESPI_EMCTRL_MDSEL GENMASK(2, 1) |
||||||
|
|
||||||
|
/* EMINTEN */ |
||||||
|
#define ESPI_EMINTEN_CHENCHG BIT(0) |
||||||
|
#define ESPI_EMINTEN_TRDONEEN BIT(1) |
||||||
|
|
||||||
|
/* ESBUF */ |
||||||
|
#define ESPI_ESINTEN_TRDONEEN BIT(0) |
||||||
|
#define ESPI_ESINTEN_ERASEEN BIT(1) |
||||||
|
#define ESPI_ESINTEN_RPMCEN BIT(2) |
||||||
|
|
||||||
|
/* ESRXADR */ |
||||||
|
#define ESPI_ESRXLEN_LENGTH GENMASK(11, 0) |
||||||
|
|
||||||
|
/* ESPICFG */ |
||||||
|
#define ESPI_ESPICFG_CHSUP_Pos (0UL) |
||||||
|
#define ESPI_ESPICFG_CHSUP GENMASK(7, 0) |
||||||
|
#define ESPI_ESPICFG_MXWAITALW GENMASK(11, 8) |
||||||
|
#define ESPI_ESPICFG_MXFREQSUP_Pos (16UL) |
||||||
|
#define ESPI_ESPICFG_MXFREQSUP_Msk (0x7UL << ESPI_ESPICFG_MXFREQSUP_Pos) |
||||||
|
#define ESPI_ESPICFG_ODALRSUP BIT(19) |
||||||
|
#define ESPI_ESPICFG_OPFREQ GENMASK(22, 20) |
||||||
|
#define ESPI_ESPICFG_ODALRSEL GENMASK(25, 24) |
||||||
|
#define ESPI_ESPICFG_IOSUP_Pos (24UL) /*!< IOSUP (Bit 24) */ |
||||||
|
#define ESPI_ESPICFG_IOSUP GENMASK(27, 26) |
||||||
|
#define ESPI_ESPICFG_IOSEL GENMASK(29, 28) |
||||||
|
#define ESPI_ESPICFG_ALRMODE BIT(28) |
||||||
|
#define ESPI_ESPICFG_RTCINBMC BIT(29) |
||||||
|
#define ESPI_ESPICFG_RSPMDFEN BIT(30) |
||||||
|
#define ESPI_ESPICFG_CRCCHKEN BIT(31) |
||||||
|
|
||||||
|
/* ERSTCFG */ |
||||||
|
#define ESPI_ERSTCFG_RSTMONEN BIT(0) |
||||||
|
#define ESPI_ERSTCFG_RSTPOL BIT(1) |
||||||
|
#define ESPI_ERSTCFG_RSTINTEN BIT(2) |
||||||
|
#define ESPI_ERSTCFG_RSTSTS BIT(3) |
||||||
|
|
||||||
|
/* EVIDX51 */ |
||||||
|
#define ESPI_EVIDX51_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EVIDX61 */ |
||||||
|
#define ESPI_EVIDX61_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* ESRXC */ |
||||||
|
#define ESPI_ESRXC_RXDAT GENMASK(7, 0) |
||||||
|
|
||||||
|
/* EFCFG2 */ |
||||||
|
#define ESPI_EFCFG2_MXRDSZ GENMASK(2, 0) |
||||||
|
#define ESPI_EFCFG2_ERBLKSZ GENMASK(11, 8) |
||||||
|
#define ESPI_EFCFG2_RPMCSP GENMASK(21, 16) |
||||||
|
#define ESPI_EFCFG2_NUMRPMC GENMASK(24, 22) |
||||||
|
|
||||||
|
/* EFCFG3 */ |
||||||
|
#define ESPI_EFCFG3_RPMCCNT2 GENMASK(23, 20) |
||||||
|
#define ESPI_EFCFG3_RPMCOP2 GENMASK(31, 24) |
||||||
|
|
||||||
|
/* EFCFG4 */ |
||||||
|
#define ESPI_EFCFG4_RPMCCNT3 GENMASK(3, 0) |
||||||
|
#define ESPI_EFCFG4_RPMCOP3 GENMASK(11, 8) |
||||||
|
#define ESPI_EFCFG4_RPMCCNT4 GENMASK(23, 20) |
||||||
|
#define ESPI_EFCFG4_RPMCOP4 GENMASK(31, 24) |
||||||
|
|
||||||
|
/* ELCTRL */ |
||||||
|
#define ESPI_ELCTRL_TXSTR BIT(0) |
||||||
|
|
||||||
|
/* ESBUF1 */ |
||||||
|
#define ESPI_ESPRG0_TAG0GRP GENMASK(2, 0) |
||||||
|
#define ESPI_ESPRG0_TAG1GRP GENMASK(6, 4) |
||||||
|
#define ESPI_ESPRG0_TAG2GRP GENMASK(10, 8) |
||||||
|
#define ESPI_ESPRG0_TAG3GRP GENMASK(14, 12) |
||||||
|
#define ESPI_ESPRG0_TAG4GRP GENMASK(18, 16) |
||||||
|
#define ESPI_ESPRG0_TAG5GRP GENMASK(22, 20) |
||||||
|
#define ESPI_ESPRG0_TAG6GRP GENMASK(26, 24) |
||||||
|
#define ESPI_ESPRG0_TAG7GRP GENMASK(30, 28) |
||||||
|
|
||||||
|
/* ESPRG1 */ |
||||||
|
#define ESPI_ESPRG1_TAG8GRP GENMASK(2, 0) |
||||||
|
#define ESPI_ESPRG1_TAG9GRP GENMASK(6, 4) |
||||||
|
#define ESPI_ESPRG1_TAGAGRP GENMASK(10, 8) |
||||||
|
#define ESPI_ESPRG1_TAGBGRP GENMASK(14, 12) |
||||||
|
#define ESPI_ESPRG1_TAGCGRP GENMASK(18, 16) |
||||||
|
#define ESPI_ESPRG1_TAGDGRP GENMASK(22, 20) |
||||||
|
#define ESPI_ESPRG1_TAGEGRP GENMASK(26, 24) |
||||||
|
#define ESPI_ESPRG1_TAGFGRP GENMASK(30, 28) |
||||||
|
|
||||||
|
/* ESPDRT */ |
||||||
|
#define ESPI_ESPDRT_TAGDRT BIT(0) |
||||||
|
|
||||||
|
/* ESP0STR */ |
||||||
|
#define ESPI_ESP0STR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESP1STR */ |
||||||
|
#define ESPI_ESP1STR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESP2STR */ |
||||||
|
#define ESPI_ESP2STR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESP3STR */ |
||||||
|
#define ESPI_ESP3STR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESP4STR */ |
||||||
|
#define ESPI_ESP4STR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESP5STR */ |
||||||
|
#define ESPI_ESP5STR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESP6STR */ |
||||||
|
#define ESPI_ESP6STR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESP7STR */ |
||||||
|
#define ESPI_ESP7STR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESP8STR */ |
||||||
|
#define ESPI_ESP8STR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESP9STR */ |
||||||
|
#define ESPI_ESP9STR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESPASTR */ |
||||||
|
#define ESPI_ESPASTR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESPBSTR */ |
||||||
|
#define ESPI_ESPBSTR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESPCSTR */ |
||||||
|
#define ESPI_ESPCSTR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESPDSTR */ |
||||||
|
#define ESPI_ESPDSTR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESPESTR */ |
||||||
|
#define ESPI_ESPESTR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESPFSTR */ |
||||||
|
#define ESPI_ESPFSTR_ADDR GENMASK(19, 0) |
||||||
|
|
||||||
|
/* ESP0LEN */ |
||||||
|
#define ESPI_ESP0LEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESP1LEN */ |
||||||
|
#define ESPI_ESP1LEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESP2LEN */ |
||||||
|
#define ESPI_ESP2LEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESP3LEN */ |
||||||
|
#define ESPI_ESP3LEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESP4LEN */ |
||||||
|
#define ESPI_ESP4LEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESP5LEN */ |
||||||
|
#define ESPI_ESP5LEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESP6LEN */ |
||||||
|
#define ESPI_ESP6LEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESP7LEN */ |
||||||
|
#define ESPI_ESP7LEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESP8LEN */ |
||||||
|
#define ESPI_ESP8LEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESP9LEN */ |
||||||
|
#define ESPI_ESP9LEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESPALEN */ |
||||||
|
#define ESPI_ESPALEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESPBLEN */ |
||||||
|
#define ESPI_ESPBLEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESPCLEN */ |
||||||
|
#define ESPI_ESPCLEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESPDLEN */ |
||||||
|
#define ESPI_ESPDLEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESPELEN */ |
||||||
|
#define ESPI_ESPELEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESPFLEN */ |
||||||
|
#define ESPI_ESPFLEN_LEN GENMASK(15, 0) |
||||||
|
|
||||||
|
/* ESWPRG0 */ |
||||||
|
#define ESPI_ESWPRG0_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRG1 */ |
||||||
|
#define ESPI_ESWPRG1_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRG2 */ |
||||||
|
#define ESPI_ESWPRG2_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRG3 */ |
||||||
|
#define ESPI_ESWPRG3_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRG4 */ |
||||||
|
#define ESPI_ESWPRG4_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRG5 */ |
||||||
|
#define ESPI_ESWPRG5_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRG6 */ |
||||||
|
#define ESPI_ESWPRG6_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRG7 */ |
||||||
|
#define ESPI_ESWPRG7_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRG8 */ |
||||||
|
#define ESPI_ESWPRG8_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRG9 */ |
||||||
|
#define ESPI_ESWPRG9_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRGA */ |
||||||
|
#define ESPI_ESWPRGA_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRGB */ |
||||||
|
#define ESPI_ESWPRGB_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRGC */ |
||||||
|
#define ESPI_ESWPRGC_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRGD */ |
||||||
|
#define ESPI_ESWPRGD_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRGE */ |
||||||
|
#define ESPI_ESWPRGE_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESWPRGF */ |
||||||
|
#define ESPI_ESWPRGF_GWREN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRG0 */ |
||||||
|
#define ESPI_ESRPRG0_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRG1 */ |
||||||
|
#define ESPI_ESRPRG1_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRG2 */ |
||||||
|
#define ESPI_ESRPRG2_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRG3 */ |
||||||
|
#define ESPI_ESRPRG3_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRG4 */ |
||||||
|
#define ESPI_ESRPRG4_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRG5 */ |
||||||
|
#define ESPI_ESRPRG5_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRG6 */ |
||||||
|
#define ESPI_ESRPRG6_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRG7 */ |
||||||
|
#define ESPI_ESRPRG7_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRG8 */ |
||||||
|
#define ESPI_ESRPRG8_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRG9 */ |
||||||
|
#define ESPI_ESRPRG9_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRGA */ |
||||||
|
#define ESPI_ESRPRGA_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRGB */ |
||||||
|
#define ESPI_ESRPRGB_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRGC */ |
||||||
|
#define ESPI_ESRPRGC_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRGD */ |
||||||
|
#define ESPI_ESRPRGD_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRGE */ |
||||||
|
#define ESPI_ESRPRGE_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESRPRGF */ |
||||||
|
#define ESPI_ESRPRGF_GRDEN BIT(0) |
||||||
|
|
||||||
|
/* ESPREN */ |
||||||
|
#define ESPI_ESPREN_EN BIT(0) |
||||||
|
|
||||||
|
/* ESPSTS */ |
||||||
|
#define ESPI_ESPSTS_OVSIZE BIT(0) |
||||||
|
#define ESPI_ESPSTS_HIT BIT(1) |
||||||
|
#define ESPI_ESPSTS_CRS4K BIT(2) |
||||||
|
|
||||||
|
/* ESPINTEN */ |
||||||
|
#define ESPI_ESPINTEN_OVSIZEEN BIT(0) |
||||||
|
#define ESPI_ESPINTEN_HITEN BIT(1) |
||||||
|
#define ESPI_ESPINTEN_CRS4KEN BIT(2) |
||||||
|
|
||||||
|
/* IOSHORTSTS */ |
||||||
|
#define ESPI_IOSHORTSTS_BYTES GENMASK(1, 0) |
||||||
|
#define ESPI_IOSHORTSTS_TYPE GENMASK(3, 2) |
||||||
|
#define ESPI_IOSHORTSTS_ACCEPT GENMASK(4, 3) |
||||||
|
|
||||||
|
/* IOSHORTRDADDR */ |
||||||
|
#define ESPI_IOSHORTRDADDR_ADDR GENMASK(15, 0) |
||||||
|
|
||||||
|
/* LDNCFG */ |
||||||
|
#define ESPI_LDNCFG_IDX GENMASK(15, 0) |
||||||
|
|
||||||
|
#endif /* ZEPHYR_SOC_REALTEK_RTS5912_REG_ESPI_H */ |
Loading…
Reference in new issue