aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2016-11-10 10:17:50 -0500
committerVinod Koul <vinod.koul@intel.com>2016-11-17 05:21:28 -0500
commit5d13982a246ce49200c59f65902f047e7633ae65 (patch)
tree9dbef56a25ffd15dc4e0dafd5532b11f5c22bf74
parentda6f8ca13fb7d40f263ef647ebb41ff0a575d194 (diff)
ARM: s3c64xx: Add DMA slave maps for PL080 devices
This patch adds DMA slave map tables to the pl080 devices's platform_data in order to support the new channel request API. A few devices for which there was no DMA support with current code are omitted in the tables. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Tested-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-rw-r--r--arch/arm/mach-s3c64xx/pl080.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c64xx/pl080.c b/arch/arm/mach-s3c64xx/pl080.c
index 89c5a62830a7..261820a855ec 100644
--- a/arch/arm/mach-s3c64xx/pl080.c
+++ b/arch/arm/mach-s3c64xx/pl080.c
@@ -117,6 +117,25 @@ static struct pl08x_channel_data s3c64xx_dma0_info[] = {
117 } 117 }
118}; 118};
119 119
120static const struct dma_slave_map s3c64xx_dma0_slave_map[] = {
121 { "s3c6400-uart.0", "tx", &s3c64xx_dma0_info[0] },
122 { "s3c6400-uart.0", "rx", &s3c64xx_dma0_info[1] },
123 { "s3c6400-uart.1", "tx", &s3c64xx_dma0_info[2] },
124 { "s3c6400-uart.1", "rx", &s3c64xx_dma0_info[3] },
125 { "s3c6400-uart.2", "tx", &s3c64xx_dma0_info[4] },
126 { "s3c6400-uart.2", "rx", &s3c64xx_dma0_info[5] },
127 { "s3c6400-uart.3", "tx", &s3c64xx_dma0_info[6] },
128 { "s3c6400-uart.3", "rx", &s3c64xx_dma0_info[7] },
129 { "samsung-pcm.0", "tx", &s3c64xx_dma0_info[8] },
130 { "samsung-pcm.0", "rx", &s3c64xx_dma0_info[9] },
131 { "samsung-i2s.0", "tx", &s3c64xx_dma0_info[10] },
132 { "samsung-i2s.0", "rx", &s3c64xx_dma0_info[11] },
133 { "s3c6410-spi.0", "tx", &s3c64xx_dma0_info[12] },
134 { "s3c6410-spi.0", "rx", &s3c64xx_dma0_info[13] },
135 { "samsung-i2s.2", "tx", &s3c64xx_dma0_info[14] },
136 { "samsung-i2s.2", "rx", &s3c64xx_dma0_info[15] },
137};
138
120struct pl08x_platform_data s3c64xx_dma0_plat_data = { 139struct pl08x_platform_data s3c64xx_dma0_plat_data = {
121 .memcpy_channel = { 140 .memcpy_channel = {
122 .bus_id = "memcpy", 141 .bus_id = "memcpy",
@@ -134,6 +153,8 @@ struct pl08x_platform_data s3c64xx_dma0_plat_data = {
134 .put_xfer_signal = pl08x_put_xfer_signal, 153 .put_xfer_signal = pl08x_put_xfer_signal,
135 .slave_channels = s3c64xx_dma0_info, 154 .slave_channels = s3c64xx_dma0_info,
136 .num_slave_channels = ARRAY_SIZE(s3c64xx_dma0_info), 155 .num_slave_channels = ARRAY_SIZE(s3c64xx_dma0_info),
156 .slave_map = s3c64xx_dma0_slave_map,
157 .slave_map_len = ARRAY_SIZE(s3c64xx_dma0_slave_map),
137}; 158};
138 159
139static AMBA_AHB_DEVICE(s3c64xx_dma0, "dma-pl080s.0", 0, 160static AMBA_AHB_DEVICE(s3c64xx_dma0, "dma-pl080s.0", 0,
@@ -207,6 +228,15 @@ static struct pl08x_channel_data s3c64xx_dma1_info[] = {
207 }, 228 },
208}; 229};
209 230
231static const struct dma_slave_map s3c64xx_dma1_slave_map[] = {
232 { "samsung-pcm.1", "tx", &s3c64xx_dma1_info[0] },
233 { "samsung-pcm.1", "rx", &s3c64xx_dma1_info[1] },
234 { "samsung-i2s.1", "tx", &s3c64xx_dma1_info[2] },
235 { "samsung-i2s.1", "rx", &s3c64xx_dma1_info[3] },
236 { "s3c6410-spi.1", "tx", &s3c64xx_dma1_info[4] },
237 { "s3c6410-spi.1", "rx", &s3c64xx_dma1_info[5] },
238};
239
210struct pl08x_platform_data s3c64xx_dma1_plat_data = { 240struct pl08x_platform_data s3c64xx_dma1_plat_data = {
211 .memcpy_channel = { 241 .memcpy_channel = {
212 .bus_id = "memcpy", 242 .bus_id = "memcpy",
@@ -224,6 +254,8 @@ struct pl08x_platform_data s3c64xx_dma1_plat_data = {
224 .put_xfer_signal = pl08x_put_xfer_signal, 254 .put_xfer_signal = pl08x_put_xfer_signal,
225 .slave_channels = s3c64xx_dma1_info, 255 .slave_channels = s3c64xx_dma1_info,
226 .num_slave_channels = ARRAY_SIZE(s3c64xx_dma1_info), 256 .num_slave_channels = ARRAY_SIZE(s3c64xx_dma1_info),
257 .slave_map = s3c64xx_dma1_slave_map,
258 .slave_map_len = ARRAY_SIZE(s3c64xx_dma1_slave_map),
227}; 259};
228 260
229static AMBA_AHB_DEVICE(s3c64xx_dma1, "dma-pl080s.1", 0, 261static AMBA_AHB_DEVICE(s3c64xx_dma1, "dma-pl080s.1", 0,