On Fri, 2025-06-13 at 15:49 +0100, André Draszik wrote: > Hi Lee, > > Thanks for your review! > > On Fri, 2025-06-13 at 15:19 +0100, Lee Jones wrote: > > On Wed, 04 Jun 2025, André Draszik wrote: > > > > > Bucks can conceivably be used as supplies for LDOs, which means we need > > > to instantiate them separately from each other so that the supply- > > > consumer links can be resolved successfully at probe time. > > > > > > By doing so, the kernel will defer and retry instantiating the LDOs > > > once BUCKs have been created while without this change, it can be > > > impossible to mark BUCKs as LDO supplies. This becomes particularly > > > an issue with the upcoming support for the S2MPG11 PMIC, where > > > typically certain S2MP10/11 buck rails supply certain S2MP11/10 LDO > > > rails. > > > > > > The platform_device's ::id field is used to inform the regulator driver > > > which type of regulators (buck or ldo) to instantiate. > > > > I'm confused. > > > > There is nothing that differentiates the two, so why do you need to? > > On gs101, we have two PMICs, s2mpg10 and s2mpg11. Several s2mpg10 LDOs > are consumers of various s2mpg10 bucks & s2mpg10 bucks, and several Small typo, should read: ... Several s2mpg10 LDOs are consumers of various s2mpg10 bucks & s2mpg11 bucks... > s2mpg11 LDOs are also supplied by various s2mpg10 bucks & s2mpg11 bucks. > > So we have a circular dependency here. LDOs of one PMIC depend on bucks > of the other. > > If all s2mpg10 rails are handled by the same instance of the s2mpg10 > regulator driver, probe will defer (and ultimately fail), because the > supplies to the LDOs can not be resolved during probe. > > The same goes for s2mpg11. > > The result is that neither driver can probe successfully (unless you're > _extremely_ lucky due to parallel probing, but we can not rely on that, > of course). > > By splitting LDO and buck rails into separate instances, this circular > dependency is gone, the buck-instance of each respective driver can probe, > which then allows the LDO instance of the other driver to probe. > > Does that answer the question, or did I misunderstand it? > > > Cheers, > Andre'