[go: nahoru, domu]

History log of /drivers/mfd/mc13xxx-core.c
Revision Date Author Comments
34a4958e4cfe1a379ed18fb3e2d0b93ba08f28d3 08-Sep-2014 Markus Pargmann <mpa@pengutronix.de> mfd: mc13xxx: Configure WDI reset

Setup the PMIC to make a restart when a watchdog interrupt occures.
If this is not configured, the PMIC will shut down the power supply
without a restart.

Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
10f9edaeaa30468194e1dcd0e47e59b012f4cf8b 18-Jun-2014 Alexander Shiyan <shc_work@mail.ru> mfd: mc13xxx: Use regmap irq framework for interrupts

This patch convert mc13xxx MFD driver to use regmap irq framework
for interrupt registration.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
a2ff8459f1f88283935e6bc3fb536820148c7d6a 01-May-2014 Alexander Shiyan <shc_work@mail.ru> mfd: mc13xxx: Do not use platform data with devicetree

This patch removes platform data usage for codec and touchscreen
when driver is used with devicetree.
This fixes possible "null pointer dereference" error if DTS uses
"fsl,mc13xxx-uses-codec" or "fsl,mc13xxx-uses-touch" options.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
48ca9a52c58c088c7492185ef33d0675d6382b5a 16-Apr-2014 Fabio Estevam <fabio.estevam@freescale.com> mfd: mc13xxx-core: Initialize the lock prior to using it

After request_threaded_irq() is called there is a chance that an interrupt
may occur before the 'mc13xxx->lock' is initialized, which will trigger a kernel
oops.

In order to prevent that, move the initialization of 'mc13xxx->lock' prior to
requesting the interrupts.

Suggested-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
780aaeff96819ca58e0cad830bfbe6eee9aef82c 26-Apr-2014 Alexander Shiyan <shc_work@mail.ru> ASoC: mc13783: Add devicetree support

This patch adds devicetree support for mc13783-codec.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
db9ef449aaa550389008c2020fba02e4440ce24b 14-Dec-2013 Alexander Shiyan <shc_work@mail.ru> mfd: mc13xxx: Simplify probe() & remove()

This patch simplifies probe() and remove() functions by moving
some initialisation code out from the I2C/SPI init() and exit()
functions and into the core driver.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
328fe79cac65331cbf22c8eefcb2a1f9164974ac 07-Dec-2013 Alexander Shiyan <shc_work@mail.ru> mfd: mc13xxx: Remove redundant checks

Checking for maximal register is already provided by regmap API,
so remove redundant checks.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
b264a70eef880aff31652a10ffee9c03e949b69b 23-Sep-2013 Mark Brown <broonie@linaro.org> mfd: mc13xxx: Don't require lock for simple register I/O

Since the conversion to regmap there has been no need for device level
locking for I/O as regmap provides locking so remove the locks.

Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
c29c2d4e6ba4f8f5868a4c6dd75a4c23e1993721 23-Sep-2013 Mark Brown <broonie@linaro.org> mfd: mc13xxx: Don't require lock for simple register I/O

Since the conversion to regmap there has been no need for device level
locking for I/O as regmap provides locking so remove the locks.

Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
0312e024d6cde5ef02900c4c6e2f5bb982e24af5 12-Jul-2012 Uwe Kleine-König <u.kleine-koenig@pengutronix.de> mfd: mc13xxx: Add support for mc34708

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Marc Reilly <marc@cpdesign.com.au>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
cd0f34b08f98af72bb2f74fe4bd251558fc734d3 12-Jul-2012 Uwe Kleine-König <u.kleine-koenig@pengutronix.de> mfd: mc13xxx: Change probing details for mc13xxx devices

This removes auto-detection of which variant of mc13xxx is used because
mc34708 uses a different layout in the revision register that doesn't
allow differentiation any more.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Marc Reilly <marc@cpdesign.com.au>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
0cb166e0538b2b2fe746bfa3c82ef6fece9b8888 17-Sep-2012 Andreas Pretzsch <apr@cn-eng.de> mfd: Use devm_* APIs for mc13xxx: remove leftover kfree

commit e7c706b1e5ccf28eaaf76c7a4613e80b0ca52863 migrated the allocation
of struct mc13xxx to devm_* functions, but left a kfree(mc13xxx) in the
mc13xxx_common_init error path. Remove it to prevent memory corruption.

Signed-off-by: Andreas Pretzsch <apr@cn-eng.de>
Reviewed-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
0848c94fb4a5cc213a7fb0fb3a5721ad6e16f096 11-Sep-2012 Mark Brown <broonie@opensource.wolfsonmicro.com> mfd: core: Push irqdomain mapping out into devices

Currently the MFD core supports remapping MFD cell interrupts using an
irqdomain but only if the MFD is being instantiated using device tree
and only if the device tree bindings use the pattern of registering IPs
in the device tree with compatible properties. This will be actively
harmful for drivers which support non-DT platforms and use this pattern
for their DT bindings as it will mean that the core will silently change
remapping behaviour and it is also limiting for drivers which don't do
DT with this particular pattern. There is also a potential fragility if
there are interrupts not associated with MFD cells and all the cells are
omitted from the device tree for some reason.

Instead change the code to take an IRQ domain as an optional argument,
allowing drivers to take the decision about the parent domain for their
interrupts. The one current user of this feature is ab8500-core, it has
the domain lookup pushed out into the driver.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
55692af5eb587f7592d6c2713e1e0eeaab0f6c31 11-Sep-2012 Mark Brown <broonie@opensource.wolfsonmicro.com> mfd: core: Push irqdomain mapping out into devices

Currently the MFD core supports remapping MFD cell interrupts using an
irqdomain but only if the MFD is being instantiated using device tree
and only if the device tree bindings use the pattern of registering IPs
in the device tree with compatible properties. This will be actively
harmful for drivers which support non-DT platforms and use this pattern
for their DT bindings as it will mean that the core will silently change
remapping behaviour and it is also limiting for drivers which don't do
DT with this particular pattern. There is also a potential fragility if
there are interrupts not associated with MFD cells and all the cells are
omitted from the device tree for some reason.

Instead change the code to take an IRQ domain as an optional argument,
allowing drivers to take the decision about the parent domain for their
interrupts. The one current user of this feature is ab8500-core, it has
the domain lookup pushed out into the driver.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
e7c706b1e5ccf28eaaf76c7a4613e80b0ca52863 29-Jun-2012 Axel Lin <axel.lin@gmail.com> mfd: Use devm_* APIs for mc13xxx

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
e3a0871c8f67e228ac227be02f8da580cfa0dc27 15-May-2012 Philippe Rétornaz <philippe.retornaz@epfl.ch> mfd: mc13xxx: add codec platform data

Signed-off-by: Philippe Rétornaz <philippe.retornaz@epfl.ch>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
a0c7c1d48ea9f53c67c79eda498bb8eda1422748 01-Apr-2012 Marc Reilly <marc@cpdesign.com.au> mfd: Move the mc13xxx-core spi specific code into a separate module

All spi specific code is moved into a new module. The mc13xxx struct
moves to a new local include file by necessity.

A new config choice selects the SPI bus type support and by default is
value of SPI_MASTER to remain compatible with existing configs.

Signed-off-by: Marc Reilly <marc@cpdesign.com.au>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
91b5e741184ea9836cd7d7509e4f9b6eefa27df2 01-Apr-2012 Marc Reilly <marc@cpdesign.com.au> mfd: Use regmap for the mc13xxx-core register access

This change converts the mc13xxx core to use regmap rather than direct
spi r/w.
The spidev member of mc13xxx struct becomes redundant and is removed.
Extra debugging aids are added to mc13xxx_reg_rmw.
Mutex init is moved to before regmap init.

Signed-off-by: Marc Reilly <marc@cpdesign.com.au>
Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
5006fe546a4eb0393782b818d4e0e2a6b4fa3803 01-May-2012 Marc Reilly <marc@cpdesign.com.au> mfd: Prepare for separating spi and i2c mc13xxx-core backends

This patch abstracts the bus specific operations from the driver core.
Generic init and cleanup is consolidated into mc13xxx_common_*.
spi specific functions are renamed to reflect such.
(The irq member of the mc13xxx struct is no longer redundant, it's used
to store the irq for cleanup time).

Signed-off-by: Marc Reilly <marc@cpdesign.com.au>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
1039d762d03b573de4d46603c8583051c6d79094 20-Feb-2012 Michael Thalmeier <michael.thalmeier@hale.at> mfd: Add pdata to set mc13783-ts conversion delay

MC13783 can be programmed to wait some clock cycles between the
touchscreen polarization and the resistance conversion. This is
needed to adjust for touchscreens with high capacitance between
plates.

Signed-off-by: Michael Thalmeier <michael.thalmeier@hale.at>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
876989d58658858f27a461f0b4b43fa750a208f4 12-Dec-2011 Shawn Guo <shawn.guo@linaro.org> mfd: Add device tree probe support for mc13xxx

This adds device tree probe support for mc13xxx mfd driver.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2161891a0a7bcad6ee8819bb324ee4a031bc8a95 29-Nov-2011 Robin van der Gracht <robin@protonic.nl> mfd: Fixed unconditional reset of the mc13xxx ADC reading enable bits

When the ADC is being prepared for a single or multiple channel reading,
the adc0 register is reconfigured without taking the lithium cell, charge
current and battery current reading enable bits into account. Which results
in clearing the bits.

Signed-off-by: Robin van der Gracht <robin@protonic.nl>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
f78d29f166f347154909c33ca527c50ba65c95f7 24-Nov-2011 Lars-Peter Clausen <lars@metafoo.de> mfd: Remove redundant spi driver bus initialization

In ancient times it was necessary to manually initialize the bus field of an
spi_driver to spi_bus_type. These days this is done in spi_driver_register(),
so we can drop the manual assignment.

The patch was generated using the following coccinelle semantic patch:
// <smpl>
@@
identifier _driver;
@@
struct spi_driver _driver = {
.driver = {
- .bus = &spi_bus_type,
},
};
// </smpl>

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
bb3149a93be1703ddc77ba34633df731bda5f269 23-Sep-2011 Uwe Kleine-König <u.kleine-koenig@pengutronix.de> mfd: Fix a sparse warning about mc13xxx_chipname not being declared

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
30fc7ac3f62945a714d9842edae313a757efb49d 18-Sep-2011 Philippe Rétornaz <philippe.retornaz@epfl.ch> input: Add power button support for mc13783

This adds support for the power-on buttons of MC13783 PMIC.

Signed-off-by: Philippe Rétornaz <philippe.retornaz@epfl.ch>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
f20a5ea8e3aa8cb5cfe74bd8705dbb609a24783c 22-Jul-2011 Philippe Rétornaz <philippe.retornaz@epfl.ch> mfd: Implicitly register mc13xxx led subdevice

A led subdevice is registered now iff the corresponding platform data is
available. Without platform data the device isn't usable so this is a
sound check.

Signed-off-by: Philippe Rétornaz <philippe.retornaz@epfl.ch>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
4a2a734306a6e3cc7766d2117ec142de9262f217 22-Jul-2011 Philippe Rétornaz <philippe.retornaz@epfl.ch> mfd: Unconditionally register mc13xxx regulator subdevice

Signed-off-by: Philippe Rétornaz <philippe.retornaz@epfl.ch>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
b46880e57b4c513adeb2608c3700b352860b5662 24-Aug-2011 Uwe Kleine-König <u.kleine-koenig@pengutronix.de> mfd: Remove mc13783 API functions and symbols

Now that all in-tree users are fixed to use the more general mc13xxx API
the obsolete stuff can go away.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
fec316d63219f610e5385f5e54e6c3ea459e58e9 24-Aug-2011 Uwe Kleine-König <u.kleine-koenig@pengutronix.de> mfd: Provide a generic version of mc13xxx adc_do_conversion

This is needed to convert the touch driver away from using struct mc13783.

Note this patch drops MC13783_ADC0_ADREFMODE. This is unused and doesn't
exist on mc13892.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
c8a03c96b61bd03a3603bfe5381848c0b40e99be 08-Apr-2011 Samuel Ortiz <sameo@linux.intel.com> mfd: Use mfd cell platform_data for mc13xxx cells platform bits

With the addition of a platform device mfd_cell pointer, MFD drivers
can go back to passing platform data back to their sub drivers.
This allows for an mfd_cell->mfd_data removal and thus keep the
sub drivers MFD agnostic. This is mostly needed for non MFD aware
sub drivers.

Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
6991ec255af960e1349a21ec2782ea67408b7eb6 28-Feb-2011 Axel Lin <axel.lin@gmail.com> mfd: Add MODULE_DEVICE_TABLE to mc13xxx-core

The device table is required to load modules based on modaliases.
After adding the MODULE_DEVICE_TABLE, below entries will be added to
modules.alias:
alias spi:mc13892 mc13xxx_core
alias spi:mc13783 mc13xxx_core

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
65e523595a31813c0f20ffd249792c60e253438e 18-Feb-2011 Andres Salomon <dilinger@queued.net> mfd: Rename platform_data field of mfd_cell to mfd_data

Rename the platform_data variable to imply a distinction between
common platform_data driver usage (typically accessed via
pdev->dev.platform_data) and the way MFD passes data down to
clients (using a wrapper named mfd_get_data).

All clients have already been changed to use the wrapper function,
so this can be a quick single-commit change that only touches things
in drivers/mfd.

Signed-off-by: Andres Salomon <dilinger@queued.net>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
4ec1b54c4d082d4bad19b55ca709da7e7138d542 18-Feb-2011 Andres Salomon <dilinger@queued.net> mfd: mfd_cell is now implicitly available to mc13xxx drivers

The cell's platform_data is now accessed with a helper function;
change clients to use that, and remove the now-unused data_size.

Note that mfd-core no longer makes a copy of platform_data, but the
mc13xxx-core driver creates the pdata structures on the stack. In
order to get around that, the various ARM mach types that set the
pdata have been changed to hold the variable in static (global) memory.
Also note that __initdata references in aforementioned pdata structs
have been dropped.

Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
e1b88eb0e08335d2f6c00b35b67b4ffc78fd46d6 11-Nov-2010 Uwe Kleine-König <u.kleine-koenig@pengutronix.de> mfd: Don't open-code mc13xxx_unlock

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
cef92fe63836dcc63db6ccfbea0a6d9255f491a9 22-Oct-2010 Axel Lin <axel.lin@gmail.com> mfd: Fix a memory leak when unload mc13xxx-core module

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
00969f23dae70f62d7ce3f7abbbfb6d09ef92739 19-Oct-2010 Samuel Ortiz <sameo@linux.intel.com> mfd: Remove DEBUG defines from mc13xxx-core

DEBUG and VERBOSE_DEBUG are not used.

Reported-by: David Jander <david@protonic.nl>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
8e00593557c3c5a7bc6f636412a1cadcf4624232 28-Sep-2010 Uwe Kleine-König <u.kleine-koenig@pengutronix.de> mfd: Add mc13892 support to mc13xxx

mc13892 is the companion PMIC for Freescale's i.MX51. It's similar enough
to mc13782 to support it in a single driver.

This patch introduces enough compatibility cruft to keep all users of the
superseded mc13783 driver unchanged.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>