66#include "hrt.h"
77#include <hal/nrf_vpr_csr_vio.h>
88#include <hal/nrf_vpr_csr_vtim.h>
9-
10- #define TOP 4
9+ #include <drivers/mspi/nrfe_mspi.h>
1110
1211void write_single_by_word (volatile uint32_t * data , uint8_t data_len , uint32_t counter_top ,
1312 uint8_t word_size , bool ce_enable_state , bool hold_ce )
@@ -17,13 +16,15 @@ void write_single_by_word(volatile uint32_t *data, uint8_t data_len, uint32_t co
1716 /* Configuration step */
1817 uint16_t dir = nrf_vpr_csr_vio_dir_get ();
1918
20- nrf_vpr_csr_vio_dir_set (dir | PIN_DIR_OUT_MASK (D0_PIN ) | PIN_DIR_OUT_MASK (CS_PIN ) |
21- PIN_DIR_OUT_MASK (SCLK_PIN ));
19+ nrf_vpr_csr_vio_dir_set (dir | PIN_DIR_OUT_MASK (VIO (NRFE_MSPI_DQ0_PIN_NUMBER )) |
20+ PIN_DIR_OUT_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER )) |
21+ PIN_DIR_OUT_MASK (VIO (NRFE_MSPI_SCK_PIN_NUMBER )));
2222
2323 uint16_t out = nrf_vpr_csr_vio_out_get ();
2424
25- nrf_vpr_csr_vio_out_set (out | PIN_OUT_LOW_MASK (D0_PIN ) | PIN_OUT_HIGH_MASK (CS_PIN ) |
26- PIN_OUT_LOW_MASK (SCLK_PIN ));
25+ nrf_vpr_csr_vio_out_set (out | PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_DQ0_PIN_NUMBER )) |
26+ PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER )) |
27+ PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_SCK_PIN_NUMBER )));
2728
2829 nrf_vpr_csr_vio_mode_out_t out_mode = {
2930 .mode = NRF_VPR_CSR_VIO_SHIFT_OUTB_TOGGLE ,
@@ -60,8 +61,9 @@ void write_single_by_word(volatile uint32_t *data, uint8_t data_len, uint32_t co
6061
6162 /* Enable CS */
6263 out = nrf_vpr_csr_vio_out_get ();
63- out &= ~PIN_OUT_HIGH_MASK (CS_PIN );
64- out |= ce_enable_state ? PIN_OUT_HIGH_MASK (CS_PIN ) : PIN_OUT_LOW_MASK (CS_PIN );
64+ out &= ~PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER ));
65+ out |= ce_enable_state ? PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER ))
66+ : PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER ));
6567 nrf_vpr_csr_vio_out_set (out );
6668
6769 /* Start counter */
@@ -83,9 +85,11 @@ void write_single_by_word(volatile uint32_t *data, uint8_t data_len, uint32_t co
8385 /* Deselect slave */
8486 if (!hold_ce ) {
8587 out = nrf_vpr_csr_vio_out_get ();
86- out &= ~(PIN_OUT_HIGH_MASK (CS_PIN ) | PIN_OUT_HIGH_MASK (SCLK_PIN ));
87- out |= ce_enable_state ? PIN_OUT_LOW_MASK (CS_PIN ) : PIN_OUT_HIGH_MASK (CS_PIN );
88- out |= PIN_OUT_LOW_MASK (SCLK_PIN );
88+ out &= ~(PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER )) |
89+ PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_SCK_PIN_NUMBER )));
90+ out |= ce_enable_state ? PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER ))
91+ : PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER ));
92+ out |= PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_SCK_PIN_NUMBER ));
8993 nrf_vpr_csr_vio_out_set (out );
9094 }
9195
@@ -102,15 +106,21 @@ void write_quad_by_word(volatile uint32_t *data, uint8_t data_len, uint32_t coun
102106 /* Configuration step */
103107 uint16_t dir = nrf_vpr_csr_vio_dir_get ();
104108
105- nrf_vpr_csr_vio_dir_set (dir | PIN_DIR_OUT_MASK (D0_PIN ) | PIN_DIR_OUT_MASK (D1_PIN ) |
106- PIN_DIR_OUT_MASK (D2_PIN ) | PIN_DIR_OUT_MASK (D3_PIN ) |
107- PIN_DIR_OUT_MASK (CS_PIN ) | PIN_DIR_OUT_MASK (SCLK_PIN ));
109+ nrf_vpr_csr_vio_dir_set (dir | PIN_DIR_OUT_MASK (VIO (NRFE_MSPI_DQ0_PIN_NUMBER )) |
110+ PIN_DIR_OUT_MASK (VIO (NRFE_MSPI_DQ1_PIN_NUMBER )) |
111+ PIN_DIR_OUT_MASK (VIO (NRFE_MSPI_DQ2_PIN_NUMBER )) |
112+ PIN_DIR_OUT_MASK (VIO (NRFE_MSPI_DQ3_PIN_NUMBER )) |
113+ PIN_DIR_OUT_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER )) |
114+ PIN_DIR_OUT_MASK (VIO (NRFE_MSPI_SCK_PIN_NUMBER )));
108115
109116 uint16_t out = nrf_vpr_csr_vio_out_get ();
110117
111- nrf_vpr_csr_vio_out_set (out | PIN_OUT_LOW_MASK (D0_PIN ) | PIN_OUT_LOW_MASK (D1_PIN ) |
112- PIN_OUT_LOW_MASK (D2_PIN ) | PIN_OUT_LOW_MASK (D3_PIN ) |
113- PIN_OUT_HIGH_MASK (CS_PIN ) | PIN_OUT_LOW_MASK (SCLK_PIN ));
118+ nrf_vpr_csr_vio_out_set (out | PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_DQ0_PIN_NUMBER )) |
119+ PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_DQ1_PIN_NUMBER )) |
120+ PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_DQ2_PIN_NUMBER )) |
121+ PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_DQ3_PIN_NUMBER )) |
122+ PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER )) |
123+ PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_SCK_PIN_NUMBER )));
114124
115125 nrf_vpr_csr_vio_mode_out_t out_mode = {
116126 .mode = NRF_VPR_CSR_VIO_SHIFT_OUTB_TOGGLE ,
@@ -147,8 +157,9 @@ void write_quad_by_word(volatile uint32_t *data, uint8_t data_len, uint32_t coun
147157
148158 /* Enable CS */
149159 out = nrf_vpr_csr_vio_out_get ();
150- out &= ~PIN_OUT_HIGH_MASK (CS_PIN );
151- out |= ce_enable_state ? PIN_OUT_HIGH_MASK (CS_PIN ) : PIN_OUT_LOW_MASK (CS_PIN );
160+ out &= ~PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER ));
161+ out |= ce_enable_state ? PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER ))
162+ : PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER ));
152163 nrf_vpr_csr_vio_out_set (out );
153164
154165 /* Start counter */
@@ -170,9 +181,11 @@ void write_quad_by_word(volatile uint32_t *data, uint8_t data_len, uint32_t coun
170181 /* Deselect slave */
171182 if (!hold_ce ) {
172183 out = nrf_vpr_csr_vio_out_get ();
173- out &= ~(PIN_OUT_HIGH_MASK (CS_PIN ) | PIN_OUT_HIGH_MASK (SCLK_PIN ));
174- out |= ce_enable_state ? PIN_OUT_LOW_MASK (CS_PIN ) : PIN_OUT_HIGH_MASK (CS_PIN );
175- out |= PIN_OUT_LOW_MASK (SCLK_PIN );
184+ out &= ~(PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER )) |
185+ PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_SCK_PIN_NUMBER )));
186+ out |= ce_enable_state ? PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER ))
187+ : PIN_OUT_HIGH_MASK (VIO (NRFE_MSPI_CS0_PIN_NUMBER ));
188+ out |= PIN_OUT_LOW_MASK (VIO (NRFE_MSPI_SCK_PIN_NUMBER ));
176189 nrf_vpr_csr_vio_out_set (out );
177190 }
178191
0 commit comments