All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: Mark Kettenis <mark.kettenis@xs4all.nl>
Cc: Mark Kettenis <kettenis@openbsd.org>,
	U-Boot Mailing List <u-boot@lists.denx.de>,
	 Jaehoon Chung <jh80.chung@samsung.com>
Subject: Re: [PATCH v2 3/3] power: domain: Add Apple pmgr driver
Date: Wed, 29 Dec 2021 23:03:04 -0700	[thread overview]
Message-ID: <CAPnjgZ1EHjyMpVa77hxbrMKOUW4O1AEW6evkNDR-VyGnEj4qGQ@mail.gmail.com> (raw)
In-Reply-To: <d3cb7aa9ae5eda11@bloch.sibelius.xs4all.nl>

Hi Mark,

On Wed, 29 Dec 2021 at 08:00, Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
>
> > From: Simon Glass <sjg@chromium.org>
> > Date: Wed, 29 Dec 2021 06:36:24 -0700
> >
> > Hi Mark,
> >
> > On Tue, 28 Dec 2021 at 07:27, Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
> > >
> > > > From: Simon Glass <sjg@chromium.org>
> > > > Date: Tue, 28 Dec 2021 01:34:16 -0700
> > > >
> > > > Hi Mark,
> > > >
> > > > On Thu, 23 Dec 2021 at 14:35, Mark Kettenis <kettenis@openbsd.org> wrote:
> > > > >
> > > > > This driver supports power domains for the power management
> > > > > controller found on Apple SoCs.
> > > > >
> > > > > Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
> > > > > ---
> > > > >  arch/arm/Kconfig                  |   3 +
> > > > >  drivers/power/domain/Kconfig      |   8 +++
> > > > >  drivers/power/domain/Makefile     |   1 +
> > > > >  drivers/power/domain/apple-pmgr.c | 113 ++++++++++++++++++++++++++++++
> > > > >  4 files changed, 125 insertions(+)
> > > > >  create mode 100644 drivers/power/domain/apple-pmgr.c
> > > >
> > > > Reviewed-by: Simon Glass <sjg@chromium.org>
> > > >
> > > > nits below
> > > >
> > > > >
> > > > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > > > > index 59e031de04..40d3f66acb 100644
> > > > > --- a/arch/arm/Kconfig
> > > > > +++ b/arch/arm/Kconfig
> > > > > @@ -938,6 +938,9 @@ config ARCH_APPLE
> > > > >         select OF_BOARD
> > > > >         select PINCTRL
> > > > >         select POSITION_INDEPENDENT
> > > > > +       select POWER_DOMAIN
> > > > > +       select REGMAP
> > > > > +       select SYSCON
> > > > >         select SYSRESET
> > > > >         select SYSRESET_WATCHDOG
> > > > >         select SYSRESET_WATCHDOG_AUTO
> > > > > diff --git a/drivers/power/domain/Kconfig b/drivers/power/domain/Kconfig
> > > > > index 99b3f9ae71..6ef7a3b3a7 100644
> > > > > --- a/drivers/power/domain/Kconfig
> > > > > +++ b/drivers/power/domain/Kconfig
> > > > > @@ -9,6 +9,14 @@ config POWER_DOMAIN
> > > > >           domains). This may be used to save power. This API provides the
> > > > >           means to control such power management hardware.
> > > > >
> > > > > +config APPLE_PMGR_POWER_DOMAIN
> > > > > +       bool "Enable the Apple PMGR power domain driver"
> > > > > +       depends on POWER_DOMAIN
> > > > > +       default y if ARCH_APPLE
> > > > > +       help
> > > > > +         Enable support for manipulating the Apple M1 power domains via
> > > > > +         MMIO mapped registers.
> > > >
> > > > Needs more detail here, perhaps a pointer to docs, or something about
> > > > what the driver supports.
> > >
> > > Struggling to come up with more.  The "via MMIO mapped registers" is
> > > already a bit silly.  There are no docs.  And the one line already
> > > indicates what the driver supports.  Do you want me to add a sentence
> > > that says the same thing but in different words?
> >
> > What is PMGR?
>
> Power ManaGeR?  Who knows?  It is wat Apple seems to call this thing.
>
> > What power domains does the driver support? All of them or just a subset?
>
> Again, we don't know.  It supports the power domains we know about.
>
> This is revers-engineered and most of the naming comes from hints
> dropped by Apple in their version of the device tree and/or the macOS
> driver names.  The more we say here, the more likely it is wrong.
>
> > > > > +
> > > > >  config BCM6328_POWER_DOMAIN
> > > > >         bool "Enable the BCM6328 power domain driver"
> > > > >         depends on POWER_DOMAIN && ARCH_BMIPS
> > > > > diff --git a/drivers/power/domain/Makefile b/drivers/power/domain/Makefile
> > > > > index 3d1e5f073c..530ae35671 100644
> > > > > --- a/drivers/power/domain/Makefile
> > > > > +++ b/drivers/power/domain/Makefile
> > > > > @@ -4,6 +4,7 @@
> > > > >  #
> > > > >
> > > > >  obj-$(CONFIG_$(SPL_)POWER_DOMAIN) += power-domain-uclass.o
> > > > > +obj-$(CONFIG_APPLE_PMGR_POWER_DOMAIN) += apple-pmgr.o
> > > > >  obj-$(CONFIG_BCM6328_POWER_DOMAIN) += bcm6328-power-domain.o
> > > > >  obj-$(CONFIG_IMX8_POWER_DOMAIN) += imx8-power-domain-legacy.o imx8-power-domain.o
> > > > >  obj-$(CONFIG_IMX8M_POWER_DOMAIN) += imx8m-power-domain.o
> > > > > diff --git a/drivers/power/domain/apple-pmgr.c b/drivers/power/domain/apple-pmgr.c
> > > > > new file mode 100644
> > > > > index 0000000000..08a30c8ebf
> > > > > --- /dev/null
> > > > > +++ b/drivers/power/domain/apple-pmgr.c
> > > > > @@ -0,0 +1,113 @@
> > > > > +// SPDX-License-Identifier: GPL-2.0+
> > > > > +/*
> > > > > + * Copyright (C) 2021 Mark Kettenis <kettenis@openbsd.org>
> > > > > + */
> > > > > +
> > > > > +#include <common.h>
> > > > > +#include <asm/io.h>
> > > > > +#include <dm.h>
> > > > > +#include <linux/err.h>
> > > > > +#include <linux/bitfield.h>
> > > > > +#include <power-domain-uclass.h>
> > > > > +#include <regmap.h>
> > > > > +#include <syscon.h>
> > > > > +
> > > > > +#define APPLE_PMGR_PS_TARGET   GENMASK(3, 0)
> > > > > +#define APPLE_PMGR_PS_ACTUAL   GENMASK(7, 4)
> > > > > +
> > > > > +#define APPLE_PMGR_PS_ACTIVE   0xf
> > > > > +#define APPLE_PMGR_PS_PWRGATE  0x0
> > > > > +
> > > > > +#define APPLE_PMGR_PS_SET_TIMEOUT      100
> > > >
> > > > TIMEOUT_MS ?
> > > > _US ?
> > >
> > > _US
> > >
> > > > > +
> > > > > +struct apple_pmgr_priv {
> > > > > +       struct regmap *regmap;
> > > > > +       u32 offset;
> > > >
> > > > Needs comment for struct
> > >
> > > Really?  I mean, I can add a "Device private data" comment, but that's
> > > pretty much implied by the _priv and the vast majority of the drivers
> > > don't do such a thing.
> >
> > What is offset?
>
> The offset into the register map for this particular power domain.
> Adding a comment feels like stating the obvious to me.  But if you
> feel it needs one, I can add it.

Yes please.

Re the other things, just do your best. We often have docs problems,
so Apple is not unique here.

Regards,
Simon

      reply	other threads:[~2021-12-30  6:03 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-23 21:34 [PATCH v2 0/3] Apple M1 power management controller support Mark Kettenis
2021-12-23 21:34 ` [PATCH v2 1/3] arm: dts: apple: Update Apple M1 device trees Mark Kettenis
2021-12-27 12:20   ` Jaehoon Chung
2021-12-28  8:34   ` Simon Glass
2021-12-23 21:34 ` [PATCH v2 2/3] arm: dts: apple: Add u-boot,dm-pre-reloc properties Mark Kettenis
2021-12-27 12:20   ` Jaehoon Chung
2021-12-28  8:34   ` [PATCH v2 2/3] arm: dts: apple: Add u-boot, dm-pre-reloc properties Simon Glass
2021-12-23 21:34 ` [PATCH v2 3/3] power: domain: Add Apple pmgr driver Mark Kettenis
2021-12-27 12:21   ` Jaehoon Chung
2021-12-28  8:34   ` Simon Glass
2021-12-28 14:27     ` Mark Kettenis
2021-12-29 13:36       ` Simon Glass
2021-12-29 15:00         ` Mark Kettenis
2021-12-30  6:03           ` Simon Glass [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPnjgZ1EHjyMpVa77hxbrMKOUW4O1AEW6evkNDR-VyGnEj4qGQ@mail.gmail.com \
    --to=sjg@chromium.org \
    --cc=jh80.chung@samsung.com \
    --cc=kettenis@openbsd.org \
    --cc=mark.kettenis@xs4all.nl \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.