Hello Mark, On Fri, Jan 29, 2016 at 8:35 AM, Mark Brown <broonie@xxxxxxxxxx> wrote: > On Fri, Jan 29, 2016 at 01:20:08AM +0000, Yang, Wenyou wrote: > >> > > +static const struct of_device_id act8945a_pmic_of_match[] = { >> > > + { .compatible = "active-semi,act8945a-regulator" }, >> > > + { }, >> > > +}; >> > > +MODULE_DEVICE_TABLE(of, act8945a_pmic_of_match); > >> > This seems mostly OK but why do we have a compatible string here - shouldn't >> > the MFD be able to instantiate the regulator function without needing this? > >> Because I got feedback from Javier for the act8945a-charger patches of this MFD series, >> He said missing the OF match table will cause the module autoloading broken. > >> http://lists.infradead.org/pipermail/linux-arm-kernel/2016-January/398113.html > >> What do you think about it? > > If then device is not being loaded from the DT (and it shouldn't be, the > device looks like it should be instantiated directly by the MFD as it > can't exist separately to that MFD) an OF table will do nothing. Then he should remove the .of_compatible from the MFD cell definition. Otherwise the MFD core will assign an of_node to this device in mfd_add_device(), making the platform core to believe the device was instantiated by OF. So an OF modalias uevent will be reported to load the module and the OF table should be used for matching the device with the driver. IOW, the MFD and regulator driver have to agree on this. Either everything should have OF or platform information, both work but mixing these as it was on a previous version doesn't. Best regards, Javier -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html