From ab50ffc533d21fa41949040f9c82518c61ee17c0 Mon Sep 17 00:00:00 2001 From: Jett Rink Date: Fri, 10 Jan 2020 11:45:14 -0700 Subject: spi: add flags to spi configuration Add flags field to stm and g chip usb spi configuration. This is unused for g chip, but added for consistency. BRANCH=none BUG=b:147353903 TEST=builds Change-Id: Ie2aa88ae09e8f6f4049ba13fe4565901c604b92c Signed-off-by: Jett Rink Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1995603 Reviewed-by: Diana Z Reviewed-by: Namyoon Woo Reviewed-by: Brian Nemec Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2032149 --- board/cr50/rdd.c | 2 +- board/discovery-stm32f072/board.c | 2 +- board/hammer/board.c | 2 +- board/servo_micro/board.c | 2 +- chip/g/usb_spi.h | 5 ++++- chip/stm32/usb_spi.h | 10 +++++++++- 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/board/cr50/rdd.c b/board/cr50/rdd.c index 2d1403ec02..9ce2970045 100644 --- a/board/cr50/rdd.c +++ b/board/cr50/rdd.c @@ -21,7 +21,7 @@ #include "usb_spi.h" /* Include the dazzlingly complex macro to instantiate the USB SPI config */ -USB_SPI_CONFIG(ccd_usb_spi, USB_IFACE_SPI, USB_EP_SPI); +USB_SPI_CONFIG(ccd_usb_spi, USB_IFACE_SPI, USB_EP_SPI, 0); #define CPRINTS(format, args...) cprints(CC_USB, format, ## args) #define CPRINTF(format, args...) cprintf(CC_USB, format, ## args) diff --git a/board/discovery-stm32f072/board.c b/board/discovery-stm32f072/board.c index 8d0b2b0ea8..b1b9346cd3 100644 --- a/board/discovery-stm32f072/board.c +++ b/board/discovery-stm32f072/board.c @@ -189,7 +189,7 @@ void usb_spi_board_disable(struct usb_spi_config const *config) gpio_config_module(MODULE_SPI_FLASH, 0); } -USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI); +USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI, 0); /****************************************************************************** * Initialize board. diff --git a/board/hammer/board.c b/board/hammer/board.c index c8ebbd856e..65588dda05 100644 --- a/board/hammer/board.c +++ b/board/hammer/board.c @@ -79,7 +79,7 @@ const struct spi_device_t spi_devices[] = { }; const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices); -USB_SPI_CONFIG(usb_spi, USB_IFACE_I2C_SPI, USB_EP_I2C_SPI); +USB_SPI_CONFIG(usb_spi, USB_IFACE_I2C_SPI, USB_EP_I2C_SPI, 0); /* SPI interface is always enabled, no need to do anything. */ void usb_spi_board_enable(struct usb_spi_config const *config) {} void usb_spi_board_disable(struct usb_spi_config const *config) {} diff --git a/board/servo_micro/board.c b/board/servo_micro/board.c index 7d9bd0bac5..6524b31442 100644 --- a/board/servo_micro/board.c +++ b/board/servo_micro/board.c @@ -658,7 +658,7 @@ void usb_spi_board_disable(struct usb_spi_config const *config) gpio_config_module(MODULE_SPI_FLASH, 0); } -USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI); +USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI, 0); /****************************************************************************** * Support I2C bridging over USB. diff --git a/chip/g/usb_spi.h b/chip/g/usb_spi.h index cedfe78485..a98157753f 100644 --- a/chip/g/usb_spi.h +++ b/chip/g/usb_spi.h @@ -159,11 +159,14 @@ extern struct consumer_ops const usb_spi_consumer_ops; * * ENDPOINT is the index of the USB bulk endpoint used for receiving and * transmitting bytes. + * + * FLAGS is unused right now, but add to definition for consistency */ #define USB_SPI_CONFIG(NAME, \ INTERFACE, \ - ENDPOINT) \ + ENDPOINT, \ + FLAGS) \ \ static uint8_t CONCAT2(NAME, _buffer_)[USB_MAX_PACKET_SIZE]; \ static void CONCAT2(NAME, _deferred_)(void); \ diff --git a/chip/stm32/usb_spi.h b/chip/stm32/usb_spi.h index 15d20e7d6b..fda770345d 100644 --- a/chip/stm32/usb_spi.h +++ b/chip/stm32/usb_spi.h @@ -120,6 +120,9 @@ struct usb_spi_config { uint16_t *buffer; usb_uint *rx_ram; usb_uint *tx_ram; + + /* Flags. See USB_SPI_CONFIG_FLAGS_* for definitions */ + uint32_t flags; }; /* @@ -133,10 +136,14 @@ struct usb_spi_config { * * ENDPOINT is the index of the USB bulk endpoint used for receiving and * transmitting bytes. + * + * FLAGS encodes different run-time control parameters. See + * USB_SPI_CONFIG_FLAGS_* for definitions. */ #define USB_SPI_CONFIG(NAME, \ INTERFACE, \ - ENDPOINT) \ + ENDPOINT, \ + FLAGS) \ static uint16_t CONCAT2(NAME, _buffer_)[USB_MAX_PACKET_SIZE / 2]; \ static usb_uint CONCAT2(NAME, _ep_rx_buffer_)[USB_MAX_PACKET_SIZE / 2] __usb_ram; \ static usb_uint CONCAT2(NAME, _ep_tx_buffer_)[USB_MAX_PACKET_SIZE / 2] __usb_ram; \ @@ -155,6 +162,7 @@ struct usb_spi_config { .buffer = CONCAT2(NAME, _buffer_), \ .rx_ram = CONCAT2(NAME, _ep_rx_buffer_), \ .tx_ram = CONCAT2(NAME, _ep_tx_buffer_), \ + .flags = FLAGS, \ }; \ const struct usb_interface_descriptor \ USB_IFACE_DESC(INTERFACE) = { \ -- cgit v1.2.1