@@ -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
}
@@ -180,8 +179,10 @@ static void spi_mcux_dma_callback(const struct device *dev, void *arg, uint32_t
180
179
return ;
181
180
}
182
181
183
- while ((IS_ENABLED (CONFIG_SOC_FAMILY_NXP_IMXRT ) || IS_ENABLED (CONFIG_SOC_FAMILY_KINETIS )) &&
184
- (LPSPI_GetStatusFlags (base ) & kLPSPI_ModuleBusyFlag )) {
182
+
183
+ while ((IS_ENABLED (CONFIG_SOC_FAMILY_NXP_IMXRT ) ||
184
+ IS_ENABLED (CONFIG_SOC_FAMILY_KINETIS )) &&
185
+ (base -> SR & LPSPI_SR_MBF_MASK )) {
185
186
/* wait until module is idle */
186
187
}
187
188
@@ -198,11 +199,11 @@ static void spi_mcux_dma_callback(const struct device *dev, void *arg, uint32_t
198
199
error :
199
200
LOG_ERR ("DMA callback error with channel %d err %d." , channel , status );
200
201
done :
201
- LPSPI_DisableDMA ( base , kLPSPI_TxDmaEnable | kLPSPI_RxDmaEnable );
202
+ base -> DER &= ~( LPSPI_DER_TDDE_MASK | LPSPI_DER_RDDE_MASK );
202
203
base -> TCR &= ~LPSPI_TCR_CONT_MASK ;
203
204
lpspi_wait_tx_fifo_empty (spi_dev );
204
205
spi_context_cs_control (ctx , false);
205
- LPSPI_FlushFifo ( base , true, true) ;
206
+ base -> CR |= LPSPI_CR_RTF_MASK | LPSPI_CR_RRF_MASK ;
206
207
spi_context_complete (ctx , spi_dev , status );
207
208
spi_context_release (ctx , status );
208
209
}
@@ -240,9 +241,9 @@ static int transceive_dma(const struct device *dev, const struct spi_config *spi
240
241
241
242
spi_context_cs_control (ctx , true);
242
243
243
- LPSPI_FlushFifo ( base , true, true) ;
244
+ base -> CR |= LPSPI_CR_RTF_MASK | LPSPI_CR_RRF_MASK ;
244
245
245
- LPSPI_EnableDMA ( base , kLPSPI_TxDmaEnable | kLPSPI_RxDmaEnable ) ;
246
+ base -> DER |= LPSPI_DER_TDDE_MASK | LPSPI_DER_RDDE_MASK ;
246
247
247
248
ret = spi_context_wait_for_completion (ctx );
248
249
if (ret >= 0 ) {
0 commit comments