On Wed, May 24, 2023 at 11:01:05AM +0100, Andre Przywara wrote: > On Wed, 24 May 2023 11:27:30 +0300 > Maxim Kiselev <bigunclemax@xxxxxxxxx> wrote: ... > > +static const struct regmap_config sun20i_gpadc_regmap_config = { > > + .reg_bits = 32, > > + .val_bits = 32, > > + .reg_stride = 4, > > + .fast_io = true, > > +}; > > Is there any particular reason you chose a regmap to model this here? > Isn't that just straight-forward MMIO, which we could just drive using > readl()/writel()? Even though regmap adds a few nice features that might be used. For example, locking. But I dunno if this driver actually uses it OR uses it correctly. ... > > + config = of_device_get_match_data(&pdev->dev); Please, avoid using OF-centric APIs in the new IIO drivers. config = device_get_match_data(&pdev->dev); should suffice. > > + if (!config) > > + return -ENODEV; ... > > + irq = platform_get_irq(pdev, 0); > > + if (irq < 0) > > + return dev_err_probe(&pdev->dev, irq, "failed to get irq\n"); We should not repeat the message that printed by platform core. ... > > + ret = devm_request_irq(&pdev->dev, irq, sun20i_gpadc_irq_handler, > > + 0, dev_name(&pdev->dev), info); You can simplify your life with struct device *dev = &pdev->dev; at the definition block of the function. > > + if (ret < 0) > > + return dev_err_probe(&pdev->dev, ret, > > + "failed requesting irq %d\n", irq); ... > > + .data = &sun20i_d1_gpadc_channels[1] Also, leave comma here. ... > > + .data = &sun50i_r329_gpadc_channels[2] Same as above. -- With Best Regards, Andy Shevchenko