Re: [PATCH V1 1/4] qcom: spmi-wled: Add support for qcom wled driver

From: Lee Jones
Date: Fri Nov 17 2017 - 03:34:10 EST


On Thu, 16 Nov 2017, Bjorn Andersson wrote:

> On Thu 16 Nov 22:36 PST 2017, kgunda@xxxxxxxxxxxxxx wrote:
>
> > On 2017-11-16 22:25, Bjorn Andersson wrote:
> > > On Thu 16 Nov 04:18 PST 2017, Kiran Gunda wrote:
> > >
> > > > WLED driver provides the interface to the display driver to
> > > > adjust the brightness of the display backlight.
> > > >
> > >
> > > Hi Kiran,
> > >
> > > This driver has a lot in common with the already upstream pm8941-wled.c,
> > > because it's just a new revision of the same block.
> > >
> > > Please extend the existing driver rather than providing a new one
> > > (and yes, renaming the file is okay).
> > >
> > > Regards,
> > > Bjorn
> >
> > Hi Bjorn,
> >
> > Yes this driver design is similar to pm8941, however the WLED HW block
> > has undergone quite a few changes in analog and digital from PM8941 to
> > PM8998.
>
> I can see that, looking at the documentation.
>
> > Few of them include splitting one module into wled-ctrl and wled-sink
> > peripherals, changes in the register offsets and the bit
> > interpretation.
>
> This is typical and something we need to handle in all these drivers, to
> avoid having one driver per platform.
>
> > Hence we concluded that it was better to have a new driver to support
> > this new gen WELD module and decouple it from the pm8941.
>
> Okay, I can see how it's easier to not have to case about anything but
> pmi8998 in this driver, but where do you add the support for other WLED
> versions? What about PMI8994? Will there not be similar differences
> (registers that has moved around) in the future?
>
> > Also, going forward this driver will support AMOLED AVDD rail (not
> > supported by pm8941) touching a few more registers/configuration and
> > newer PMICs.
>
> Is this a feature that was introduced in PMI8998? Will this support not
> be dependent on the pmic version?
>
> > So spinning off a new driver would make it cleaner and easier to
> > extend further.
> >
>
> It's for sure easier at this point in time, but your argumentation
> implies that PMI8998+1 should go into it's own driver as well.
>
> I suspect that if you're going to reuse this driver for future PMIC
> versions you will have to deal with register layout differences and new
> feature set, and as such I'm not convinced that a new driver is needed.
>
> Can you give any concrete examples of where it is not possible or
> undesirable to maintain the pm8941 support in the same driver?

I agree with Bjorn. If you can support multiple devices in a single
driver with a couple of simple ddata struct differences and a slightly
different regmap, you should.

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog