Lines Matching full:dma
8 * @brief DMA low level driver implementation for F2/F4/F7 series SoCs.
17 /* DMA burst length */
238 void stm32_dma_dump_stream_irq(DMA_TypeDef *dma, uint32_t id) in stm32_dma_dump_stream_irq() argument
241 dma_stm32_is_tc_active(dma, id), in stm32_dma_dump_stream_irq()
242 dma_stm32_is_ht_active(dma, id), in stm32_dma_dump_stream_irq()
243 dma_stm32_is_te_active(dma, id), in stm32_dma_dump_stream_irq()
244 dma_stm32_is_dme_active(dma, id), in stm32_dma_dump_stream_irq()
245 dma_stm32_is_fe_active(dma, id)); in stm32_dma_dump_stream_irq()
248 inline bool stm32_dma_is_tc_irq_active(DMA_TypeDef *dma, uint32_t id) in stm32_dma_is_tc_irq_active() argument
250 return LL_DMA_IsEnabledIT_TC(dma, dma_stm32_id_to_stream(id)) && in stm32_dma_is_tc_irq_active()
251 dma_stm32_is_tc_active(dma, id); in stm32_dma_is_tc_irq_active()
254 inline bool stm32_dma_is_ht_irq_active(DMA_TypeDef *dma, uint32_t id) in stm32_dma_is_ht_irq_active() argument
256 return LL_DMA_IsEnabledIT_HT(dma, dma_stm32_id_to_stream(id)) && in stm32_dma_is_ht_irq_active()
257 dma_stm32_is_ht_active(dma, id); in stm32_dma_is_ht_irq_active()
260 static inline bool stm32_dma_is_te_irq_active(DMA_TypeDef *dma, uint32_t id) in stm32_dma_is_te_irq_active() argument
262 return LL_DMA_IsEnabledIT_TE(dma, dma_stm32_id_to_stream(id)) && in stm32_dma_is_te_irq_active()
263 dma_stm32_is_te_active(dma, id); in stm32_dma_is_te_irq_active()
266 static inline bool stm32_dma_is_dme_irq_active(DMA_TypeDef *dma, uint32_t id) in stm32_dma_is_dme_irq_active() argument
268 return LL_DMA_IsEnabledIT_DME(dma, dma_stm32_id_to_stream(id)) && in stm32_dma_is_dme_irq_active()
269 dma_stm32_is_dme_active(dma, id); in stm32_dma_is_dme_irq_active()
272 static inline bool stm32_dma_is_fe_irq_active(DMA_TypeDef *dma, uint32_t id) in stm32_dma_is_fe_irq_active() argument
274 return LL_DMA_IsEnabledIT_FE(dma, dma_stm32_id_to_stream(id)) && in stm32_dma_is_fe_irq_active()
275 dma_stm32_is_fe_active(dma, id); in stm32_dma_is_fe_irq_active()
278 bool stm32_dma_is_irq_active(DMA_TypeDef *dma, uint32_t id) in stm32_dma_is_irq_active() argument
280 return stm32_dma_is_tc_irq_active(dma, id) || in stm32_dma_is_irq_active()
281 stm32_dma_is_ht_irq_active(dma, id) || in stm32_dma_is_irq_active()
282 stm32_dma_is_te_irq_active(dma, id) || in stm32_dma_is_irq_active()
283 stm32_dma_is_dme_irq_active(dma, id) || in stm32_dma_is_irq_active()
284 stm32_dma_is_fe_irq_active(dma, id); in stm32_dma_is_irq_active()
287 void stm32_dma_clear_stream_irq(DMA_TypeDef *dma, uint32_t id) in stm32_dma_clear_stream_irq() argument
289 dma_stm32_clear_te(dma, id); in stm32_dma_clear_stream_irq()
290 dma_stm32_clear_dme(dma, id); in stm32_dma_clear_stream_irq()
291 dma_stm32_clear_fe(dma, id); in stm32_dma_clear_stream_irq()
294 bool stm32_dma_is_irq_happened(DMA_TypeDef *dma, uint32_t id) in stm32_dma_is_irq_happened() argument
296 if (LL_DMA_IsEnabledIT_FE(dma, dma_stm32_id_to_stream(id)) && in stm32_dma_is_irq_happened()
297 dma_stm32_is_fe_active(dma, id)) { in stm32_dma_is_irq_happened()
304 bool stm32_dma_is_unexpected_irq_happened(DMA_TypeDef *dma, uint32_t id) in stm32_dma_is_unexpected_irq_happened() argument
306 if (LL_DMA_IsEnabledIT_FE(dma, dma_stm32_id_to_stream(id)) && in stm32_dma_is_unexpected_irq_happened()
307 dma_stm32_is_fe_active(dma, id)) { in stm32_dma_is_unexpected_irq_happened()
309 stm32_dma_dump_stream_irq(dma, id); in stm32_dma_is_unexpected_irq_happened()
310 stm32_dma_clear_stream_irq(dma, id); in stm32_dma_is_unexpected_irq_happened()
318 void stm32_dma_enable_stream(DMA_TypeDef *dma, uint32_t id) in stm32_dma_enable_stream() argument
320 LL_DMA_EnableStream(dma, dma_stm32_id_to_stream(id)); in stm32_dma_enable_stream()
323 bool stm32_dma_is_enabled_stream(DMA_TypeDef *dma, uint32_t id) in stm32_dma_is_enabled_stream() argument
325 if (LL_DMA_IsEnabledStream(dma, dma_stm32_id_to_stream(id)) == 1) { in stm32_dma_is_enabled_stream()
331 int stm32_dma_disable_stream(DMA_TypeDef *dma, uint32_t id) in stm32_dma_disable_stream() argument
333 LL_DMA_DisableStream(dma, dma_stm32_id_to_stream(id)); in stm32_dma_disable_stream()
335 while (stm32_dma_is_enabled_stream(dma, id)) { in stm32_dma_disable_stream()
338 dma_stm32_clear_tc(dma, id); in stm32_dma_disable_stream()
343 void stm32_dma_disable_fifo_irq(DMA_TypeDef *dma, uint32_t id) in stm32_dma_disable_fifo_irq() argument
345 LL_DMA_DisableIT_FE(dma, dma_stm32_id_to_stream(id)); in stm32_dma_disable_fifo_irq()
349 void stm32_dma_config_channel_function(DMA_TypeDef *dma, uint32_t id, in stm32_dma_config_channel_function() argument
352 LL_DMA_SetChannelSelection(dma, dma_stm32_id_to_stream(id), in stm32_dma_config_channel_function()
412 * section in the 'DMA' chapter in the Reference Manual for more