From: Youlin Wang <wwx575822@xxxxxxxxxxxxxxxxxxxx> There is an new "hisi-pcm-asp-dma-1.0" device added in "arch/arm64/boot/dts/hisilicon/hi3660.dtsi". So we have to add a matching id in the driver file: "{ .compatible = "hisilicon,hisi-pcm-asp-dma-1.0", }" And also hisi-pcm-asp dma device needs no setting to the clock. So we skip this by "if" sentence on id string matching: "if (strcasecmp((of_id->compatible), (k3_pdma_dt_ids[0].compatible)) == 0)" After above this driver will support both k3 and hisi_asp dma hardware. Signed-off-by: Youlin Wang <wwx575822@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Tanglei Han <hantanglei@xxxxxxxxxx> Cc: Dan Williams <dan.j.williams@xxxxxxxxx> Cc: Vinod Koul <vkoul@xxxxxxxxxx> --- drivers/dma/k3dma.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/dma/k3dma.c b/drivers/dma/k3dma.c index fdec2b6..10eecc2 100644 --- a/drivers/dma/k3dma.c +++ b/drivers/dma/k3dma.c @@ -792,6 +792,7 @@ static int k3_dma_transfer_resume(struct dma_chan *chan) static const struct of_device_id k3_pdma_dt_ids[] = { { .compatible = "hisilicon,k3-dma-1.0", }, + { .compatible = "hisilicon,hisi-pcm-asp-dma-1.0", }, {} }; MODULE_DEVICE_TABLE(of, k3_pdma_dt_ids); @@ -835,10 +836,12 @@ static int k3_dma_probe(struct platform_device *op) "dma-requests", &d->dma_requests); } - d->clk = devm_clk_get(&op->dev, NULL); - if (IS_ERR(d->clk)) { - dev_err(&op->dev, "no dma clk\n"); - return PTR_ERR(d->clk); + if (strcasecmp((of_id->compatible), (k3_pdma_dt_ids[0].compatible)) == 0) { + d->clk = devm_clk_get(&op->dev, NULL); + if (IS_ERR(d->clk)) { + dev_err(&op->dev, "no dma clk\n"); + return PTR_ERR(d->clk); + } } irq = platform_get_irq(op, 0); -- 1.9.1