Skip to content

Commit 07b5527

Browse files
Yangtao Livinodkoul
authored andcommitted
dmaengine: sun6i: Add support for A100 DMA
The dma of a100 is similar to h6, with some minor changes to support greater addressing capabilities. Add support for it. Signed-off-by: Yangtao Li <[email protected]> Link: https://lore.kernel.org/r/719852c6a9a597bd2e82d01a268ca02b9dee826c.1604988979.git.frank@allwinnertech.com Signed-off-by: Vinod Koul <[email protected]>
1 parent 613ff7e commit 07b5527

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

drivers/dma/sun6i-dma.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,6 +1173,30 @@ static struct sun6i_dma_config sun50i_a64_dma_cfg = {
11731173
BIT(DMA_SLAVE_BUSWIDTH_8_BYTES),
11741174
};
11751175

1176+
/*
1177+
* TODO: Add support for more than 4g physical addressing.
1178+
*
1179+
* The A100 binding uses the number of dma channels from the
1180+
* device tree node.
1181+
*/
1182+
static struct sun6i_dma_config sun50i_a100_dma_cfg = {
1183+
.clock_autogate_enable = sun6i_enable_clock_autogate_h3,
1184+
.set_burst_length = sun6i_set_burst_length_h3,
1185+
.set_drq = sun6i_set_drq_h6,
1186+
.set_mode = sun6i_set_mode_h6,
1187+
.src_burst_lengths = BIT(1) | BIT(4) | BIT(8) | BIT(16),
1188+
.dst_burst_lengths = BIT(1) | BIT(4) | BIT(8) | BIT(16),
1189+
.src_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) |
1190+
BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) |
1191+
BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) |
1192+
BIT(DMA_SLAVE_BUSWIDTH_8_BYTES),
1193+
.dst_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) |
1194+
BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) |
1195+
BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) |
1196+
BIT(DMA_SLAVE_BUSWIDTH_8_BYTES),
1197+
.has_mbus_clk = true,
1198+
};
1199+
11761200
/*
11771201
* The H6 binding uses the number of dma channels from the
11781202
* device tree node.
@@ -1225,6 +1249,7 @@ static const struct of_device_id sun6i_dma_match[] = {
12251249
{ .compatible = "allwinner,sun8i-h3-dma", .data = &sun8i_h3_dma_cfg },
12261250
{ .compatible = "allwinner,sun8i-v3s-dma", .data = &sun8i_v3s_dma_cfg },
12271251
{ .compatible = "allwinner,sun50i-a64-dma", .data = &sun50i_a64_dma_cfg },
1252+
{ .compatible = "allwinner,sun50i-a100-dma", .data = &sun50i_a100_dma_cfg },
12281253
{ .compatible = "allwinner,sun50i-h6-dma", .data = &sun50i_h6_dma_cfg },
12291254
{ /* sentinel */ }
12301255
};

0 commit comments

Comments
 (0)