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