Re: [PATCH v5 2/5] mfd: Add support for the Lantiq PEF2256 framer

From: Herve Codina
Date: Fri Mar 31 2023 - 03:43:09 EST


Hi Lee,

On Thu, 30 Mar 2023 17:05:10 +0100
Lee Jones <lee@xxxxxxxxxx> wrote:

> On Tue, 28 Mar 2023, Herve Codina wrote:
>
> > The Lantiq PEF2256 is a framer and line interface component designed to
> > fulfill all required interfacing between an analog E1/T1/J1 line and the
> > digital PCM system highway/H.100 bus.
>
> My goodness!
>
> It's been a long time since I've seen anything quite like this.

Yes, old things but working on recent kernel.

>
> My suggestion to you:
>
> * Split this up into components that fit functional subsystems

It is done. The audio part is present in ASoC subsystem (path 5 in this
series). pinctrl function is implemented in this driver and, as I don't
want to share registers, I would prefer to keep this function inside this
driver.

Also, I sent a RFC related to HDLC and PHY. In this RFC, the pef2256 is
considered as a PHY and handled in the PHY subsystem.
https://lore.kernel.org/linux-kernel/20230323103154.264546-1-herve.codina@xxxxxxxxxxx/

> * Run checkpatch.pl

I did.

> * Remove all of the debug prints

I can do that in the next iteration if really needed.

> * Move all of the defines out to a header file

These defines are related to registers. As I don't want to share these
registers, is it really necessary to use a header file for them ?

> * Be more verbose in your documentation / comments

I can improve the API documentation present in include/mfd/pef2256.h.
Do you thing that is necessary ? Only a few devices will use this API.

> * Consider using simple-mfd to probe child devices.

I did.
The driver has (and needs to have) a compatible string.
Having this compatible string, sub-nodes are not automatically populated
in the device tree. In order to have them populated and probed, the pef2256
probe function ends calling devm_of_platform_populate().

Best regards,
Hervé

>
> > Signed-off-by: Herve Codina <herve.codina@xxxxxxxxxxx>
> > ---
> > drivers/mfd/Kconfig | 17 +
> > drivers/mfd/Makefile | 1 +
> > drivers/mfd/pef2256.c | 1355 +++++++++++++++++++++++++++++++++++
> > include/linux/mfd/pef2256.h | 28 +
> > 4 files changed, 1401 insertions(+)
> > create mode 100644 drivers/mfd/pef2256.c
> > create mode 100644 include/linux/mfd/pef2256.h
>
> --
> Lee Jones [李琼斯]