All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee@kernel.org>
To: Hans de Goede <hdegoede@redhat.com>
Cc: Kate Hsuan <hpa@redhat.com>, Pavel Machek <pavel@ucw.cz>,
	linux-leds@vger.kernel.org, platform-driver-x86@vger.kernel.org,
	Daniel Scally <djrscally@gmail.com>,
	Mark Gross <markgross@kernel.org>,
	Daniel Scally <dan.scally@ideasonboard.com>
Subject: Re: [PATCH v3 1/3] platform: x86: int3472: Add MFD cell for tps68470 LED
Date: Thu, 23 Mar 2023 14:57:38 +0000	[thread overview]
Message-ID: <20230323145738.GN2673958@google.com> (raw)
In-Reply-To: <d2c6af4b-218c-96a7-a2d8-87f90e856c7c@redhat.com>

On Thu, 23 Mar 2023, Hans de Goede wrote:

> Hi,
>
> On 3/23/23 13:23, Lee Jones wrote:
> > On Tue, 21 Mar 2023, Kate Hsuan wrote:
> >
> >> Add MFD cell for tps68470-led.
> >>
> >> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
> >> Signed-off-by: Kate Hsuan <hpa@redhat.com>
> >> ---
> >>  drivers/platform/x86/intel/int3472/tps68470.c | 5 +++--
> >>  1 file changed, 3 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
> >> index 5b8d1a9620a5..82ef022f8916 100644
> >> --- a/drivers/platform/x86/intel/int3472/tps68470.c
> >> +++ b/drivers/platform/x86/intel/int3472/tps68470.c
> >> @@ -17,7 +17,7 @@
> >>  #define DESIGNED_FOR_CHROMEOS		1
> >>  #define DESIGNED_FOR_WINDOWS		2
> >>
> >> -#define TPS68470_WIN_MFD_CELL_COUNT	3
> >> +#define TPS68470_WIN_MFD_CELL_COUNT	4
> >>
> >>  static const struct mfd_cell tps68470_cros[] = {
> >>  	{ .name = "tps68470-gpio" },
> >> @@ -193,7 +193,8 @@ static int skl_int3472_tps68470_probe(struct i2c_client *client)
> >>  		cells[1].name = "tps68470-regulator";
> >>  		cells[1].platform_data = (void *)board_data->tps68470_regulator_pdata;
> >>  		cells[1].pdata_size = sizeof(struct tps68470_regulator_platform_data);
> >> -		cells[2].name = "tps68470-gpio";
> >> +		cells[2].name = "tps68470-led";
> >> +		cells[3].name = "tps68470-gpio";
> >
> > The question is, why is the MFD API being used out side of drivers/mfd?
>
> Because Intel made a big mess about how they describe camera sensors + the matching clks / regulators / GPIOs and the optional PMIC in ACPI.
>
> The drivers/platform/x86/intel/int3472/ code untangles this mess and in some cases it instantiates MFD cells (with a whole bunch of derived platform_data per cell) for a TPS68470 PMIC.
>
> And sometimes while binding to an INT3472 ACPI device-node it does not instantiate any MFD cells at all since the INT3472 ACPI device-node does not always describe such a PMIC.
>
> Oh and also depending on of the ACPI tables are targetting ChromeOS or Windows a different set of MFD cells needs to be instantiated. On ChromeOS most of the PMIC poking is done through ACPI through a ChomeOS specific custom ACPI OpRegion, so there there are only cells for GPIO and a driver providing the OpRegion are created.
>
> So lots of ugly x86 platform specific handling, ACPI parsing, etc. which is why this landed under drivers/platform/x86/ . IIRC you were even involved in the original merge since there once was a much simpler MFD driver under driver/mfd which only supported the ChromeOS setup.
>
> (but my memory may be deceiving me here).

Right, I guess we've both slept since then!

My normal request is that MFD handling should be in drivers/mfd.
Anything else can be farmed out to the various functional subsystems and
drivers/platform.

--
Lee Jones [李琼斯]

  reply	other threads:[~2023-03-23 14:57 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-21 15:37 [PATCH v3 0/3] leds: tps68470: LED driver for TPS68470 Kate Hsuan
2023-03-21 15:37 ` [PATCH v3 1/3] platform: x86: int3472: Add MFD cell for tps68470 LED Kate Hsuan
2023-03-22 16:46   ` Hans de Goede
2023-03-23 12:23   ` Lee Jones
2023-03-23 12:31     ` Hans de Goede
2023-03-23 14:57       ` Lee Jones [this message]
2023-03-21 15:37 ` [PATCH v3 2/3] include: mfd: tps68470: Add masks for LEDA and LEDB Kate Hsuan
2023-03-21 15:37 ` [PATCH v3 3/3] leds: tps68470: Add LED control for tps68470 Kate Hsuan
2023-03-22 16:46   ` Hans de Goede
2023-03-23  7:36   ` Dan Scally
2023-03-23 11:15   ` Pavel Machek
2023-03-23 11:24     ` Hans de Goede
2023-03-23 11:26       ` Pavel Machek
2023-03-23 11:29         ` Hans de Goede
2023-03-23 11:31           ` Hans de Goede
2023-03-23 11:36           ` Pavel Machek
2023-03-23 12:36             ` Hans de Goede

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=20230323145738.GN2673958@google.com \
    --to=lee@kernel.org \
    --cc=dan.scally@ideasonboard.com \
    --cc=djrscally@gmail.com \
    --cc=hdegoede@redhat.com \
    --cc=hpa@redhat.com \
    --cc=linux-leds@vger.kernel.org \
    --cc=markgross@kernel.org \
    --cc=pavel@ucw.cz \
    --cc=platform-driver-x86@vger.kernel.org \
    /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.