Add struct mip_spi for SPI drivers, and skeleton for enc28j60 driver

This commit is contained in:
cpq committed 2022-08-31 08:35:06 +01:00
1 parent 3cf85770c7
commit 8a61969c8f
6 files changed
+67 -32

No files matched your search

+11 -2
View File
@@ -1426,9 +1426,9 @@ struct mip_driver {
void (*init)(uint8_t *mac, void *data); // Initialise driver
size_t (*tx)(const void *, size_t, void *data); // Transmit frame
size_t (*rx)(void *buf, size_t len, void *data); // Receive frame (polling)
bool (*status)(void *data); // Up/down status
bool (*up)(void *data); // Up/down status
// Set receive callback for interrupt-driven drivers
void (*rxcb)(void (*fn)(void *buf, size_t len, void *rxdata), void *rxdata);
void (*setrx)(void (*fn)(void *buf, size_t len, void *rxdata), void *rxdata);
};
struct mip_ipcfg {
@@ -1439,6 +1439,15 @@ struct mip_ipcfg {
void mip_init(struct mg_mgr *, struct mip_ipcfg *, struct mip_driver *, void *);
extern struct mip_driver mip_driver_stm32;
extern struct mip_driver mip_driver_enc28j60;
// Drivers that require SPI, can use this SPI abstraction
struct mip_spi {
void *spi; // Opaque SPI bus descriptor
uint8_t (*txn)(void *, uint8_t); // SPI transaction: write 1 byte, read reply
void (*begin)(void *); // SPI begin: slave select low
void (*end)(void *); // SPI end: slave select high
};
#ifdef __cplusplus
}