@@ -64,8 +64,7 @@ static int spi_mcux_dma_tx_load(const struct device *dev, const uint8_t *buf, si
64
64
stream -> dma_cfg .channel_direction = MEMORY_TO_PERIPHERAL ;
65
65
}
66
66
67
- /* Dest is always LPSPI tx fifo */
68
- blk_cfg -> dest_address = LPSPI_GetTxRegisterAddress (base );
67
+ blk_cfg -> dest_address = (uint32_t ) & (base -> TDR );
69
68
70
69
return dma_config (stream -> dma_dev , stream -> channel , & stream -> dma_cfg );
71
70
}
@@ -87,7 +86,7 @@ static int spi_mcux_dma_rx_load(const struct device *dev, uint8_t *buf, size_t l
87
86
blk_cfg -> dest_address = (uint32_t )buf ;
88
87
}
89
88
90
- blk_cfg -> source_address = LPSPI_GetRxRegisterAddress ( base );
89
+ blk_cfg -> source_address = ( uint32_t ) & ( base -> RDR );
91
90
92
91
return dma_config (stream -> dma_dev , stream -> channel , & stream -> dma_cfg );
93
92
}
@@ -172,8 +171,10 @@ static void spi_mcux_dma_callback(const struct device *dev, void *arg, uint32_t
172
171
return ;
173
172
}
174
173
175
- while ((IS_ENABLED (CONFIG_SOC_FAMILY_NXP_IMXRT ) || IS_ENABLED (CONFIG_SOC_FAMILY_KINETIS )) &&
176
- (LPSPI_GetStatusFlags (base ) & kLPSPI_ModuleBusyFlag )) {
174
+
175
+ while ((IS_ENABLED (CONFIG_SOC_FAMILY_NXP_IMXRT ) ||
176
+ IS_ENABLED (CONFIG_SOC_FAMILY_KINETIS )) &&
177
+ (base -> SR & LPSPI_SR_MBF_MASK )) {
177
178
/* wait until module is idle */
178
179
}
179
180
@@ -190,11 +191,11 @@ static void spi_mcux_dma_callback(const struct device *dev, void *arg, uint32_t
190
191
error :
191
192
LOG_ERR ("DMA callback error with channel %d err %d." , channel , status );
192
193
done :
193
- LPSPI_DisableDMA ( base , kLPSPI_TxDmaEnable | kLPSPI_RxDmaEnable );
194
+ base -> DER &= ~( LPSPI_DER_TDDE_MASK | LPSPI_DER_RDDE_MASK );
194
195
base -> TCR &= ~LPSPI_TCR_CONT_MASK ;
195
196
lpspi_wait_tx_fifo_empty (spi_dev );
196
197
spi_context_cs_control (ctx , false);
197
- LPSPI_FlushFifo ( base , true, true) ;
198
+ base -> CR |= LPSPI_CR_RTF_MASK | LPSPI_CR_RRF_MASK ;
198
199
spi_context_complete (ctx , spi_dev , status );
199
200
}
200
201
@@ -227,9 +228,9 @@ static int transceive_dma(const struct device *dev, const struct spi_config *spi
227
228
goto out ;
228
229
}
229
230
230
- LPSPI_FlushFifo ( base , true, true) ;
231
+ base -> CR |= LPSPI_CR_RTF_MASK | LPSPI_CR_RRF_MASK ;
231
232
232
- LPSPI_EnableDMA ( base , kLPSPI_TxDmaEnable | kLPSPI_RxDmaEnable ) ;
233
+ base -> DER |= LPSPI_DER_TDDE_MASK | LPSPI_DER_RDDE_MASK ;
233
234
234
235
ret = spi_context_wait_for_completion (ctx );
235
236
out :
0 commit comments