diff options
-rw-r--r-- | board/cr50/board.c | 7 | ||||
-rw-r--r-- | board/cr50/board.h | 6 | ||||
-rw-r--r-- | chip/g/spi_master.c | 7 | ||||
-rw-r--r-- | include/config.h | 3 |
4 files changed, 23 insertions, 0 deletions
diff --git a/board/cr50/board.c b/board/cr50/board.c index 139b550087..4640064c81 100644 --- a/board/cr50/board.c +++ b/board/cr50/board.c @@ -15,6 +15,7 @@ #include "usb_descriptor.h" #include "usb_hid.h" #include "util.h" +#include "spi.h" /* Define interrupt and gpio structs */ #include "gpio_list.h" @@ -123,6 +124,12 @@ const void * const usb_strings[] = { BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT); #endif +/* SPI devices */ +const struct spi_device_t spi_devices[] = { + [CONFIG_SPI_FLASH_PORT] = {0, 4, GPIO_COUNT} +}; +const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices); + int flash_regions_to_enable(struct g_flash_region *regions, int max_regions) { diff --git a/board/cr50/board.h b/board/cr50/board.h index 685d511c1c..d04c44a79e 100644 --- a/board/cr50/board.h +++ b/board/cr50/board.h @@ -38,6 +38,12 @@ #define CONFIG_USB_PID 0x5014 +/* Enable SPI Master (SPI) module */ +#define CONFIG_SPI_MASTER +#define CONFIG_SPI_MASTER_NO_CS_GPIOS +#define CONFIG_SPI_MASTER_CONFIGURE_GPIOS +#define CONFIG_SPI_FLASH_PORT 0 + /* Enable SPI Slave (SPS) module */ #define CONFIG_SPS #define CONFIG_TPM_SPS diff --git a/chip/g/spi_master.c b/chip/g/spi_master.c index 322d112797..aa9f9707b8 100644 --- a/chip/g/spi_master.c +++ b/chip/g/spi_master.c @@ -211,6 +211,13 @@ static void spi_init(void) { size_t i; +#ifdef CONFIG_SPI_MASTER_CONFIGURE_GPIOS + /* Set SPI_MISO as an input */ + GWRITE_FIELD(PINMUX, DIOA11_CTL, IE, 1); /* SPS_MISO */ + /* Set SPI_CS to be an internal pull up */ + GWRITE_FIELD(PINMUX, DIOA14_CTL, PU, 1); +#endif + for (i = 0; i < SPI_NUM_PORTS; i++) { /* Configure the SPI ports to default to mode0. */ set_spi_clock_mode(i, SPI_CLOCK_MODE0); diff --git a/include/config.h b/include/config.h index 173db8f3ed..63096c843c 100644 --- a/include/config.h +++ b/include/config.h @@ -1606,6 +1606,9 @@ /* SPI master feature */ #undef CONFIG_SPI_MASTER +/* SPI master configure gpios on init */ +#undef CONFIG_SPI_MASTER_CONFIGURE_GPIOS + /* Support SPI masters without GPIO-specified Chip Selects, instead rely on the * SPI master port's hardwired CS pin. */ #undef CONFIG_SPI_MASTER_NO_CS_GPIOS |