]>
Commit | Line | Data |
---|---|---|
18a1053f SY |
1 | /* |
2 | * Header for the SUDMAC driver | |
3 | * | |
4 | * Copyright (C) 2013 Renesas Solutions Corp. | |
5 | * | |
6 | * This is free software; you can redistribute it and/or modify | |
7 | * it under the terms of version 2 of the GNU General Public License as | |
8 | * published by the Free Software Foundation. | |
9 | */ | |
10 | #ifndef SUDMAC_H | |
11 | #define SUDMAC_H | |
12 | ||
13 | #include <linux/dmaengine.h> | |
14 | #include <linux/shdma-base.h> | |
15 | #include <linux/types.h> | |
16 | ||
17 | /* Used by slave DMA clients to request DMA to/from a specific peripheral */ | |
18 | struct sudmac_slave { | |
19 | struct shdma_slave shdma_slave; /* Set by the platform */ | |
20 | }; | |
21 | ||
22 | /* | |
23 | * Supplied by platforms to specify, how a DMA channel has to be configured for | |
24 | * a certain peripheral | |
25 | */ | |
26 | struct sudmac_slave_config { | |
27 | int slave_id; | |
28 | }; | |
29 | ||
30 | struct sudmac_channel { | |
31 | unsigned long offset; | |
32 | unsigned long config; | |
33 | unsigned long wait; /* The configuable range is 0 to 3 */ | |
34 | unsigned long dint_end_bit; | |
35 | }; | |
36 | ||
37 | struct sudmac_pdata { | |
38 | const struct sudmac_slave_config *slave; | |
39 | int slave_num; | |
40 | const struct sudmac_channel *channel; | |
41 | int channel_num; | |
42 | }; | |
43 | ||
44 | /* Definitions for the sudmac_channel.config */ | |
45 | #define SUDMAC_TX_BUFFER_MODE BIT(0) | |
46 | #define SUDMAC_RX_END_MODE BIT(1) | |
47 | ||
48 | /* Definitions for the sudmac_channel.dint_end_bit */ | |
49 | #define SUDMAC_DMA_BIT_CH0 BIT(0) | |
50 | #define SUDMAC_DMA_BIT_CH1 BIT(1) | |
51 | ||
52 | #endif |