Hi Florian, On Tue, 2020-12-08 at 12:20 -0800, Florian Fainelli wrote: > On 12/8/20 3:02 AM, Philipp Zabel wrote: > > Hi Rafał, > > > > On Thu, 2020-11-19 at 13:56 +0100, Rafał Miłecki wrote: > > > From: Rafał Miłecki <rafal@xxxxxxxxxx> > > > > > > PMB can be found on BCM4908 and many other chipsets (e.g. BCM63138). > > > It's needed to power on and off SoC blocks like PCIe, SATA, USB. > > > > This sentence, the register names, and > > the brcm_pmb_power_on/off_device/zone functions below make me worry that > > this should be a power domain controller (pm_genpd in drivers/soc) > > instead. > > Does PM in PMB stand for power management by chance? > > It does, PMB stands for Power Management Bus. > > > If this actually cuts power to the USB and PCIe cores instead of just > > controlling reset lines, it would be better to implement this > > differently. > > What is tricky is this is a combined reset/clock/power zones controller. > You rarely turn off/assert one of those without also turning > off/asserting the others. It is common to have power management controllers also control clocks and resets. If the PMB controlled clocks and resets are only required for the power on/off sequences, you should be able to move the current .(de)assert implementations into a generic_pm_domain's .power_on and .power_off methods. regards Philipp