Subject: [NEW DRIVER V4 0/7] DA9058 PMIC - please comment on this new driver

This is submission attempt number 4 to have this driver included in
the linux kernel source tree. This is the driver for the Dialog DA9058.

The DA9058 is a low power Power Management Integrated Circuit with extra
functionality. It is a Multi Function Device controlled only from an I2C
bus whose components can raise an interrupt request on a single IRQ line.

The driver for the DA9058 consists of a core (i2c) device driver that
instantiates the individual component device drivers for:

adc - 5 ADC channels
gpio - 2 available pins
onkey - 1 device
regulator - 4 BUCKS, 19 LDO and 3 fixed
rtc - low power clock
hwmon - 5 monitored voltages/temperatures

All the above seven component device drivers depend on the 'core'
component driver, which is number one in the patch series.

This driver has been tested on a Samsung SMDK6410 connected to a Dialog
DA9058 Evaluation Board via one GPIO and a 3-wire I2C connection.

All the components can be builtin to the kernel or compiled as modules.
As far as I can tell, all the latest APIs both for the core driver and
all the component drivers have been adhered to, but if I have missed
something please let me know.

Many thanks,
Anthony Olech, Dialog Semiconductor Ltd.

Tony Olech (at Home) (7):
DA9058 MFD core driver
DA9058 ADC driver
DA9058 ONKEY driver
DA9058 RTC driver
DA9058 GPIO driver
DA9058 HWMON driver
DA9058 REGULATOR driver

Documentation/hwmon/da9058 | 38 ++
drivers/gpio/Kconfig | 12 +
drivers/gpio/Makefile | 1 +
drivers/gpio/gpio-da9058.c | 377 ++++++++++++++
drivers/hwmon/Kconfig | 10 +
drivers/hwmon/Makefile | 3 +-
drivers/hwmon/da9058-hwmon.c | 341 +++++++++++++
drivers/iio/adc/Kconfig | 14 +
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/da9058-adc.c | 397 +++++++++++++++
drivers/input/misc/Kconfig | 10 +
drivers/input/misc/Makefile | 1 +
drivers/input/misc/da9058_onkey.c | 177 +++++++
drivers/mfd/Kconfig | 18 +
drivers/mfd/Makefile | 3 +
drivers/mfd/da9058-core.c | 74 +++
drivers/mfd/da9058-i2c.c | 97 ++++
drivers/mfd/da9058-info.c | 929 ++++++++++++++++++++++++++++++++++
drivers/mfd/da9058-irq.c | 57 +++
drivers/regulator/Kconfig | 11 +
drivers/regulator/Makefile | 1 +
drivers/regulator/da9058-regulator.c | 228 +++++++++
drivers/rtc/Kconfig | 10 +
drivers/rtc/Makefile | 1 +
drivers/rtc/rtc-da9058.c | 458 +++++++++++++++++
include/linux/mfd/da9058/bat.h | 33 ++
include/linux/mfd/da9058/codec.h | 22 +
include/linux/mfd/da9058/conf.h | 22 +
include/linux/mfd/da9058/core.h | 66 +++
include/linux/mfd/da9058/gpio.h | 19 +
include/linux/mfd/da9058/hwmon.h | 33 ++
include/linux/mfd/da9058/i2c.h | 22 +
include/linux/mfd/da9058/irq.h | 50 ++
include/linux/mfd/da9058/onkey.h | 17 +
include/linux/mfd/da9058/pdata.h | 30 ++
include/linux/mfd/da9058/registers.h | 480 ++++++++++++++++++
include/linux/mfd/da9058/regulator.h | 33 ++
include/linux/mfd/da9058/rtc.h | 17 +
38 files changed, 4112 insertions(+), 1 deletion(-)
create mode 100644 Documentation/hwmon/da9058
create mode 100644 drivers/gpio/gpio-da9058.c
create mode 100644 drivers/hwmon/da9058-hwmon.c
create mode 100644 drivers/iio/adc/da9058-adc.c
create mode 100644 drivers/input/misc/da9058_onkey.c
create mode 100644 drivers/mfd/da9058-core.c
create mode 100644 drivers/mfd/da9058-i2c.c
create mode 100644 drivers/mfd/da9058-info.c
create mode 100644 drivers/mfd/da9058-irq.c
create mode 100644 drivers/regulator/da9058-regulator.c
create mode 100644 drivers/rtc/rtc-da9058.c
create mode 100644 include/linux/mfd/da9058/bat.h
create mode 100644 include/linux/mfd/da9058/codec.h
create mode 100644 include/linux/mfd/da9058/conf.h
create mode 100644 include/linux/mfd/da9058/core.h
create mode 100644 include/linux/mfd/da9058/gpio.h
create mode 100644 include/linux/mfd/da9058/hwmon.h
create mode 100644 include/linux/mfd/da9058/i2c.h
create mode 100644 include/linux/mfd/da9058/irq.h
create mode 100644 include/linux/mfd/da9058/onkey.h
create mode 100644 include/linux/mfd/da9058/pdata.h
create mode 100644 include/linux/mfd/da9058/registers.h
create mode 100644 include/linux/mfd/da9058/regulator.h
create mode 100644 include/linux/mfd/da9058/rtc.h

--
end-of-patch for NEW DRIVER V4


2013-04-12 18:07:36

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [NEW DRIVER V4 0/7] DA9058 PMIC - please comment on this new driver

On Friday, April 12, 2013 02:05:29 PM Anthony Olech wrote:
> This is submission attempt number 4 to have this driver included in
> the linux kernel source tree. This is the driver for the Dialog DA9058.
>
> The DA9058 is a low power Power Management Integrated Circuit with extra
> functionality. It is a Multi Function Device controlled only from an I2C
> bus whose components can raise an interrupt request on a single IRQ line.
>
> The driver for the DA9058 consists of a core (i2c) device driver that
> instantiates the individual component device drivers for:
>
> adc - 5 ADC channels
> gpio - 2 available pins
> onkey - 1 device

I have exactly the same comment as ~6 month ago:

> On Wed, Aug 15, 2012 at 04:05:22PM +0100, Anthony Olech wrote:
> > This is the ONKEY component driver of the Dialog DA9058 PMIC.
> > This driver is just one component of the whole DA9058 PMIC driver.
> > It depends on the CORE component driver of the DA9058 MFD.
> >
> > Signed-off-by: Anthony Olech <[email protected]>
> > Signed-off-by: David Dajun Chen <[email protected]>
>
> This is almost exact copy of da9052_onkey, can they be merged together?
>
> Thanks.

--
Dmitry

Subject: RE: [NEW DRIVER V4 0/7] DA9058 PMIC - please comment on this new driver

> -----Original Message-----
> From: Dmitry Torokhov [mailto:[email protected]]
> Sent: 12 April 2013 19:07
> To: Opensource [Anthony Olech]
> Cc: LKML; Alessandro Zummo
> Subject: Re: [NEW DRIVER V4 0/7] DA9058 PMIC - please comment on this new driver
> On Friday, April 12, 2013 02:05:29 PM Anthony Olech wrote:
> > This is submission attempt number 4 to have this driver included in
> > the linux kernel source tree. This is the driver for the Dialog DA9058.
> > The DA9058 is a low power Power Management Integrated Circuit with
> > extra functionality. It is a Multi Function Device controlled only
> > from an I2C bus whose components can raise an interrupt request on a single IRQ line.
> > The driver for the DA9058 consists of a core (i2c) device driver that
> > instantiates the individual component device drivers for:
> > adc - 5 ADC channels
> > gpio - 2 available pins
> > onkey - 1 device
>
> > This is almost exact copy of da9052_onkey, can they be merged together?
>
> Dmitry

Hi Dmitry,

it does look like the ONKEY component driver of the Dialog DA9058 PMIC is
functionally similar to other onkey drivers. Specifically those drivers that have
to poll for ONKEY de-assertion.

The reason why they are separate is that they are probed with different data
structures and they use a different wrapper to access the "regmap" API.
However, that is not a blocking issue, but it would mean re-writing the core
MFD component of all the affected drivers. Maybe the way forward is:

Is it possible to provide some "core" ONKEY API or functionality to handle the
commonality in a similar fashion to the regulator core as done by Mark Brown?

Tony Olech

2013-04-16 10:20:43

by Mark Brown

[permalink] [raw]
Subject: Re: [NEW DRIVER V4 0/7] DA9058 PMIC - please comment on this new driver

On Tue, Apr 16, 2013 at 09:18:41AM +0000, Opensource [Anthony Olech] wrote:

> The reason why they are separate is that they are probed with different data
> structures and they use a different wrapper to access the "regmap" API.
> However, that is not a blocking issue, but it would mean re-writing the core
> MFD component of all the affected drivers. Maybe the way forward is:

> Is it possible to provide some "core" ONKEY API or functionality to handle the
> commonality in a similar fashion to the regulator core as done by Mark Brown?

Well, it's clearly possible to at least turn the polling and interrupt
combination into a library...


Attachments:
(No filename) (644.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments