Re: [PATCH v11 2/2] mfd: max597x: Add support for MAX5970 and MAX5978

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 03 Jan 2023, Naresh Solanki wrote:

> Hi Lee,
> 
> On 23-12-2022 06:06 pm, Lee Jones wrote:
> > On Wed, 14 Dec 2022, Naresh Solanki wrote:
> > 
> > > Hi Lee,
> > > 
> > > On 14-12-2022 03:17 pm, Lee Jones wrote:
> > > > On Wed, 14 Dec 2022, Naresh Solanki wrote:
> > > > 
> > > > > Hi Lee
> > > > > 
> > > > > On 08-12-2022 05:53 pm, Lee Jones wrote:
> > > > > > On Fri, 18 Nov 2022, Naresh Solanki wrote:
> > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > On 17-11-2022 03:45 pm, Lee Jones wrote:
> > > > > > > > On Wed, 16 Nov 2022, Naresh Solanki wrote:
> > > > > > > > 
> > > > > > > > > From: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx>
> > > > > > > > > 
> > > > > > > > > Implement a regulator driver with IRQ support for fault management.
> > > > > > > > > Written against documentation [1] and [2] and tested on real hardware.
> > > > > > > > > 
> > > > > > > > > Every channel has its own regulator supplies nammed 'vss1-supply' and
> > > > > > > > > 'vss2-supply'. The regulator supply is used to determine the output
> > > > > > > > > voltage, as the smart switch provides no output regulation.
> > > > > > > > > The driver requires the 'shunt-resistor-micro-ohms' property to be
> > > > > > > > > present in Device Tree to properly calculate current related
> > > > > > > > > values.
> > > > > > > > > 
> > > > > > > > > Datasheet links:
> > > > > > > > > 1: https://datasheets.maximintegrated.com/en/ds/MAX5970.pdf
> > > > > > > > > 2: https://datasheets.maximintegrated.com/en/ds/MAX5978.pdf
> > > > > > > > > 
> > > > > > > > > Signed-off-by: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx>
> > > > > > > > > Co-developed-by: Marcello Sylvester Bauer <sylv@xxxxxxx>
> > > > > > > > > Signed-off-by: Marcello Sylvester Bauer <sylv@xxxxxxx>
> > > > > > > > > Co-developed-by: Naresh Solanki <Naresh.Solanki@xxxxxxxxxxxxx>
> > > > > > > > > Signed-off-by: Naresh Solanki <Naresh.Solanki@xxxxxxxxxxxxx>
> > > > > > > > > ---
> > > > > > > > >      drivers/mfd/Kconfig         |  12 +++++
> > > > > > > > >      drivers/mfd/Makefile        |   1 +
> > > > > > > > >      drivers/mfd/max597x.c       |  93 +++++++++++++++++++++++++++++++++
> > > > > > > > >      include/linux/mfd/max597x.h | 101 ++++++++++++++++++++++++++++++++++++
> > > > > > > > >      4 files changed, 207 insertions(+)
> > > > > > > > >      create mode 100644 drivers/mfd/max597x.c
> > > > > > > > >      create mode 100644 include/linux/mfd/max597x.h
> > > > > > > > 
> > > > > > > > Ignoring my comments won't make them go away. :)
> > > > > > > > 
> > > > > > > > Please tell me why you need a whole new driver, instead of adding
> > > > > > > > support to simple-mfd-i2c?
> > > > > > > > 
> > > > > > > I felt current implementation to be simpler, clearer & straight forward.
> > > > > > 
> > > > > > If you can make it work with simple-mfd-i2c, please do so.
> > > > > simple-mfd-i2c doesn't has mechanism to pass device type(max5978 vs
> > > > > max5970).
> > > > 
> > > > `git grep silergy,sy7636a -- drivers/mfd`
> > > I did check the driver but there is no mechanism to distinguish between chip
> > > variant i.e., 597x-regulator driver should be able to distinguish between
> > > max5978 vs max5970 chip type.
> > 
> > How is it doing that presently?
> Using i2c_device_id. driver_data hold chip variant info based on compatible
> match.
> > 
> > Why can't the Regulator driver read the DT or match on the parent's
> > compatible for itself?
> There are three drivers i.e., max597x regulator, led & iio driver.
> I'm not sure if checking compatible in each driver is ok.
> Recommendation ?

Sure it is.  The leaf devices can know that they are children and can
read their parent's device tree node without issue.

> > Providing a 100 line driver just to figure out a single value that is
> > only going to be used in a single driver is a no-go.  Please find a
> > better way to solve this.Yes but simple-mfd-i2c doesn't help in
> > distinguishing chip variant & in
> situation like absence of device id register, mfd cell driver cant determine
> chip type to initialise accordingly.
> Can you please recommend me an approach that can also handle this kind of
> scenario.

Place the hardware IDs in DT.

-- 
Lee Jones [李琼斯]



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux