Second set of DMA40 changes: refactorings and device tree
support for the DMA40. Now with MUSB and some platform data removal. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQIcBAABAgAGBQJRrctTAAoJEEEQszewGV1zoFkP/0ZS3Hw4sGX4CRcVZysFZXon tEWMtNq3WvugmAMos1BJtVYjbu9oaI0kPnTZOU83rF8YzEGvRUy+3AlZXwGmkyYq NgdfDElAY815F9pJ3ffFL74Dd36paWPtO55JuUEsdxLZE7c4/qOBHykURU0NzMtK at70fgVLaNo+mjB+Q2M1ouI5tBCrdwso+vI9SHYlof2wt8TiAmbBTOcKO35nUzlk brcrTeTtdWCc2foP7cFgmjrsct3CzB4Dfl49MiCv1zsiQL5a+qB0EAMd4xYyuVqb GE1WQDvDwzEDre0pAb/io/NwnlF81tgr6dhFTeFxB44knqbkptQFw9XCDnTQTy5C dda5HSJ31ES3N2IUj5K0tlSm3/cBywt5IU79FwhFN4Ndq/nzDtZQ+Y2/X0IA99is eTpLM+/20juOyTxt4vHhdp4aL4r4ZdmOb0GAsyAg/TtsG5LJhZPIctZ+xexKqAhX wPkvHubv87ruQC6AOjVXwez+3tzTLuU7H8a9IOHi+oHk4r+mdba3kAKTyEl717Bk 44N0hcSLbZYktE9gdBJWuuySmfLXnbb/lc+2OjFYNWMHIgDbEwS2ZeVnKB8G+Eil iGDIMMnbCc9vA6fiDARZ3DvLFvahnUbO4BqcFozc/hHbhTceSn9xkXX3NcM8NCWF EAWWZlx4dtAbzB7ReTDm =rn7t -----END PGP SIGNATURE----- Merge tag 'ux500-dma40-for-arm-soc-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/drivers From Linus Walleij: Second set of DMA40 changes: refactorings and device tree support for the DMA40. Now with MUSB and some platform data removal. * tag 'ux500-dma40-for-arm-soc-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: dmaengine: ste_dma40: Fetch disabled channels from DT dmaengine: ste_dma40: Fetch the number of physical channels from DT ARM: ux500: Stop passing DMA platform data though AUXDATA dmaengine: ste_dma40: Allow memcpy channels to be configured from DT dmaengine: ste_dma40_ll: Replace meaningless register set with comment dmaengine: ste_dma40: Convert data_width from register bit format to value dmaengine: ste_dma40_ll: Use the BIT macro to replace ugly '(1 << x)'s ARM: ux500: Remove recently unused stedma40_xfer_dir enums dmaengine: ste_dma40: Replace ST-E's home-brew DMA direction defs with generic ones ARM: ux500: Replace ST-E's home-brew DMA direction definition with the generic one dmaengine: ste_dma40: Use the BIT macro to replace ugly '(1 << x)'s ARM: ux500: Remove empty function u8500_of_init_devices() ARM: ux500: Remove ux500-musb platform registation when booting with DT usb: musb: ux500: add device tree probing support usb: musb: ux500: attempt to find channels by name before using pdata usb: musb: ux500: harden checks for platform data usb: musb: ux500: take the dma_mask from coherent_dma_mask usb: musb: ux500: move the MUSB HDRC configuration into the driver usb: musb: ux500: move channel number knowledge into the driver
This commit is contained in:
commit
2c3165ebb6
14 changed files with 374 additions and 250 deletions
|
|
@ -70,21 +70,6 @@ enum stedma40_flow_ctrl {
|
|||
STEDMA40_FLOW_CTRL,
|
||||
};
|
||||
|
||||
enum stedma40_periph_data_width {
|
||||
STEDMA40_BYTE_WIDTH = STEDMA40_ESIZE_8_BIT,
|
||||
STEDMA40_HALFWORD_WIDTH = STEDMA40_ESIZE_16_BIT,
|
||||
STEDMA40_WORD_WIDTH = STEDMA40_ESIZE_32_BIT,
|
||||
STEDMA40_DOUBLEWORD_WIDTH = STEDMA40_ESIZE_64_BIT
|
||||
};
|
||||
|
||||
enum stedma40_xfer_dir {
|
||||
STEDMA40_MEM_TO_MEM = 1,
|
||||
STEDMA40_MEM_TO_PERIPH,
|
||||
STEDMA40_PERIPH_TO_MEM,
|
||||
STEDMA40_PERIPH_TO_PERIPH
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* struct stedma40_half_channel_info - dst/src channel configuration
|
||||
*
|
||||
|
|
@ -95,7 +80,7 @@ enum stedma40_xfer_dir {
|
|||
*/
|
||||
struct stedma40_half_channel_info {
|
||||
bool big_endian;
|
||||
enum stedma40_periph_data_width data_width;
|
||||
enum dma_slave_buswidth data_width;
|
||||
int psize;
|
||||
enum stedma40_flow_ctrl flow_ctrl;
|
||||
};
|
||||
|
|
@ -120,7 +105,7 @@ struct stedma40_half_channel_info {
|
|||
*
|
||||
*/
|
||||
struct stedma40_chan_cfg {
|
||||
enum stedma40_xfer_dir dir;
|
||||
enum dma_transfer_direction dir;
|
||||
bool high_priority;
|
||||
bool realtime;
|
||||
enum stedma40_mode mode;
|
||||
|
|
@ -147,6 +132,7 @@ struct stedma40_chan_cfg {
|
|||
* @num_of_soft_lli_chans: The number of channels that needs to be configured
|
||||
* to use SoftLLI.
|
||||
* @use_esram_lcla: flag for mapping the lcla into esram region
|
||||
* @num_of_memcpy_chans: The number of channels reserved for memcpy.
|
||||
* @num_of_phy_chans: The number of physical channels implemented in HW.
|
||||
* 0 means reading the number of channels from DMA HW but this is only valid
|
||||
* for 'multiple of 4' channels, like 8.
|
||||
|
|
@ -156,6 +142,7 @@ struct stedma40_platform_data {
|
|||
int *soft_lli_chans;
|
||||
int num_of_soft_lli_chans;
|
||||
bool use_esram_lcla;
|
||||
int num_of_memcpy_chans;
|
||||
int num_of_phy_chans;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -9,14 +9,11 @@
|
|||
|
||||
#include <linux/dmaengine.h>
|
||||
|
||||
#define UX500_MUSB_DMA_NUM_RX_CHANNELS 8
|
||||
#define UX500_MUSB_DMA_NUM_TX_CHANNELS 8
|
||||
#define UX500_MUSB_DMA_NUM_RX_TX_CHANNELS 8
|
||||
|
||||
struct ux500_musb_board_data {
|
||||
void **dma_rx_param_array;
|
||||
void **dma_tx_param_array;
|
||||
u32 num_rx_channels;
|
||||
u32 num_tx_channels;
|
||||
bool (*dma_filter)(struct dma_chan *chan, void *filter_param);
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue