46 #ifndef __SD_SPI_BRIDGE_H 47 #define __SD_SPI_BRIDGE_H 56 #define SD_SPBR_NDEV (3) 58 #define SD_SPBR_I2C_STATUS ((uint8_t)(1 << 0)) 59 #define SD_SPBR_LED_STATUS ((uint8_t)(1 << 1)) 60 #define SD_SPBR_UART_STATUS ((uint8_t)(1 << 2)) 63 #define SD_SPBR_DEV_MASK (0xF8) 65 #define SD_SPBR_I2C_DEV (0x80) 68 #define SD_SPBR_CMD_MASK (0xE0) 70 #define SD_SPBR_I2C_RW_CMD (0xA0) 72 #define SD_SPBR_I2C_READ_TRANS ((uint8_t)(1 << 2)) 73 #define SD_SPBR_I2C_ADDR_10BIT ((uint8_t)(1 << 3)) 74 #define SD_SPBR_I2C_FREQ_400K ((uint8_t)(1 << 4)) 78 #define SD_SPBR_NULL_DEV { 0, NULL, NULL } 79 #define SD_SPBR_NULL_OP { 0, NULL, NULL } 96 void (*start)(uint8_t *data);
97 void (*run)(uint8_t *data);
98 void (*end)(uint8_t *data);
119 SPI_HandleTypeDef *spi;
122 enum sd_spbr_state
state;
126 extern struct sd_spbr spi2_spbr;
140 #error "Multiple inclusion of sd_spi_bridge.h" struct sd_spbr_dev * devs
Definition: sd_spi_bridge.h:120
enum sd_spbr_state state
Definition: sd_spi_bridge.h:121
void sd_spbr_irqhandler(struct sd_spbr *spbr)
SPI Bridge Interrupt Handler Handle interrupt events on the SPI peripheral.
Definition: sd_spi_bridge.c:162
SPI bridge structure.
Definition: sd_spi_bridge.h:117
SPI bridge device structure.
Definition: sd_spi_bridge.h:105
struct sd_spbr_cmd * cmds
Definition: sd_spi_bridge.h:108
SPI bridge device operation structure.
Definition: sd_spi_bridge.h:93
struct sd_spbr_dev * curr_dev
Definition: sd_spi_bridge.h:119
uint8_t id
Definition: sd_spi_bridge.h:106
void sd_spbr_init(struct sd_spbr *spbr, SPI_HandleTypeDef *spi)
SPI Bridge Initialize.
Definition: sd_spi_bridge.c:135
void(* dev_start)(uint8_t *data)
Definition: sd_spi_bridge.h:109
struct sd_spbr_cmd * curr_cmd
Definition: sd_spi_bridge.h:107