From: Lee Jones <lee@kernel.org>
To: Ivan Vecera <ivecera@redhat.com>
Cc: netdev@vger.kernel.org,
Vadim Fedorenko <vadim.fedorenko@linux.dev>,
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>,
Jiri Pirko <jiri@resnulli.us>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Prathosh Satish <Prathosh.Satish@microchip.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Simon Horman <horms@kernel.org>,
Andy Shevchenko <andy@kernel.org>,
Michal Schmidt <mschmidt@redhat.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org
Subject: Re: [PATCH net-next v6 8/8] mfd: zl3073x: Register DPLL sub-device during init
Date: Wed, 7 May 2025 12:06:21 +0100 [thread overview]
Message-ID: <20250507110621.GJ3865826@google.com> (raw)
In-Reply-To: <a699035f-3e8d-44d7-917d-13c693feaf2e@redhat.com>
On Fri, 02 May 2025, Ivan Vecera wrote:
>
>
> On 01. 05. 25 3:22 odp., Lee Jones wrote:
> > On Wed, 30 Apr 2025, Ivan Vecera wrote:
> >
> > > Register DPLL sub-devices to expose the functionality provided
> > > by ZL3073x chip family. Each sub-device represents one of
> > > the available DPLL channels.
> > >
> > > Signed-off-by: Ivan Vecera <ivecera@redhat.com>
> > > ---
> > > v4->v6:
> > > * no change
> > > v3->v4:
> > > * use static mfd cells
> > > ---
> > > drivers/mfd/zl3073x-core.c | 19 +++++++++++++++++++
> > > 1 file changed, 19 insertions(+)
> > >
> > > diff --git a/drivers/mfd/zl3073x-core.c b/drivers/mfd/zl3073x-core.c
> > > index 050dc57c90c3..3e665cdf228f 100644
> > > --- a/drivers/mfd/zl3073x-core.c
> > > +++ b/drivers/mfd/zl3073x-core.c
> > > @@ -7,6 +7,7 @@
> > > #include <linux/device.h>
> > > #include <linux/export.h>
> > > #include <linux/math64.h>
> > > +#include <linux/mfd/core.h>
> > > #include <linux/mfd/zl3073x.h>
> > > #include <linux/module.h>
> > > #include <linux/netlink.h>
> > > @@ -755,6 +756,14 @@ static void zl3073x_devlink_unregister(void *ptr)
> > > devlink_unregister(ptr);
> > > }
> > > +static const struct mfd_cell zl3073x_dpll_cells[] = {
> > > + MFD_CELL_BASIC("zl3073x-dpll", NULL, NULL, 0, 0),
> > > + MFD_CELL_BASIC("zl3073x-dpll", NULL, NULL, 0, 1),
> > > + MFD_CELL_BASIC("zl3073x-dpll", NULL, NULL, 0, 2),
> > > + MFD_CELL_BASIC("zl3073x-dpll", NULL, NULL, 0, 3),
> > > + MFD_CELL_BASIC("zl3073x-dpll", NULL, NULL, 0, 4),
> > > +};
> >
> > What other devices / subsystems will be involved when this is finished?
>
> Lee, btw. I noticed from another discussion that you mentioned that
> mfd_cell->id should not be used outside MFD.
>
> My sub-drivers uses this to get DPLL channel number that should be used
> for the particular sub-device.
>
> E.g.
> 1) MFD_CELL_BASIC("zl3073x-dpll", NULL, NULL, 0, 2);
> 2) MFD_CELL_BASIC("zl3073x-phc", NULL, NULL, 0, 3);
>
> In these cases dpll_zl3073x sub-driver will use DPLL channel 2 for this
> DPLL sub-device and ptp_zl3073x sub-driver will use DPLL channel 3 for
> this PHC sub-device.
>
> platform_device->id cannot be used for this purpose in conjunction with
> PLATFORM_DEVID_AUTO as that ->id can be arbitrary.
>
> So if I cannot use mfd_cell->id what should I use for that case?
> Platform data per cell with e.g. the DPLL channel number?
Yes, using the device ID for anything other than enumeration is a hack.
Channel numbers and the like should be passed as platform data.
--
Lee Jones [李琼斯]
next prev parent reply other threads:[~2025-05-07 11:06 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-30 10:11 [PATCH net-next v6 0/8] Add Microchip ZL3073x support (part 1) Ivan Vecera
2025-04-30 10:11 ` [PATCH net-next v6 1/8] dt-bindings: dpll: Add DPLL device and pin Ivan Vecera
2025-04-30 10:11 ` [PATCH net-next v6 2/8] dt-bindings: dpll: Add support for Microchip Azurite chip family Ivan Vecera
2025-04-30 10:11 ` [PATCH net-next v6 3/8] mfd: Add Microchip ZL3073x support Ivan Vecera
2025-04-30 10:11 ` [PATCH net-next v6 4/8] mfd: zl3073x: Add support for devlink device info Ivan Vecera
2025-04-30 10:11 ` [PATCH net-next v6 5/8] mfd: zl3073x: Protect operations requiring multiple register accesses Ivan Vecera
2025-04-30 10:11 ` [PATCH net-next v6 6/8] mfd: zl3073x: Fetch invariants during probe Ivan Vecera
2025-04-30 10:11 ` [PATCH net-next v6 7/8] mfd: zl3073x: Add clock_id field Ivan Vecera
2025-04-30 10:11 ` [PATCH net-next v6 8/8] mfd: zl3073x: Register DPLL sub-device during init Ivan Vecera
2025-05-01 13:22 ` Lee Jones
2025-05-01 13:51 ` Ivan Vecera
2025-05-02 16:54 ` Ivan Vecera
2025-05-07 11:06 ` Lee Jones [this message]
2025-05-07 12:36 ` Ivan Vecera
2025-05-06 1:14 ` [PATCH net-next v6 0/8] Add Microchip ZL3073x support (part 1) Jakub Kicinski
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=20250507110621.GJ3865826@google.com \
--to=lee@kernel.org \
--cc=Prathosh.Satish@microchip.com \
--cc=andy@kernel.org \
--cc=arkadiusz.kubalewski@intel.com \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=horms@kernel.org \
--cc=ivecera@redhat.com \
--cc=jiri@resnulli.us \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mschmidt@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
--cc=vadim.fedorenko@linux.dev \
/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.