On Wed, May 29, 2024 at 05:00:54PM +0900, Yoshinori Sato wrote: > Allows initialization as CLOCKSOURCE. ... > - dev_info(&ch->tmu->pdev->dev, "ch%u: used for %s clock events\n", > - ch->index, periodic ? "periodic" : "oneshot"); > + pr_info("%s ch%u: used for %s clock events\n", > + ch->tmu->name, ch->index, periodic ? "periodic" : "oneshot"); This is a step back change. We should use dev_*() if we have a device available. And I believe this is the case (at least for the previous boards), no? ... > - ch->irq = platform_get_irq(tmu->pdev, index); > + if (tmu->np) > + ch->irq = of_irq_get(tmu->np, index); > + else if (tmu->pdev) > + ch->irq = platform_get_irq(tmu->pdev, index); I found these changes counterproductive. Instead better to have up to three files to cover: - the common code (library) - the platform device support - the pure OF support. ... > - res = platform_get_resource(tmu->pdev, IORESOURCE_MEM, 0); > - if (!res) { > - dev_err(&tmu->pdev->dev, "failed to get I/O memory\n"); > - return -ENXIO; > + if (tmu->pdev) { > + res = platform_get_resource(tmu->pdev, IORESOURCE_MEM, 0); > + if (!res) { > + pr_err("sh_tmu failed to get I/O memory\n"); > + return -ENXIO; > + } > + > + tmu->mapbase = ioremap(res->start, resource_size(res)); devm_platform_ioremap_resource() should be good to have. Again, consider proper splitting. > } > + if (tmu->np) > + tmu->mapbase = of_iomap(tmu->np, 0); So, how many boards are non-OF compatible? Maybe makes sense to move them to OF and drop these platform code entirely from everywhere? ... > + tmu->name = dev_name(&pdev->dev); > + tmu->clk = clk_get(&tmu->pdev->dev, "fck"); devm_ approach can help a lot in case of platform device code. > + if (IS_ERR(tmu->clk)) { > + dev_err(&tmu->pdev->dev, "cannot get clock\n"); > + return PTR_ERR(tmu->clk); return dev_err_probe() ? > + } -- With Best Regards, Andy Shevchenko