stm32: DMA: driver bindings new packaging
Francois RAMU
Hi all,
I'd like to inform STM32 DMA users that I'm pushing a change [1] to simplify the definition of the <dma—cells> properties for dma peripherals of the stm32 MCUs. This change now proposes 3 versions of the dma plus the dmamux in the dts and selects the nb of elements for the <dma-cells> It depends on the type of DMA instance of the stm32 MCU (from Ref. Man). With this :
DMA V1 : DMA with FIFO control à the <dma-cells> has 4 elements : ‘channel’, ‘slot’, ‘channel-config’, ‘feature’ for example on stm32F4 or stm32F2 MCUs
DMA V2 : DMA without FIFO control and selectable request for each channel à the <dma-cells> has 3 elements : : ‘channel’, ‘slot’, ‘channel-config’ for example on stm32L4xx or stm32L0xx MCUs
DMA V2bis : DMA without FIFO control and fixed request (slot) for each channel à the <dma-cells> has 2 elements : : ‘channel’, ‘channel-config’ For stm32L1 and stm32F1 MCUs
DMAMUX multiplexing DMA channels : like a DMA V2 à does not require ‘feature’ parameter For example on stm32G4 or stm32WB MCUs
Benefit is to remove unused parameters in the DTS and simply the structure of the dma peripherals.
To declare a new peripheral client of the DMA, the version of the DMA must be first identify, according to the stm32 Ref Manual. Then the <dma-cells> properties is filled with : ‘channel’ to select a free DMA channel for transfer ‘slot’ to select the peripheral request in DMA V1 or DMA V2 or DMAMUX versions ‘channel-config’, to configure the dma channel ‘feature’ for configuring the FIFO in DMA V1 versions
This change will be hopefully integrated in the next Zephyr DV that will be released in October ‘21.
Cheers FRASTM
[1] https://github.com/zephyrproject-rtos/zephyr/pull/34666
|
|