dmaengine: tegra: Add Tegra264 support

Add compatible and chip data to support GPCDMA in Tegra264, which has
differences in register layout and address bits compared to previous
versions.

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Link: https://patch.msgid.link/20260331102303.33181-10-akhilrajeev@nvidia.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
Akhil R 2026-03-31 15:53:02 +05:30 committed by Vinod Koul
parent 321c0a15f0
commit b236b79738

View File

@ -1319,6 +1319,23 @@ static const struct tegra_dma_channel_regs tegra186_reg_offsets = {
.fixed_pattern = 0x34,
};
static const struct tegra_dma_channel_regs tegra264_reg_offsets = {
.csr = 0x0,
.status = 0x4,
.csre = 0x8,
.src = 0xc,
.dst = 0x10,
.src_high = 0x14,
.dst_high = 0x18,
.mc_seq = 0x1c,
.mmio_seq = 0x20,
.wcount = 0x24,
.wxfer = 0x28,
.wstatus = 0x2c,
.err_status = 0x34,
.fixed_pattern = 0x38,
};
static const struct tegra_dma_chip_data tegra186_dma_chip_data = {
.nr_channels = 32,
.addr_bits = 39,
@ -1349,6 +1366,16 @@ static const struct tegra_dma_chip_data tegra234_dma_chip_data = {
.terminate = tegra_dma_pause_noerr,
};
static const struct tegra_dma_chip_data tegra264_dma_chip_data = {
.nr_channels = 32,
.addr_bits = 41,
.channel_reg_size = SZ_64K,
.max_dma_count = SZ_1G,
.hw_support_pause = true,
.channel_regs = &tegra264_reg_offsets,
.terminate = tegra_dma_pause_noerr,
};
static const struct of_device_id tegra_dma_of_match[] = {
{
.compatible = "nvidia,tegra186-gpcdma",
@ -1359,6 +1386,9 @@ static const struct of_device_id tegra_dma_of_match[] = {
}, {
.compatible = "nvidia,tegra234-gpcdma",
.data = &tegra234_dma_chip_data,
}, {
.compatible = "nvidia,tegra264-gpcdma",
.data = &tegra264_dma_chip_data,
}, {
},
};