[PATCH v1 2/2] soc: nuvoton: add NPCM LPC BPC driver

Tomer Maimon tmaimon77 at gmail.com
Thu Nov 24 05:01:48 AEDT 2022


Hi Arnd,

Thanks for your email

On Wed, 23 Nov 2022 at 12:58, Arnd Bergmann <arnd at arndb.de> wrote:
>
> On Tue, Nov 22, 2022, at 21:12, Tomer Maimon wrote:
> > Add Nuvoton BMC NPCM LPC BIOS post code (BPC) driver.
> >
> > The NPCM BPC monitoring two configurable I/O address written by the host
> > on the Low Pin Count (LPC) bus.
> >
> > Signed-off-by: Tomer Maimon <tmaimon77 at gmail.com>
> > ---
> >  drivers/soc/Kconfig                |   1 +
> >  drivers/soc/Makefile               |   1 +
> >  drivers/soc/nuvoton/Kconfig        |  24 ++
> >  drivers/soc/nuvoton/Makefile       |   3 +
> >  drivers/soc/nuvoton/npcm-lpc-bpc.c | 396 +++++++++++++++++++++++++++++
>
> In general, I try to keep drivers/soc/ for drivers that are
> used purely inside of the kernel and don't provide their
> own user space ABI, those should normally be part of
> some subsystem grouped by functionality.
>
> It appears that we have similar drivers for aspeed already,
> so there is some precedent, but I would still like to ask
> you and Joel to try to make sure the two are compatible,
> or ideally share the code for the user-facing part of the
> LPC driver.
Nuvoton and Aspeed use the same user-facing code to manage the host snooping.
https://github.com/openbmc/phosphor-host-postd
>
> > +config NPCM_PCI_MBOX
> > +     tristate "NPCM PCI Mailbox Controller"
> > +     depends on (ARCH_NPCM || COMPILE_TEST) && REGMAP && MFD_SYSCON
> > +     help
> > +       Expose the NPCM BMC PCI MBOX registers found on Nuvoton SOCs
> > +       to userspace.
>
> This looks unrelated to the LPC driver, so this should
> probably be a separate patch. The same comment about user
> space presumably applies here, but I have not seen the driver.
You are right, it was added by mistake.
will drop off in the next patch
>
> The implementation of npcm-lpc-bpc looks fine otherwise, I only
> noticed one minor detail that I would change:
>
> > +     np = pdev->dev.parent->of_node;
> > +     if (!of_device_is_compatible(np, "nuvoton,npcm750-lpc") &&
> > +         !of_device_is_compatible(np, "nuvoton,npcm845-lpc")) {
> > +             dev_err(dev, "unsupported LPC device binding\n");
> > +             return -ENODEV;
> > +     }
>
> This check doesn't seem to make sense here, since those are
> the only two types you support.
About the LPC, I like to double check with our architectures on it
because the BPC should working on eSPI as well.
Maybe I should remove the LPC part.
>
>       Arnd

Best regards,

Tomer


More information about the openbmc mailing list