10#define SDRV_SPI_NOR_H_
22#define BIT(nr) (1u << (nr))
24#define SNOR_READID_DUMMY_LSB (24u)
25#define SNOR_OPCODE_PROTO_LSB (24u)
26#define SNOR_DTR_PROTO BIT(16)
28#define SNOR_INST_LANS_PROTO_LSB (8u)
29#define SNOR_INST_LANS_PROTO_MASK (0xFu)
30#define SNOR_INST_SINGLE_LANS (0u << SNOR_INST_LANS_PROTO_LSB)
31#define SNOR_INST_DUAL_LANS (1u << SNOR_INST_LANS_PROTO_LSB)
32#define SNOR_INST_QUAD_LANS (2u << SNOR_INST_LANS_PROTO_LSB)
33#define SNOR_INST_OCTAL_LANS (3u << SNOR_INST_LANS_PROTO_LSB)
34#define SNOR_INST_LANS(x) (((x) >> SNOR_INST_LANS_PROTO_LSB) & \
35 (SNOR_INST_LANS_PROTO_MASK))
37#define SNOR_ADDR_LANS_PROTO_LSB (4u)
38#define SNOR_ADDR_LANS_PROTO_MASK (0xFu)
39#define SNOR_ADDR_SINGLE_LANS (0u << SNOR_ADDR_LANS_PROTO_LSB)
40#define SNOR_ADDR_DUAL_LANS (1u << SNOR_ADDR_LANS_PROTO_LSB)
41#define SNOR_ADDR_QUAD_LANS (2u << SNOR_ADDR_LANS_PROTO_LSB)
42#define SNOR_ADDR_OCTAL_LANS (3u << SNOR_ADDR_LANS_PROTO_LSB)
43#define SNOR_ADDR_LANS(x) (((x) >> SNOR_ADDR_LANS_PROTO_LSB) & \
44 (SNOR_ADDR_LANS_PROTO_MASK))
47#define SNOR_DATA_LANS_PROTO_LSB (0u)
48#define SNOR_DATA_LANS_PROTO_MASK (0xFu)
49#define SNOR_DATA_SINGLE_LANS (0u << SNOR_DATA_LANS_PROTO_LSB)
50#define SNOR_DATA_DUAL_LANS (1u << SNOR_DATA_LANS_PROTO_LSB)
51#define SNOR_DATA_QUAD_LANS (2u << SNOR_DATA_LANS_PROTO_LSB)
52#define SNOR_DATA_OCTAL_LANS (3u << SNOR_DATA_LANS_PROTO_LSB)
53#define SNOR_DATA_LANS(x) (((x) >> SNOR_DATA_LANS_PROTO_LSB) & \
54 (SNOR_DATA_LANS_PROTO_MASK))
56#define SNOR_PROTO_1_1_1 \
57 (SNOR_INST_SINGLE_LANS | SNOR_ADDR_SINGLE_LANS | SNOR_DATA_SINGLE_LANS)
58#define SNOR_PROTO_1_1_2 \
59 (SNOR_INST_SINGLE_LANS | SNOR_ADDR_SINGLE_LANS | SNOR_DATA_DUAL_LANS)
60#define SNOR_PROTO_1_1_4 \
61 (SNOR_INST_SINGLE_LANS | SNOR_ADDR_SINGLE_LANS | SNOR_DATA_QUAD_LANS)
62#define SNOR_PROTO_1_1_8 \
63 (SNOR_INST_SINGLE_LANS | SNOR_ADDR_SINGLE_LANS | SNOR_DATA_OCTAL_LANS)
64#define SNOR_PROTO_1_2_2 \
65 (SNOR_INST_SINGLE_LANS | SNOR_ADDR_DUAL_LANS | SNOR_DATA_DUAL_LANS)
66#define SNOR_PROTO_1_4_4 \
67 (SNOR_INST_SINGLE_LANS | SNOR_ADDR_QUAD_LANS | SNOR_DATA_QUAD_LANS)
68#define SNOR_PROTO_1_8_8 \
69 (SNOR_INST_SINGLE_LANS | SNOR_ADDR_OCTAL_LANS | SNOR_DATA_OCTAL_LANS)
70#define SNOR_PROTO_2_2_2 \
71 (SNOR_INST_DUAL_LANS | SNOR_ADDR_DUAL_LANS | SNOR_DATA_DUAL_LANS)
72#define SNOR_PROTO_4_4_4 \
73 (SNOR_INST_QUAD_LANS | SNOR_ADDR_QUAD_LANS | SNOR_DATA_QUAD_LANS)
74#define SNOR_PROTO_8_8_8 \
75 (SNOR_INST_OCTAL_LANS | SNOR_ADDR_OCTAL_LANS | SNOR_DATA_OCTAL_LANS)
76#define SNOR_PROTO_1_1_1_DTR (SNOR_PROTO_1_1_1 | SNOR_DTR_PROTO)
77#define SNOR_PROTO_1_2_2_DTR (SNOR_PROTO_1_2_2 | SNOR_DTR_PROTO)
78#define SNOR_PROTO_1_4_4_DTR (SNOR_PROTO_1_4_4 | SNOR_DTR_PROTO)
79#define SNOR_PROTO_4_4_4_DTR (SNOR_PROTO_4_4_4 | SNOR_DTR_PROTO)
80#define SNOR_PROTO_1_1_8_DTR (SNOR_PROTO_1_1_8 | SNOR_DTR_PROTO)
81#define SNOR_PROTO_1_8_8_DTR (SNOR_PROTO_1_8_8 | SNOR_DTR_PROTO)
82#define SNOR_PROTO_8_8_8_DTR (SNOR_PROTO_8_8_8 | SNOR_DTR_PROTO)
84#define SNOR_PROTO_DTR_MASK 0x1ffffu
85#define SNOR_PROTO_MASK 0xffffu
86#define SNOR_PROTO_DTR(x) ((x) & SNOR_PROTO_DTR_MASK)
87#define SNOR_PROTO(x) ((x) & SNOR_PROTO_MASK)
89#define SPI_NOR_MAX_ID_LEN 6
91#define SECTOR_4K_POST (12)
92#define SECTOR_32K_POST (15)
93#define SECTOR_64K_POST (16)
94#define SECTOR_128K_POST (17)
95#define SECTOR_256K_POST (18)
96#define SECTOR_POST_TO_SIZE(n) (1U << (n))
98#define SPINOR_SECTOR_4K_SIZE (0x1000)
99#define SPINOR_SECTOR_32K_SIZE (0x8000)
100#define SPINOR_SECTOR_64K_SIZE (0x10000)
101#define SPINOR_SECTOR_128K_SIZE (0x20000)
102#define SPINOR_SECTOR_256K_SIZE (0x40000)
104#define SWITCH_DEVICE_MAX_NUM (4u)
114#define SECTOR_TYPE_TO_POST(type) ((type) ? (14 + (type)) : 12)
115#define SECTOR_TYPE_TO_SIZE(type) SECTOR_POST_TO_SIZE(SECTOR_TYPE_TO_POST(type))
250#define SPI_NOR_OK_STATUS SDRV_STATUS_OK
251#define SPI_NOR_ERR_CODE(g, c) (((((g) & 0xF) << 5) | ((c) & 0x1F)) * !!(c))
252#define SPI_NOR_ERR_STATUS(g, c) (int)(SDRV_ERROR_STATUS(SDRV_STATUS_GROUP_XSPI, SPI_NOR_ERR_CODE((g), (c))) * !!(c))
418 uint8_t *buf,
const uint8_t *pattern,
flash_size_t length);
432 bool is_direct, uint32_t num,
struct hyperbus_ca **ca_array);
434 uint8_t read_dummy, uint8_t write_dummy);
468 uint32_t len,
bool is_read_flag, uint32_t burst_len);
513 int (*fls_write_enable)(
struct spi_nor *nor,
bool enable);
524 void (*fls_main_function)(
struct spi_nor *nor);
525 const struct flash_info*(*fls_get_flash_table)(uint32_t *num);
527#if !(CONFIG_DISABLE_SPIBUS_COMPILE)
530#if !(CONFIG_DISABLE_HYPERBUS_COMPILE)
541 if (nor && nor->
ops) {
555 if (nor && nor->
ops) {
584#if !(CONFIG_DISABLE_HYPERBUS_COMPILE)
588#if !(CONFIG_DISABLE_SPIBUS_COMPILE)
589 ret =
spi_nor_ops.fls_init(flash_handle, host, flash_config);
600 if (flash_handle && flash_handle->
ops) {
619 if (flash_handle && flash_handle->
ops) {
638 if (flash_handle && flash_handle->
ops) {
654 if (flash_handle && flash_handle->
ops) {
669 if (flash_handle && flash_handle->
ops) {
670 return ((
flash_ops_t*)(flash_handle->
ops))->fls_cancel(flash_handle);
681 if (flash_handle && flash_handle->
ops) {
682 ((
flash_ops_t*)(flash_handle->
ops))->fls_main_function(flash_handle);
729 return &(flash_handle->
info);
752 bool is_hyperbus, uint32_t *num) {
758#if !(CONFIG_DISABLE_HYPERBUS_COMPILE)
762#if !(CONFIG_DISABLE_SPIBUS_COMPILE)
const struct g2dlite_ops ops
SemiDrive clock generator driver header file.
SemiDrive driver common header file.
@ SDRV_STATUS_INVALID_PARAM
Definition: sdrv_common.h:76
@ SDRV_STATUS_FAIL
Definition: sdrv_common.h:73
@ SDRV_STATUS_OK
Definition: sdrv_common.h:72
#define NULL
Definition: sdrv_crypto_utility.h:21
static int sdrv_spi_nor_read(struct spi_nor *flash_handle, flash_addr_t addr, uint8_t *buf, flash_size_t size)
spi norflash read interface.
Definition: sdrv_spi_nor.h:616
static int sdrv_spi_nor_wait_idle(struct spi_nor *nor)
spi norflash get status.
Definition: sdrv_spi_nor.h:540
spi_nor_ops
spi norflash r/w/e ops flags.
Definition: sdrv_spi_nor.h:324
@ SPI_NOR_OPS_READ
Definition: sdrv_spi_nor.h:325
@ SPI_NOR_OPS_ERASE
Definition: sdrv_spi_nor.h:327
@ SPI_NOR_OPS_WRITE
Definition: sdrv_spi_nor.h:326
@ SPI_NOR_OPS_LOCK
Definition: sdrv_spi_nor.h:328
@ SPI_NOR_OPS_UNLOCK
Definition: sdrv_spi_nor.h:329
void(* flash_dma_config)(struct spi_nor *nor, flash_addr_t addr, uint8_t *buf, uint32_t len, bool is_read_flag, uint32_t burst_len)
dma operation for xspi.
Definition: sdrv_spi_nor.h:467
spi_nor_proto_type
spi norflash proto type.
Definition: sdrv_spi_nor.h:275
@ SPI_NOR_PROTO_TYPE_READ
Definition: sdrv_spi_nor.h:276
@ SPI_NOR_PROTO_TYPE_WRITE
Definition: sdrv_spi_nor.h:277
@ SPI_NOR_PROTO_TYPE_ERASE
Definition: sdrv_spi_nor.h:278
spi_memory_type
spi norflash device type.
Definition: sdrv_spi_nor.h:284
@ SPI_HYPERRAM
Definition: sdrv_spi_nor.h:289
@ SPI_HYPERBUS_MCP
Definition: sdrv_spi_nor.h:290
@ SPI_NOR_FLASH
Definition: sdrv_spi_nor.h:286
@ SPI_AUTO_DETECT
Definition: sdrv_spi_nor.h:285
@ SPI_NAND_FLASH
Definition: sdrv_spi_nor.h:287
@ SPI_HYPERFLASH
Definition: sdrv_spi_nor.h:288
static const struct flash_info * sdrv_spi_nor_get_flash_table(bool is_hyperbus, uint32_t *num)
Definition: sdrv_spi_nor.h:751
spi_nor_error_group_t
sub group
Definition: sdrv_spi_nor.h:219
@ SPI_NOR_WRITE
Definition: sdrv_spi_nor.h:223
@ SPI_NOR_CANCEL
Definition: sdrv_spi_nor.h:225
@ SPI_NOR_ERASE
Definition: sdrv_spi_nor.h:222
@ SPI_NOR_INIT
Definition: sdrv_spi_nor.h:221
@ SPI_NOR_COMMON
Definition: sdrv_spi_nor.h:220
@ SPI_NOR_READ
Definition: sdrv_spi_nor.h:224
#define SWITCH_DEVICE_MAX_NUM
Definition: sdrv_spi_nor.h:104
static struct flash_info * sdrv_spi_nor_get_info(struct spi_nor *flash_handle)
Used for get spi norflash info what like sector size, page size, and ect.
Definition: sdrv_spi_nor.h:725
flash_opt_result
flash operating result collection.
Definition: sdrv_spi_nor.h:137
@ FLASH_OPT_INVALID
Definition: sdrv_spi_nor.h:142
@ FLASH_OPT_PENDING
Definition: sdrv_spi_nor.h:140
@ FLASH_OPT_COMPLETE
Definition: sdrv_spi_nor.h:138
@ FLASH_OPT_INCONSISTENT
Definition: sdrv_spi_nor.h:141
@ FLASH_OPT_FAILED
Definition: sdrv_spi_nor.h:139
@ FLASH_OPT_RESULET_MAX
Definition: sdrv_spi_nor.h:143
static int sdrv_spi_nor_erase(struct spi_nor *flash_handle, flash_addr_t addr, flash_size_t size)
spi norflash erase interface.
Definition: sdrv_spi_nor.h:652
xspi_bus_event_mode
reserve for osEvent interface.
Definition: sdrv_spi_nor.h:175
@ SPI_NOR_XFER_WAIT
Definition: sdrv_spi_nor.h:178
@ SPI_NOR_XFER_COMPLETE
Definition: sdrv_spi_nor.h:177
@ SPI_NOR_XFER_CLEAR
Definition: sdrv_spi_nor.h:176
spi_nor_rw_para
spi norflash indirect/direct(r/w) flags.
Definition: sdrv_spi_nor.h:335
@ SPI_NOR_DIRECT_READ
Definition: sdrv_spi_nor.h:336
@ SPI_NOR_INDIRECT_READ
Definition: sdrv_spi_nor.h:337
@ SPI_NOR_DIRECT_WRITE
Definition: sdrv_spi_nor.h:338
@ SPI_NOR_INDIRECT_WRITE
Definition: sdrv_spi_nor.h:339
xspi_xfer_mode
reserve.
Definition: sdrv_spi_nor.h:166
@ XSPI_XFER_NONE
Definition: sdrv_spi_nor.h:167
@ XSPI_XFER_WRITE
Definition: sdrv_spi_nor.h:169
@ XSPI_XFER_READ
Definition: sdrv_spi_nor.h:168
static int sdrv_host_write(struct spi_nor_host *host, flash_addr_t addr, const uint8_t *buf, flash_size_t size)
Definition: sdrv_spi_nor.h:805
static int sdrv_spi_nor_enable_rfd(struct spi_nor *flash_handle, uint8_t mask)
Definition: sdrv_spi_nor.h:736
static int sdrv_host_read(struct spi_nor_host *host, flash_addr_t addr, uint8_t *buf, flash_size_t size)
Definition: sdrv_spi_nor.h:785
static struct spi_nor * sdrv_get_flash_handle(struct spi_nor_host *host, flash_addr_t addr, flash_size_t size)
Definition: sdrv_spi_nor.h:769
spi_nor_sector_type
Definition: sdrv_spi_nor.h:106
@ SPI_NOR_SECTOR_64KB
Definition: sdrv_spi_nor.h:109
@ SPI_NOR_SECTOR_4KB
Definition: sdrv_spi_nor.h:107
@ SPI_NOR_SECTOR_TYPE_MAX
Definition: sdrv_spi_nor.h:112
@ SPI_NOR_SECTOR_32KB
Definition: sdrv_spi_nor.h:108
@ SPI_NOR_SECTOR_128KB
Definition: sdrv_spi_nor.h:110
@ SPI_NOR_SECTOR_256KB
Definition: sdrv_spi_nor.h:111
flash_opt
flash operating collection.
Definition: sdrv_spi_nor.h:126
@ FLASH_OPT_READ
Definition: sdrv_spi_nor.h:128
@ FLASH_OPT_NONE
Definition: sdrv_spi_nor.h:127
@ FLASH_OPT_MAX
Definition: sdrv_spi_nor.h:131
@ FLASH_OPT_WRITE
Definition: sdrv_spi_nor.h:129
@ FLASH_OPT_ERASE
Definition: sdrv_spi_nor.h:130
static enum flash_opt_result sdrv_spi_nor_get_result(struct spi_nor *flash_handle)
Used for get spi norflash async tansfer result.
Definition: sdrv_spi_nor.h:709
#define SPI_NOR_MAX_ID_LEN
Definition: sdrv_spi_nor.h:89
static int sdrv_host_erase(struct spi_nor_host *host, flash_addr_t addr, flash_size_t size)
Definition: sdrv_spi_nor.h:795
void(* flash_dma_stop_signal)(struct spi_nor *nor)
Definition: sdrv_spi_nor.h:470
void(* flash_notification)(enum flash_opt type, enum flash_opt_result result)
event callback.
Definition: sdrv_spi_nor.h:160
uint64_t flash_size_t
Definition: sdrv_spi_nor.h:121
uint64_t flash_addr_t
flash addr/size use uint64_t.
Definition: sdrv_spi_nor.h:120
spi_nor_device_mode
device trans mode.
Definition: sdrv_spi_nor.h:266
@ SPI_NOR_DEV_PARALLEL_MODE
Definition: sdrv_spi_nor.h:269
@ SPI_NOR_DEV_LOCKSTEP_MODE
Definition: sdrv_spi_nor.h:268
@ SPI_NOR_DEV_SINGLE_MODE
Definition: sdrv_spi_nor.h:267
static int sdrv_spi_nor_cancel(struct spi_nor *flash_handle)
spi norflash async cancel interface.
Definition: sdrv_spi_nor.h:668
static int sdrv_spi_nor_init(struct spi_nor *flash_handle, struct spi_nor_host *host, const struct spi_nor_config *flash_config)
spi norflash host initialize function.
Definition: sdrv_spi_nor.h:580
static void sdrv_spi_nor_setup_handler(struct spi_nor *flash_handle, flash_notification handler)
Used for setup spi norflash async mode notification handler.
Definition: sdrv_spi_nor.h:692
static void sdrv_spi_nor_main_function(struct spi_nor *flash_handle)
spi norflash async main function interface.
Definition: sdrv_spi_nor.h:680
spi_nor_init_error_code_t
error code for init
Definition: sdrv_spi_nor.h:246
@ SPI_NOR_INIT_TRAIN_E
Definition: sdrv_spi_nor.h:247
static int sdrv_spi_nor_write_enable(struct spi_nor *nor, bool enable)
spi norflash write enable op.
Definition: sdrv_spi_nor.h:554
spi_nor_common_error_code_t
Common error code:
Definition: sdrv_spi_nor.h:231
@ SPI_NOR_TIMEOUT
Definition: sdrv_spi_nor.h:235
@ SPI_NOR_FAIL
Definition: sdrv_spi_nor.h:233
@ SPI_NOR_UNSUPPORT
Definition: sdrv_spi_nor.h:236
@ SPI_NOR_ADDRESS_INVALID
Definition: sdrv_spi_nor.h:238
@ SPI_NOR_BUSY
Definition: sdrv_spi_nor.h:234
@ SPI_NOR_COMMON_CODE_MAX
Definition: sdrv_spi_nor.h:240
@ SPI_NOR_UNREACHABLE
Definition: sdrv_spi_nor.h:237
@ SPI_NOR_OK
Definition: sdrv_spi_nor.h:232
@ SPI_NOR_LENGTH_INVALID
Definition: sdrv_spi_nor.h:239
static void sdrv_spi_nor_deinit(struct spi_nor *flash_handle)
spi norflash instance destruction interface.
Definition: sdrv_spi_nor.h:599
spi_nor_xfer_mode
spi norflash trans mode, dma/intterrupt/polling.
Definition: sdrv_spi_nor.h:257
@ SPI_NOR_XFER_POLLING_MODE
Definition: sdrv_spi_nor.h:258
@ SPI_NOR_XFER_INTERRUPT_MODE
Definition: sdrv_spi_nor.h:259
@ SPI_NOR_XFER_DMA_MODE
Definition: sdrv_spi_nor.h:260
void(* flash_dma_stop)(void)
Definition: sdrv_spi_nor.h:469
static int sdrv_spi_nor_write(struct spi_nor *flash_handle, flash_addr_t addr, const uint8_t *buf, flash_size_t size)
spi norflash write interface.
Definition: sdrv_spi_nor.h:636
spi norflash information.
Definition: sdrv_spi_nor.h:372
uint32_t erase_proto_list[SPI_NOR_SECTOR_TYPE_MAX]
Definition: sdrv_spi_nor.h:379
uint32_t erase_proto
Definition: sdrv_spi_nor.h:378
int(* quad_enable)(struct spi_nor *nor, bool enable)
Definition: sdrv_spi_nor.h:394
uint32_t read_proto
Definition: sdrv_spi_nor.h:376
flash_size_t size
Definition: sdrv_spi_nor.h:388
uint8_t status_dummy
Definition: sdrv_spi_nor.h:383
uint32_t write_proto
Definition: sdrv_spi_nor.h:377
int(* octal_dtr_enable)(struct spi_nor *nor, bool enable)
Definition: sdrv_spi_nor.h:393
int(* default_init)(struct spi_nor *nor)
Definition: sdrv_spi_nor.h:392
uint8_t read_dummy
Definition: sdrv_spi_nor.h:381
struct spi_nor_erase_map erase_map[SPI_NOR_SECTOR_TYPE_MAX]
Definition: sdrv_spi_nor.h:389
uint32_t sector_size
Definition: sdrv_spi_nor.h:385
uint8_t write_dummy
Definition: sdrv_spi_nor.h:382
int(* set_4byte_addr_mode)(struct spi_nor *nor, bool enable)
Definition: sdrv_spi_nor.h:396
const char * name
Definition: sdrv_spi_nor.h:373
uint16_t page_size
Definition: sdrv_spi_nor.h:386
uint8_t flash_id[SPI_NOR_MAX_ID_LEN]
Definition: sdrv_spi_nor.h:374
int(* enter_quad)(struct spi_nor *nor, bool enable)
Definition: sdrv_spi_nor.h:395
Definition: sdrv_spi_nor.h:511
const struct flash_info *(* fls_get_flash_table)(uint32_t *num)
Definition: sdrv_spi_nor.h:525
int(* fls_init)(struct spi_nor *nor, struct spi_nor_host *host, const struct spi_nor_config *flash_config)
Definition: sdrv_spi_nor.h:514
flash transfer collection.
Definition: sdrv_spi_nor.h:149
flash_size_t size
Definition: sdrv_spi_nor.h:154
uint8_t * buf
Definition: sdrv_spi_nor.h:153
flash_addr_t addr
Definition: sdrv_spi_nor.h:152
enum flash_opt opt_type
Definition: sdrv_spi_nor.h:150
enum flash_opt_result opt_result
Definition: sdrv_spi_nor.h:151
address data, set pre transaction to hyperflash.
Definition: sdrv_spi_nor.h:306
uint16_t addr
Definition: sdrv_spi_nor.h:307
uint16_t data
Definition: sdrv_spi_nor.h:308
hyperbus host operation.
Definition: sdrv_spi_nor.h:428
void(* hyperram_en)(struct spi_nor *flash_handle, uint8_t cs, uint8_t read_dummy, uint8_t write_dummy)
Definition: sdrv_spi_nor.h:433
int(* read)(struct spi_nor *flash_handle, flash_addr_t addr, uint8_t *buf, flash_size_t length)
Definition: sdrv_spi_nor.h:435
void(* cache_flush)(struct spi_nor *flash_handle, flash_addr_t addr, flash_size_t length)
Definition: sdrv_spi_nor.h:439
void(* set_pre_transaction)(struct spi_nor *flash_handle, bool is_read, bool is_direct, uint32_t num, struct hyperbus_ca **ca_array)
Definition: sdrv_spi_nor.h:431
int(* write16)(struct spi_nor *flash_handle, flash_addr_t addr, uint16_t *buf)
Definition: sdrv_spi_nor.h:430
int(* write)(struct spi_nor *flash_handle, flash_addr_t addr, const uint8_t *buf, flash_size_t length)
Definition: sdrv_spi_nor.h:437
int(* read16)(struct spi_nor *flash_handle, flash_addr_t addr, uint16_t *buf)
Definition: sdrv_spi_nor.h:429
hyperflash cmd.
Definition: sdrv_spi_nor.h:314
char * name
Definition: sdrv_spi_nor.h:315
uint32_t num
Definition: sdrv_spi_nor.h:317
bool is_read
Definition: sdrv_spi_nor.h:316
struct hyperbus_ca ca[7]
Definition: sdrv_spi_nor.h:318
Abstract clock common node for driver operate.
Definition: sdrv_ckgen.h:175
spi norflash cmd.
Definition: sdrv_spi_nor.h:296
uint8_t addr_bytes
Definition: sdrv_spi_nor.h:300
uint8_t opcode
Definition: sdrv_spi_nor.h:297
uint8_t inst_type
Definition: sdrv_spi_nor.h:298
uint8_t dummy
Definition: sdrv_spi_nor.h:299
spi norflash configurations.
Definition: sdrv_spi_nor.h:345
enum spi_nor_device_mode dev_mode
Definition: sdrv_spi_nor.h:350
enum spi_memory_type mem_type
Definition: sdrv_spi_nor.h:351
uint8_t id
Definition: sdrv_spi_nor.h:346
bool async_mode
Definition: sdrv_spi_nor.h:352
uint32_t force_size
Definition: sdrv_spi_nor.h:355
bool hyperbus_mode
Definition: sdrv_spi_nor.h:353
uint32_t baudrate
Definition: sdrv_spi_nor.h:348
uint8_t cs
Definition: sdrv_spi_nor.h:347
enum spi_nor_xfer_mode xfer_mode
Definition: sdrv_spi_nor.h:349
bool sw_rst
Definition: sdrv_spi_nor.h:354
Definition: sdrv_spi_nor.h:364
flash_addr_t addr
Definition: sdrv_spi_nor.h:365
const struct spi_nor_erase_map * map
Definition: sdrv_spi_nor.h:366
Definition: sdrv_spi_nor.h:358
uint32_t erase_proto
Definition: sdrv_spi_nor.h:359
uint32_t post
Definition: sdrv_spi_nor.h:361
uint32_t erase_size
Definition: sdrv_spi_nor.h:360
spi norflash host operation.
Definition: sdrv_spi_nor.h:403
void(* xip_proto_setup)(struct spi_nor *flash_handle)
Definition: sdrv_spi_nor.h:422
int(* training)(struct spi_nor *flash_handle, flash_addr_t addr, uint8_t *buf, const uint8_t *pattern, flash_size_t length)
Definition: sdrv_spi_nor.h:417
void(* unprepare)(struct spi_nor *flash_handle, enum spi_nor_ops ops)
Definition: sdrv_spi_nor.h:405
int(* cancel)(struct spi_nor *flash_handle)
Definition: sdrv_spi_nor.h:419
int(* read)(struct spi_nor *flash_handle, flash_addr_t addr, uint8_t *buf, flash_size_t length)
Definition: sdrv_spi_nor.h:411
int(* prepare)(struct spi_nor *flash_handle, enum spi_nor_ops ops)
Definition: sdrv_spi_nor.h:404
void(* cache_flush)(struct spi_nor *flash_handle, flash_addr_t addr, flash_size_t length)
Definition: sdrv_spi_nor.h:420
int(* reg_write)(struct spi_nor *flash_handle, struct spi_nor_cmd *cmd, flash_addr_t addr, const uint8_t *buf, flash_size_t length)
Definition: sdrv_spi_nor.h:408
int(* enable_rfd)(struct spi_nor *flash_handle, uint8_t mask)
Definition: sdrv_spi_nor.h:421
int(* complex_erase)(struct spi_nor *nor, struct spi_nor_erase_cmd *cmd)
Definition: sdrv_spi_nor.h:416
int(* write)(struct spi_nor *flash_handle, flash_addr_t addr, const uint8_t *buf, flash_size_t length)
Definition: sdrv_spi_nor.h:413
int(* reg_read)(struct spi_nor *flash_handle, struct spi_nor_cmd *cmd, flash_addr_t addr, uint8_t *buf, flash_size_t length)
Definition: sdrv_spi_nor.h:406
int(* erase)(struct spi_nor *flash_handle, flash_addr_t offset)
Definition: sdrv_spi_nor.h:415
spi norflash host configurations.
Definition: sdrv_spi_nor.h:445
struct spi_nor_host_ops * ops
Definition: sdrv_spi_nor.h:455
flash_size_t total_size
Definition: sdrv_spi_nor.h:461
uint8_t id
Definition: sdrv_spi_nor.h:446
bool xip_mode
Definition: sdrv_spi_nor.h:453
void * priv_data
Definition: sdrv_spi_nor.h:459
unsigned long ref_clk_hz
Definition: sdrv_spi_nor.h:452
addr_t base
Definition: sdrv_spi_nor.h:447
struct spi_nor * dev
Definition: sdrv_spi_nor.h:458
sdrv_ckgen_node_t * clk
Definition: sdrv_spi_nor.h:450
unsigned int irq
Definition: sdrv_spi_nor.h:448
struct spi_nor * nor_tab[SWITCH_DEVICE_MAX_NUM]
Definition: sdrv_spi_nor.h:460
struct hyperbus_host_ops * hyper_ops
Definition: sdrv_spi_nor.h:456
spi norflash device configurations.
Definition: sdrv_spi_nor.h:475
enum spi_nor_device_mode dev_mode
Definition: sdrv_spi_nor.h:482
enum spi_memory_type mem_type
Definition: sdrv_spi_nor.h:480
uint8_t id
Definition: sdrv_spi_nor.h:476
flash_dma_config dma_xfer_config
Definition: sdrv_spi_nor.h:502
flash_dma_stop_signal dma_stop
Definition: sdrv_spi_nor.h:504
flash_notification event_handler
Definition: sdrv_spi_nor.h:500
void * parent
Definition: sdrv_spi_nor.h:508
struct flash_xfer_info xfer_info
Definition: sdrv_spi_nor.h:498
bool async_mode
Definition: sdrv_spi_nor.h:489
bool phy_en
Definition: sdrv_spi_nor.h:486
struct flash_xfer_info xfer_info_bottom
Definition: sdrv_spi_nor.h:499
bool hyperbus_mode
Definition: sdrv_spi_nor.h:490
bool octal_dtr_en
Definition: sdrv_spi_nor.h:488
uint32_t offset_address
Definition: sdrv_spi_nor.h:479
struct flash_info info
Definition: sdrv_spi_nor.h:484
flash_dma_stop dma_xfer_stop
Definition: sdrv_spi_nor.h:503
uint8_t addr_width
Definition: sdrv_spi_nor.h:495
uint32_t reg_proto
Definition: sdrv_spi_nor.h:493
uint32_t baudrate
Definition: sdrv_spi_nor.h:478
uint8_t cs
Definition: sdrv_spi_nor.h:477
enum spi_nor_xfer_mode xfer_mode
Definition: sdrv_spi_nor.h:497
struct spi_nor_host * host
Definition: sdrv_spi_nor.h:506
bool sw_rst
Definition: sdrv_spi_nor.h:491
bool dqs_en
Definition: sdrv_spi_nor.h:487
void * ops
Definition: sdrv_spi_nor.h:507
xspi config collection
Definition: sdrv_spi_nor.h:184
uint8_t id
Definition: sdrv_spi_nor.h:185
bool xip_mode
Definition: sdrv_spi_nor.h:190
addr_t apb_base
Definition: sdrv_spi_nor.h:186
unsigned int irq
Definition: sdrv_spi_nor.h:188
unsigned long ref_clk
Definition: sdrv_spi_nor.h:189
addr_t direct_base
Definition: sdrv_spi_nor.h:187
xspi private information.
Definition: sdrv_spi_nor.h:196
uint8_t dma_bus_width
Definition: sdrv_spi_nor.h:204
uint8_t id
Definition: sdrv_spi_nor.h:197
unsigned int sclk
Definition: sdrv_spi_nor.h:203
unsigned long ref_clk_hz
Definition: sdrv_spi_nor.h:201
addr_t apb_base
Definition: sdrv_spi_nor.h:198
unsigned int irq
Definition: sdrv_spi_nor.h:200
uint8_t current_cs
Definition: sdrv_spi_nor.h:207
uint32_t dma_burst_size
Definition: sdrv_spi_nor.h:205
uint8_t fifo_depth
Definition: sdrv_spi_nor.h:209
bool cs_decoded
Definition: sdrv_spi_nor.h:206
uint32_t direct_range_size
Definition: sdrv_spi_nor.h:211
addr_t direct_base
Definition: sdrv_spi_nor.h:199
uint8_t fifo_width
Definition: sdrv_spi_nor.h:210
bool dqs_en
Definition: sdrv_spi_nor.h:208