diff options
author | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2016-11-10 10:17:50 -0500 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2016-11-17 05:21:28 -0500 |
commit | 5d13982a246ce49200c59f65902f047e7633ae65 (patch) | |
tree | 9dbef56a25ffd15dc4e0dafd5532b11f5c22bf74 | |
parent | da6f8ca13fb7d40f263ef647ebb41ff0a575d194 (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.c | 32 |
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 | ||
120 | static 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 | |||
120 | struct pl08x_platform_data s3c64xx_dma0_plat_data = { | 139 | struct 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 | ||
139 | static AMBA_AHB_DEVICE(s3c64xx_dma0, "dma-pl080s.0", 0, | 160 | static 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 | ||
231 | static 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 | |||
210 | struct pl08x_platform_data s3c64xx_dma1_plat_data = { | 240 | struct 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 | ||
229 | static AMBA_AHB_DEVICE(s3c64xx_dma1, "dma-pl080s.1", 0, | 261 | static AMBA_AHB_DEVICE(s3c64xx_dma1, "dma-pl080s.1", 0, |