On Tue, 31 Jan 2022 3:27 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: >On Tue, Jan 31, 2023 at 09:27:48AM +0000, Sahin, Okan wrote: > >First of all, please do avoid top-posting. > >> Sorry for second question. I do not want to bother you, but I realized >> that I need to be sure about driver_data before sending new patch. You >> said that you need to use pointers directly for driver_data then I >> fixed that part in mfd, but I do not need or use driver_data in >> regulator since chip_id comes from mfd device so I think using like >> below should be enough for my implementation. >> >> static const struct platform_device_id max77541_regulator_platform_id[] = { >> { "max77540-regulator", }, >> { "max77541-regulator", }, >> { /* sentinel */ } >> }; >> MODULE_DEVICE_TABLE(platform, max77541_regulator_platform_id); >> >> static const struct of_device_id max77541_regulator_of_id[] = { >> { .compatible = "adi,max77540-regulator", }, >> { .compatible = "adi,max77541-regulator", }, >> { /* sentinel */ } >> }; >> MODULE_DEVICE_TABLE(of, max77541_regulator_of_id); >> >> What do you think? > >If you have got all necessary data from the upper layer, why do you need to have >an ID table here? I'm not sure I understand how this OF ID table works in this >case. I added it since there is regulator node in device tree. With the help of devm_regulator_register(..), driver takes parameters of regulator node. I also used id to select and to initialize regulator descriptors which are chip specific. So far there is no comment about OF ID table so I kept it. I thought I need to add both of id table and platform id table as name matching is required to initialize platform device from mfd. > >-- >With Best Regards, >Andy Shevchenko > Best Regards, Okan Sahin