[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c5632bfab3956265e90fc2fb6c0b3cae@walle.cc>
Date: Fri, 05 Jun 2020 22:07:36 +0200
From: Michael Walle <michael@...le.cc>
To: Mark Brown <broonie@...nel.org>
Cc: Lee Jones <lee.jones@...aro.org>, linux-gpio@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-hwmon@...r.kernel.org, linux-pwm@...r.kernel.org,
linux-watchdog@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
Linus Walleij <linus.walleij@...aro.org>,
Bartosz Golaszewski <bgolaszewski@...libre.com>,
Rob Herring <robh+dt@...nel.org>,
Jean Delvare <jdelvare@...e.com>,
Guenter Roeck <linux@...ck-us.net>,
Thierry Reding <thierry.reding@...il.com>,
Uwe Kleine-König <u.kleine-koenig@...gutronix.de>,
Wim Van Sebroeck <wim@...ux-watchdog.org>,
Shawn Guo <shawnguo@...nel.org>, Li Yang <leoyang.li@....com>,
Thomas Gleixner <tglx@...utronix.de>,
Jason Cooper <jason@...edaemon.net>,
Marc Zyngier <maz@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
Subject: Re: [PATCH v4 02/11] mfd: Add support for Kontron sl28cpld management
controller
Hi,
Am 2020-06-05 12:50, schrieb Mark Brown:
> On Fri, Jun 05, 2020 at 07:57:09AM +0100, Lee Jones wrote:
>> On Thu, 04 Jun 2020, Michael Walle wrote:
>
>> > + sl28cpld->regmap = devm_regmap_init_i2c(i2c, &sl28cpld_regmap_config);
>> > + if (IS_ERR(sl28cpld->regmap))
>> > + return PTR_ERR(sl28cpld->regmap);
>
>> This is now a shared memory allocator and not an MFD at all.
>
>> I'm clamping down on these type of drivers!
>
>> Please find a better way to accomplish this.
>
> What is the concern with this? Looking at the patch I'm guessing the
> concern would be that the driver isn't instantiating any MFD children
> and instead requiring them to be put in the DT?
>
>> Potentially using "simple-mfd" and "simple-regmap".
>
>> The former already exists and does what you want. The latter doesn't
>> yet exist, but could solve your and lots of other contributor's
>> issues.
>
> I have no idea what you are thinking of when you say "simple-regmap" so
> it is difficult to comment.
I guess, Lee is suggesting to be able to create a regmap instance via
device tree (and populate its child nodes?). Like
compatible = "syscon", "simple-mfd";
but for any regmap, not just MMIO.
But, there is more in my driver:
(1) there is a version check
(2) there is another function for which there is no suitable linux
subsystem I'm aware of and thus which I'd like to us sysfs
attributes for: This controller supports 16 non-volatile
configuration bits. (this is still TBD)
I don't see what is different between this driver and for example the
gateworks-gsc.c. Just that mine doesn't use a global register set, but
local offsets and a base for each component. From a hardware
perspective its one device behind an I2C address providing different
functions across multiple driver subsystems.
Actually, I've tried to remove the devm_of_platform_populate() and
instead added the "simple-mfd" to my mfd node:
compatible = "kontron,sl28cpld-r1", "simple-mfd";
I guess that doesn't work because the device is below the i2c bus?
--
-michael
Powered by blists - more mailing lists