Hi Geert, Thanks for your feedback! > -----Original Message----- > From: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> > Sent: 03 January 2023 08:37 > To: Fabrizio Castro <fabrizio.castro.jz@xxxxxxxxxxx> > Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>; Bartosz Golaszewski > <brgl@xxxxxxxx>; Rob Herring <robh+dt@xxxxxxxxxx>; Krzysztof Kozlowski > <krzysztof.kozlowski+dt@xxxxxxxxxx>; Sebastian Reichel <sre@xxxxxxxxxx>; > Geert Uytterhoeven <geert+renesas@xxxxxxxxx>; Lee Jones <lee@xxxxxxxxxx>; > linux-gpio@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; linux-pm@xxxxxxxxxxxxxxx; Chris Paterson > <Chris.Paterson2@xxxxxxxxxxx>; Biju Das <biju.das@xxxxxxxxxxxxxx>; linux- > renesas-soc@xxxxxxxxxxxxxxx; Laurent Pinchart > <laurent.pinchart@xxxxxxxxxxxxxxxx>; Jacopo Mondi <jacopo@xxxxxxxxxx> > Subject: Re: [PATCH v2 2/4] mfd: Add RZ/V2M PWC core driver > > Hi Fabrizio, > > On Wed, Dec 21, 2022 at 10:09 PM Fabrizio Castro > <fabrizio.castro.jz@xxxxxxxxxxx> wrote: > > The External Power Sequence Controller (PWC) IP (found in the > > RZ/V2M SoC) is a controller for external power supplies (regulators > > and power switches), and it supports the following features: it > > generates a power on/off sequence for external power supplies, > > it generates an on/off sequence for the LPDDR4 core power supply > > (LPVDD), it comes with General-Purpose Outputs, and it processes > > key input signals. > > Thanks for your patch! > > > The PWC is basically a Multi-Function Device (MFD), its software > > support comes with a core driver, and specialized drivers for > > its specific features. > > I have to admit I'm not such a big fan of MFD. In this driver, > you are not even sharing resources in the MFD cells, just the mapped > register base. So I think you can easily save +100 LoC and reduce > maintenance synchronization overhead across subsystems by just having > a single non-MFD driver instead. > > Did you pick MFD because the PWC poweroff feature depends on board > wiring, and thus is optional? I am not a big fan of MFD, either. I picked MFD because we were not 100% sure of what the IP could do when we started working on it. I have received more information regarding the IP now (which I don't have the liberty to discuss), I am still not 100% sure that's all of it, but basically its support may require expansion later on. I liked the solution based on syscon and simple-mfd for several reasons, but having dropped syscon and simple-mfd due to issues with the dt-bindings I have moved on with a core driver to instantiate the required SW support. We could of course move to a unified driver if that makes more sense? If we were to move to unified driver, under which directory would you suggest we put it? > > Are there any other MFD cells planned (e.g. regulators) to be added > later? The public datasheet does not list the actual registers of the > block, only a high-level overview with (rather detailed) behavioral > information. No MFD cells are planned for now, but I can't exclude we won't have any in the future. Thanks, Fab > > Thanks! > > > --- /dev/null > > +++ b/drivers/mfd/rzv2m-pwc.h > > > +struct rzv2m_pwc_priv { > > + void __iomem *base; > > +}; > > + > > +#endif /* __LINUX_RZV2M_PWC_H__ */ > > Gr{oetje,eeting}s, > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux- > m68k.org > > In personal conversations with technical people, I call myself a hacker. > But > when I'm talking to journalists I just say "programmer" or something like > that. > -- Linus Torvalds