1 /*
2  * Copyright (c) 2024 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Note that the function prototypes are taken from the NRFx HAL
7  */
8 
9 #include <stdint.h>
10 #include "hal/nrf_rramc.h"
11 #include "NHW_RRAMC.h"
12 
nrf_rramc_erase_all_set(NRF_RRAMC_Type * p_reg)13 void nrf_rramc_erase_all_set(NRF_RRAMC_Type * p_reg)
14 {
15     p_reg->ERASE.ERASEALL = RRAMC_ERASE_ERASEALL_ERASE_Erase;
16     nhw_RRAMC_regw_sideeffects_ERASEALL(0);
17 }
18 
19 /* Note that tasks and events are not implemented in the HW model */
20 
21 
nrf_rramc_byte_write(uint32_t address,uint8_t value)22 void nrf_rramc_byte_write(uint32_t address, uint8_t value)
23 {
24     nhw_RRAMC_write_byte(address, value);
25 }
26 
nrf_rramc_halfword_write(uint32_t address,uint16_t value)27 void nrf_rramc_halfword_write(uint32_t address, uint16_t value)
28 {
29     nhw_RRAMC_write_halfword(address,value);
30 }
31 
nrf_rramc_word_write(uint32_t address,uint32_t value)32 void nrf_rramc_word_write(uint32_t address, uint32_t value)
33 {
34     nhw_RRAMC_write_word(address,value);
35 }
36 
nrf_rramc_buffer_write(uint32_t address,void * src,uint32_t num_bytes)37 void nrf_rramc_buffer_write(uint32_t address, void * src, uint32_t num_bytes)
38 {
39     nhw_RRAMC_write_buffer(address, src, num_bytes);
40 }
41 
nrf_rramc_byte_read(uint32_t address)42 uint8_t nrf_rramc_byte_read(uint32_t address)
43 {
44     return nhw_RRAMC_read_byte(address);
45 }
46 
nrf_rramc_halfword_read(uint32_t address)47 uint16_t nrf_rramc_halfword_read(uint32_t address)
48 {
49     return nhw_RRAMC_read_halfword(address);
50 }
51 
nrf_rramc_word_read(uint32_t address)52 uint32_t nrf_rramc_word_read(uint32_t address)
53 {
54     return nhw_RRAMC_read_word(address);
55 }
56 
nrf_rramc_buffer_read(void * dst,uint32_t address,uint32_t num_bytes)57 void nrf_rramc_buffer_read(void * dst, uint32_t address, uint32_t num_bytes)
58 {
59     nhw_RRAMC_read_buffer(dst, address, num_bytes);
60 }
61