[RFC PATCH 1/3] mfd: AXP22x: add support for APX221 PMIC
Lee Jones
lee.jones at linaro.org
Fri May 23 03:03:39 PDT 2014
> >>>>> This patch introduces preliminary support for the X-Powers AXP221 PMIC.
> >>>>> The AXP221 is typically used on boards using Allwinner's A31 SoC.
> >>>>>
> >>>>> At the moment, this driver only exposes regulator devices, but other
> >>>>> subdevices.
> >>>>>
> >>>>> Signed-off-by: Boris BREZILLON <boris.brezillon at free-electrons.com>
> >>>>> ---
> >>>>> drivers/mfd/Kconfig | 12 +++
> >>>>> drivers/mfd/Makefile | 1 +
> >>>>> drivers/mfd/axp22x.c | 237 +++++++++++++++++++++++++++++++++++++++++++++
> >>>>> include/linux/mfd/axp22x.h | 149 ++++++++++++++++++++++++++++
> >>>>> 4 files changed, 399 insertions(+)
> >>>>> create mode 100644 drivers/mfd/axp22x.c
> >>>>> create mode 100644 include/linux/mfd/axp22x.h
> >>>> Not a chance.
> >>>>
> >>>> Farrrr, too much common code with axp20x.c - please merge into one file.
> >>>>
> >>> This was one of the questions I asked in my cover letter (could you take
> >>> a look at it and tell me what's your prefered solution ?) ;-).
> >>>
> >>> I first tried to reuse the axp20x drivers, but ended up copying almost
> >>> all definitions, hence I decided to first do a different driver and ask
> >>> for advices.
> >> I've just taken a good look at this (I'm planning on doing an axp152 driver
> >> myself), and it seems that using a single mfd driver for the 20x and 221 should
> >> be quite feasible:
> >>
> >> - axp20x.h would get some new register defines for registers which are
> >> different (or unique) to the 221 prefixed with aXP221
> >> - An axp20x_writeable_ranges would need
> >> to be extended with a third range going from AXP221_BAT_CAP1 (0xe0)
> >> to AXP221_BAT_LOW_THRESH (0xe6)
> >> - axp20x_writeable_table would get .n_yes_ranges set to 2, and a new
> >> apx22x_writeable_table would be introduced with n_yes_ranges set to 3.
> >> - add a new axp221_supplies array
> >> - add a new axp221_cells array
> >> - and finally use the proper structs in axp20x_i2c_probe depending on the type
> >>
> >> Note that this means sharing ie the interrupt table, which is ok since they
> >> are the same, except that the 221 has a couple of interrupts missing, but
> >> the ones which are shared are all at the same place.
> > Exactly. As .probe() is identical, you only require some device
> > matching and some extra structs where the data actually differs
> > between devices.
> >
>
> I think you've applied this patch on your for-next tree by mistake.
> As stated above, this driver should be merged with the axp20x one.
You're right, I added it for testing, but removed it soon after. I've
now re-pushed the branch, so it should be gone now.
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
More information about the linux-arm-kernel
mailing list