On Thu, Jul 20, 2023 at 02:29:22PM +0300, Nikita Shubin via B4 Relay wrote: > From: Nikita Shubin <nikita.shubin@xxxxxxxxxxx> > > - drop subsys_initcall code > - add OF ID match table with data > - add of_probe for device tree ... > +#include <linux/of_device.h> Why? ... > +#ifdef CONFIG_OF Why this ugly ifdeffery? ... > + data = of_device_get_match_data(&pdev->dev); device_get_match_data() > + if (!data) > + return ERR_PTR(dev_err_probe(&pdev->dev, -ENODEV, "No device match found\n")); ... > + edma = devm_kzalloc(&pdev->dev, > + struct_size(edma, channels, data->num_channels), > + GFP_KERNEL); Something wrong with indentation. Not the first time, please check all your patches for this kind of issues. > + return ERR_PTR(-ENOMEM); ... > + edmac->regs = devm_platform_ioremap_resource(pdev, i); No check? > + edmac->irq = platform_get_irq(pdev, i); No check? > + edmac->edma = edma; > + > + edmac->clk = of_clk_get(np, i); > + Redundant blank line. Why one of devm_clk_get*() can't be called? > + if (IS_ERR(edmac->clk)) { > + dev_warn(&pdev->dev, "failed to get clock\n"); > + continue; > + } ... > + if (platform_get_device_id(pdev)) > + edma = ep93xx_init_from_pdata(pdev); > + else > + edma = ep93xx_dma_of_probe(pdev); > + Unneeded blank line. > + if (!edma) > + return PTR_ERR(edma); ... > --- a/include/linux/platform_data/dma-ep93xx.h > +++ b/include/linux/platform_data/dma-ep93xx.h > #include <linux/types.h> > #include <linux/dmaengine.h> > #include <linux/dma-mapping.h> > +#include <linux/of.h> property.h. ... > + if (of_device_is_compatible(dev_of_node(chan->device->dev), "cirrus,ep9301-dma-m2p")) > + return true; > + device_is_compatible() -- With Best Regards, Andy Shevchenko