Skip to content

Commit 6081c42

Browse files
mif1-nordicmasz-nordic
authored andcommitted
applications: sdp: mspi: 2 clock RX fix
Fixed reception of 2 clock long data. Signed-off-by: Michal Frankiewicz <[email protected]>
1 parent a5664d8 commit 6081c42

File tree

2 files changed

+9
-19
lines changed

2 files changed

+9
-19
lines changed

applications/sdp/mspi/src/hrt/hrt-nrf54l15.s

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -538,13 +538,9 @@ hrt_read:
538538
#APP
539539
csrr a4, 3018
540540
#NO_APP
541-
lw a3,60(s0)
542541
srli a4,a4,16
543-
andi a4,a4,0xff
544-
sb a4,0(a3)
545-
lw a3,60(s0)
546-
sb a4,1(a3)
547-
.L55:
542+
.L88:
543+
sw a4,72(s0)
548544
#APP
549545
csrw 2000, 0
550546
csrw 2001, 0
@@ -599,10 +595,8 @@ hrt_read:
599595
#APP
600596
csrr a4, 3018
601597
#NO_APP
602-
lw a3,60(s0)
603598
srli a4,a4,24
604-
sb a4,0(a3)
605-
j .L55
599+
j .L88
606600
.L51:
607601
li a0,2
608602
bne a4,a0,.L82
@@ -739,9 +733,7 @@ hrt_read:
739733
or a3,a3,a2
740734
and a4,a4,a0
741735
or a4,a3,a4
742-
.L88:
743-
sw a4,72(s0)
744-
j .L55
736+
j .L88
745737
.L52:
746738
lbu a0,68(s0)
747739
addi a0,a0,-3

applications/sdp/mspi/src/hrt/hrt.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#define VIO_SINGLE_BUS_MASK 0x0004
2525
#define VIO_QUAD_BUS_MASK 0x001E
2626

27-
#define IN_REG_EMPTY 0xffff
27+
#define IN_REG_EMPTY UINT16_MAX
2828

2929
/* Time in clock cycles required for RX transfer stop procedure in modes 1-3.
3030
* Which is min time between last two clock edges of transfer.
@@ -121,7 +121,7 @@ NRF_STATIC_INLINE void rx_end_procedure_mode_3(volatile hrt_xfer_t *hrt_xfer_par
121121
}
122122

123123
last_word = (BSWAP_32(last_word) << hrt_xfer_params->bus_widths.data) |
124-
(in & bus_mask) >> bus_position;
124+
((in & bus_mask) >> bus_position);
125125
last_word = last_word << (BITS_IN_WORD -
126126
(hrt_xfer_params->xfer_data[HRT_FE_DATA].last_word_clocks + 1) *
127127
hrt_xfer_params->bus_widths.data);
@@ -442,12 +442,10 @@ void hrt_read(volatile hrt_xfer_t *hrt_xfer_params)
442442

443443
if (hrt_xfer_params->bus_widths.data == 8) {
444444
last_word = nrf_vpr_csr_vio_in_buffered_reversed_byte_get();
445-
hrt_xfer_params->xfer_data[HRT_FE_DATA].data[0] =
446-
(uint8_t)(last_word >> BYTE_2_SHIFT);
447-
hrt_xfer_params->xfer_data[HRT_FE_DATA].data[1] =
448-
(uint8_t)(last_word >> BYTE_2_SHIFT);
445+
hrt_xfer_params->xfer_data[HRT_FE_DATA].last_word =
446+
(uint16_t)(last_word >> BYTE_2_SHIFT);
449447
} else {
450-
hrt_xfer_params->xfer_data[HRT_FE_DATA].data[0] =
448+
hrt_xfer_params->xfer_data[HRT_FE_DATA].last_word =
451449
(uint8_t)(nrf_vpr_csr_vio_in_buffered_reversed_byte_get() >>
452450
BYTE_3_SHIFT);
453451
}

0 commit comments

Comments
 (0)