29#include "periph_conf.h"
64typedef struct __attribute__((packed)) {
75#define JEDEC_NEXT_BANK (0x7f)
82#define JEDEC_BANK_MAX (10)
87#define SPI_NOR_F_SECT_4K (1)
92#define SPI_NOR_F_SECT_32K (2)
97#define SPI_NOR_F_SECT_64K (4)
Low-level GPIO peripheral driver interface definitions.
const mtd_spi_nor_opcode_t mtd_spi_nor_opcode_default
Default command opcodes.
const mtd_desc_t mtd_spi_nor_driver
NOR flash SPI MTD device operations table.
const mtd_spi_nor_opcode_t mtd_spi_nor_opcode_default_4bytes
Default 4-byte addresses opcodes.
spi_mode_t
Support SPI modes.
Low-level SPI peripheral driver interface definition.
Internal representation of JEDEC memory ID codes.
uint8_t bank
Manufacturer ID bank number, 1 through 10, see JEP106.
uint8_t manuf
Manufacturer ID, 1 byte.
SPI NOR flash opcode table.
uint8_t read_fast
Read data bytes, 3 byte address, at higher speed.
uint8_t wrsr
Write status register.
uint8_t block_erase_32k
32KiB block erase
uint8_t page_program
Page program.
uint8_t read
Read data bytes, 3 byte address.
uint8_t chip_erase
Chip erase.
uint8_t block_erase_64k
Block erase (usually 64 KiB)
uint8_t wake
Release from deep power down.
uint8_t sleep
Deep power down.
uint8_t sector_erase
Block erase 4 KiB.
uint8_t rdid
Read identification (JEDEC ID)
uint8_t wren
Write enable.
uint8_t rdsr
Read status register.
Compile-time parameters for a serial flash device.
uint32_t wait_chip_wake_up
Chip wake up time in µs.
gpio_t hold
HOLD pin GPIO handle.
gpio_t wp
Write Protect pin GPIO handle.
uint16_t flag
Config flags.
const mtd_spi_nor_opcode_t * opcode
Opcode table for the device.
spi_t spi
SPI bus the device is connected to.
uint32_t wait_sector_erase
4KB sector erase wait time in µs
uint32_t wait_chip_erase
Full chip erase wait time in µs.
gpio_t cs
CS pin GPIO handle.
uint32_t wait_32k_erase
32KB page erase wait time in µs
uint32_t wait_64k_erase
64KB page erase wait time in µs
Device descriptor for serial flash memory devices.
uint32_t page_addr_mask
bitmask to corresponding to the page address
mtd_jedec_id_t jedec_id
JEDEC ID of the chip.
mtd_dev_t base
inherit from mtd_dev_t object
const mtd_spi_nor_params_t * params
SPI NOR params.
uint8_t sec_addr_shift
number of right shifts to get the address to the start of the sector
uint32_t sec_addr_mask
bitmask to corresponding to the sector address
uint8_t page_addr_shift
number of right shifts to get the address to the start of the page
uint8_t addr_width
number of address bytes