25 #ifndef HAL_SERIAL_NOR_H 26 #define HAL_SERIAL_NOR_H 38 #define SNOR_BUS_DRIVER_SPI 0U 39 #define SNOR_BUS_DRIVER_WSPI 1U 53 #if !defined(SNOR_BUS_DRIVER) || defined(__DOXYGEN__) 54 #define SNOR_BUS_DRIVER SNOR_BUS_DRIVER_WSPI 65 #if !defined(SNOR_SHARED_BUS) || defined(__DOXYGEN__) 66 #define SNOR_SHARED_BUS TRUE 74 #if (SNOR_BUS_DRIVER == SNOR_BUS_DRIVER_SPI) || defined(__DOXYGEN__) 75 #define BUSConfig SPIConfig 76 #define BUSDriver SPIDriver 77 #elif SNOR_BUS_DRIVER == SNOR_BUS_DRIVER_WSPI 78 #define BUSConfig WSPIConfig 79 #define BUSDriver WSPIDriver 81 #error "invalid SNOR_BUS_DRIVER setting" 93 const BUSConfig *buscfg;
99 #define _snor_flash_methods_alone \ 101 flash_error_t (*read_sfdp)(void *instance, \ 102 flash_offset_t offset, \ 109 #define _snor_flash_methods \ 110 _base_flash_methods \ 111 _snor_flash_methods_alone 140 uint8_t device_id[20];
154 void bus_cmd(BUSDriver *busp, uint32_t cmd);
155 void bus_cmd_send(BUSDriver *busp, uint32_t cmd,
size_t n,
const uint8_t *p);
171 #if (SNOR_BUS_DRIVER == SNOR_BUS_DRIVER_WSPI) || defined(__DOXYGEN__) 187 #if (SNOR_BUS_DRIVER == SNOR_BUS_DRIVER_WSPI) || defined(__DOXYGEN__) 188 #if (WSPI_SUPPORTS_MEMMAP == TRUE) || defined(__DOXYGEN__) 198 #include "hal_flash_device.h" void bus_cmd(BUSDriver *busp, uint32_t cmd)
Sends a naked command.
void bus_cmd_addr_dummy_receive(BUSDriver *busp, uint32_t cmd, flash_offset_t offset, uint32_t dummy, size_t n, uint8_t *p)
Sends a command followed by a flash address, dummy cycles and a data receive phase.
void bus_cmd_addr_send(BUSDriver *busp, uint32_t cmd, flash_offset_t offset, size_t n, const uint8_t *p)
Sends a command followed by a flash address and a data transmit phase.
void bus_cmd_addr(BUSDriver *busp, uint32_t cmd, flash_offset_t offset)
Sends a command followed by a flash address.
#define _base_flash_data
BaseFlash specific data.
void bus_cmd_addr_receive(BUSDriver *busp, uint32_t cmd, flash_offset_t offset, size_t n, uint8_t *p)
Sends a command followed by a flash address and a data receive phase.
SNOR virtual methods table.
const struct SNORDriverVMT * vmt
SNORDriver Virtual Methods Table.
void snorStart(SNORDriver *devp, const SNORConfig *config)
Configures and activates SNOR driver.
void snorStop(SNORDriver *devp)
Deactivates the SNOR driver.
Type of a SNOR configuration structure.
void snorObjectInit(SNORDriver *devp)
Initializes an instance.
uint32_t flash_offset_t
Type of a flash offset.
void bus_cmd_receive(BUSDriver *busp, uint32_t cmd, size_t n, uint8_t *p)
Sends a command followed by a data receive phase.
Type of SNOR flash class.
Generic flash driver class header.
_base_flash_data const SNORConfig * config
Current configuration data.
#define _snor_flash_methods
SNORDriver specific methods with inherited ones.
void snorMemoryMap(SNORDriver *devp, uint8_t **addrp)
Enters the memory Mapping mode.
void snorMemoryUnmap(SNORDriver *devp)
Leaves the memory Mapping mode.
void bus_cmd_dummy_receive(BUSDriver *busp, uint32_t cmd, uint32_t dummy, size_t n, uint8_t *p)
Sends a command followed by dummy cycles and a data receive phase.
void bus_cmd_send(BUSDriver *busp, uint32_t cmd, size_t n, const uint8_t *p)
Sends a command followed by a data transmit phase.