dmaengine: dw-axi-dmac: Add Intel KeemBay AxiDMA support

Add support for Intel KeemBay AxiDMA to the .compatible field.
The AxiDMA Apb region will be accessible if the compatible string
matches the "intel,kmb-axi-dma".

Signed-off-by: Sia Jee Heng <jee.heng.sia@intel.com>
Tested-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Link: https://lore.kernel.org/r/20210125013255.25799-14-jee.heng.sia@intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
Sia Jee Heng 2021-01-25 09:32:51 +08:00 коммит произвёл Vinod Koul
Родитель cd0f00c39f
Коммит 3df2d81f87
1 изменённых файлов: 8 добавлений и 0 удалений

Просмотреть файл

@ -1160,6 +1160,7 @@ static int parse_device_properties(struct axi_dma_chip *chip)
static int dw_probe(struct platform_device *pdev) static int dw_probe(struct platform_device *pdev)
{ {
struct device_node *node = pdev->dev.of_node;
struct axi_dma_chip *chip; struct axi_dma_chip *chip;
struct resource *mem; struct resource *mem;
struct dw_axi_dma *dw; struct dw_axi_dma *dw;
@ -1192,6 +1193,12 @@ static int dw_probe(struct platform_device *pdev)
if (IS_ERR(chip->regs)) if (IS_ERR(chip->regs))
return PTR_ERR(chip->regs); return PTR_ERR(chip->regs);
if (of_device_is_compatible(node, "intel,kmb-axi-dma")) {
chip->apb_regs = devm_platform_ioremap_resource(pdev, 1);
if (IS_ERR(chip->apb_regs))
return PTR_ERR(chip->apb_regs);
}
chip->core_clk = devm_clk_get(chip->dev, "core-clk"); chip->core_clk = devm_clk_get(chip->dev, "core-clk");
if (IS_ERR(chip->core_clk)) if (IS_ERR(chip->core_clk))
return PTR_ERR(chip->core_clk); return PTR_ERR(chip->core_clk);
@ -1336,6 +1343,7 @@ static const struct dev_pm_ops dw_axi_dma_pm_ops = {
static const struct of_device_id dw_dma_of_id_table[] = { static const struct of_device_id dw_dma_of_id_table[] = {
{ .compatible = "snps,axi-dma-1.01a" }, { .compatible = "snps,axi-dma-1.01a" },
{ .compatible = "intel,kmb-axi-dma" },
{} {}
}; };
MODULE_DEVICE_TABLE(of, dw_dma_of_id_table); MODULE_DEVICE_TABLE(of, dw_dma_of_id_table);