On Mon, Jul 23, 2018 at 10:56:44AM +0530, Agrawal, Akshu wrote:
This approach shows inconsistencies and in some boot cycles da7219 fails to get regulator. Form the logs (below) it shows time gap between the time we call “platform_device_register(&acp_da7219_regulator);” and when the regulator actually gets registered.
This hack isn't going to help with that AFAICT, you're still registering a platform device and relying on it appearing in time? It just registers less often. I think what we need here is a way to register the link between the devices independently of the regulator registering or firmware, that way we won't get a dummy regulator. Since AFAICT we know the names of the devices that are being registered we can use their dev_name()s which seems tractable - we need a function in regulator/machine.h which lets you provide a set of struct regulator_consumer_supply for a target dev_name.