@@ -1173,6 +1173,30 @@ static struct sun6i_dma_config sun50i_a64_dma_cfg = {
1173
1173
BIT (DMA_SLAVE_BUSWIDTH_8_BYTES ),
1174
1174
};
1175
1175
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
+
1176
1200
/*
1177
1201
* The H6 binding uses the number of dma channels from the
1178
1202
* device tree node.
@@ -1225,6 +1249,7 @@ static const struct of_device_id sun6i_dma_match[] = {
1225
1249
{ .compatible = "allwinner,sun8i-h3-dma" , .data = & sun8i_h3_dma_cfg },
1226
1250
{ .compatible = "allwinner,sun8i-v3s-dma" , .data = & sun8i_v3s_dma_cfg },
1227
1251
{ .compatible = "allwinner,sun50i-a64-dma" , .data = & sun50i_a64_dma_cfg },
1252
+ { .compatible = "allwinner,sun50i-a100-dma" , .data = & sun50i_a100_dma_cfg },
1228
1253
{ .compatible = "allwinner,sun50i-h6-dma" , .data = & sun50i_h6_dma_cfg },
1229
1254
{ /* sentinel */ }
1230
1255
};
0 commit comments