1 /*
2  * Copyright (c) 2022 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef __ZEPHYR_INCLUDE_DRIVERS_FLASH_NRF_QSPI_NOR_H__
8 #define __ZEPHYR_INCLUDE_DRIVERS_FLASH_NRF_QSPI_NOR_H__
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 /**
15  * @brief Specifies whether XIP (execute in place) operation should be possible
16  *
17  * Normally, the driver deactivates the QSPI peripheral for periods when
18  * no QSPI operation is performed. This is done to avoid increased current
19  * consumption when the peripheral is idle. For the same reason, the base
20  * clock on nRF53 Series SoCs (HFCLK192M) is configured for those periods
21  * with the default /4 divider that cannot be used otherwise. However, when
22  * XIP accesses are used, the driver must be prevented from doing both these
23  * things as that would make XIP to fail. Hence, the application should use
24  * this function to signal to the driver that XIP accesses are expected to
25  * occur so that it keeps the QSPI peripheral operable. When XIP operation
26  * is no longer needed, it should be disabled with this function.
27  *
28  * @param dev   flash device
29  * @param enable if true, the driver enables XIP operation and suppresses
30  *               idle actions that would make XIP to fail
31  */
32 __syscall void nrf_qspi_nor_xip_enable(const struct device *dev, bool enable);
33 
34 #ifdef __cplusplus
35 }
36 #endif
37 
38 #include <syscalls/nrf_qspi_nor.h>
39 
40 #endif /* __ZEPHYR_INCLUDE_DRIVERS_FLASH_NRF_QSPI_NOR_H__ */
41