/* * Copyright (c) 2023 Nuvoton Technology Corporation. * * SPDX-License-Identifier: Apache-2.0 */ #ifndef __ZEPHYR_INCLUDE_DRIVERS_NPCX_FLASH_API_EX_H__ #define __ZEPHYR_INCLUDE_DRIVERS_NPCX_FLASH_API_EX_H__ #ifdef __cplusplus extern "C" { #endif #include enum flash_npcx_ex_ops { /* * NPCX User Mode Access (UMA) mode execution. * * Execute a SPI transaction via User Mode Access (UMA) mode. Users can * perform a customized SPI transaction to gread or write the device's * configuration such as status registers of nor flash, power on/off, * and so on. */ FLASH_NPCX_EX_OP_EXEC_UMA = FLASH_EX_OP_VENDOR_BASE, /* * NPCX Configure specific operation for Quad-SPI nor flash. * * It configures specific operation for Quad-SPI nor flash such as lock * or unlock UMA mode, set write protection pin of internal flash, and * so on. */ FLASH_NPCX_EX_OP_SET_QSPI_OPER, /* * NPCX Get specific operation for Quad-SPI nor flash. * * It returns current specific operation for Quad-SPI nor flash. */ FLASH_NPCX_EX_OP_GET_QSPI_OPER, }; /* Structures used by FLASH_NPCX_EX_OP_EXEC_UMA */ struct npcx_ex_ops_uma_in { uint8_t opcode; uint8_t *tx_buf; size_t tx_count; uint32_t addr; size_t addr_count; size_t rx_count; }; struct npcx_ex_ops_uma_out { uint8_t *rx_buf; }; /* Structures used by FLASH_NPCX_EX_OP_SET_QSPI_OPER */ struct npcx_ex_ops_qspi_oper_in { bool enable; uint32_t mask; }; /* Structures used by FLASH_NPCX_EX_OP_GET_QSPI_OPER */ struct npcx_ex_ops_qspi_oper_out { uint32_t oper; }; /* Specific NPCX QSPI devices control bits */ #define NPCX_EX_OP_LOCK_UMA BIT(0) /* Lock/Unlock UMA mode */ #define NPCX_EX_OP_INT_FLASH_WP BIT(1) /* Issue write protection of internal flash */ #ifdef __cplusplus } #endif #endif /* __ZEPHYR_INCLUDE_DRIVERS_NPCX_FLASH_API_EX_H__ */