npcx: set eSPI speed to max supported by hardware

the npcx7 can only run eSPI at (up to) 50MHz while the npcx5 can go up
to 66MHz.  so, set the max speed to whatever the hardware can actually
do.  the bit pattern for 66MHz is "reserved" on the npcx7, so let's
not even define it in the npcx7 case.

BUG=b:72838699, b:71859563
BRANCH=none
TEST="make buildall" passes; boots on meowth

Change-Id: I428caf72a41fe58008df4624c475dafadca4a0bc
Signed-off-by: Caveh Jalali <caveh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/910321
Commit-Ready: caveh jalali <caveh@chromium.org>
Tested-by: caveh jalali <caveh@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
This commit is contained in:
Caveh Jalali
2018-02-08 14:50:50 -08:00
committed by chrome-bot
parent 9b83436b14
commit bee58e5d3e
2 changed files with 12 additions and 3 deletions

View File

@@ -610,9 +610,9 @@ void espi_init(void)
SET_FIELD(NPCX_ESPICFG, NPCX_ESPICFG_IOMODE_FILED,
NPCX_ESPI_IO_MODE_ALL);
/* Max freq 66 MHz of eSPI */
/* Set eSPI speed to max supported */
SET_FIELD(NPCX_ESPICFG, NPCX_ESPICFG_MAXFREQ_FILED,
NPCX_ESPI_MAXFREQ_66);
NPCX_ESPI_MAXFREQ_MAX);
/* Configure Master-to-Slave Virtual Wire indexes (Inputs) */
for (i = 0; i < ARRAY_SIZE(espi_in_list); i++)
@@ -682,4 +682,3 @@ static int command_espi(int argc, char **argv)
DECLARE_CONSOLE_COMMAND(espi, command_espi,
"cfg/vms/vsm/en/dis [channel]",
"eSPI configurations");

View File

@@ -1666,10 +1666,20 @@ enum {
NPCX_ESPI_MAXFREQ_25 = 1,
NPCX_ESPI_MAXFREQ_33 = 2,
NPCX_ESPI_MAXFREQ_50 = 3,
#if defined(CHIP_FAMILY_NPCX5)
NPCX_ESPI_MAXFREQ_66 = 4,
#endif
NPCX_ESPI_MAXFREQ_NOOE = 0xFF
};
#if defined(CHIP_FAMILY_NPCX5)
#define NPCX_ESPI_MAXFREQ_MAX NPCX_ESPI_MAXFREQ_66
#elif defined(CHIP_FAMILY_NPCX7)
#define NPCX_ESPI_MAXFREQ_MAX NPCX_ESPI_MAXFREQ_50
#else
#error "Please define NPCX_ESPI_MAXFREQ_MAX for your chip."
#endif
/* VW types */
enum {
ESPI_VW_TYPE_INT_EV, /* Interrupt event */