mfd: Reentrance and revamp ab8500 gpadc fetching interface

This revamps the interface so that AB8500 GPADCs are fetched by
name. Probed GPADCs are added to a list and this list is searched
for a matching GPADC. This makes it possible to have multiple
AB8500 GPADC instances instead of it being a singleton, and
rids the need to keep a GPADC pointer around in the core AB8500
MFD struct.

Currently the match is made to the device name which is by default
numbered from the device instance such as "ab8500-gpadc.0" but
by using the .init_name field of the device a more intiutive
naming for the GPADC blocks can be achieved if desired.

Signed-off-by: Daniel Willerud <daniel.willerud@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Daniel Willerud 2011-03-05 11:46:13 +01:00 committed by Samuel Ortiz
parent cf16943947
commit 6321992cd3
2 changed files with 75 additions and 46 deletions

View file

@ -3,6 +3,7 @@
* Licensed under GPLv2.
*
* Author: Arun R Murthy <arun.murthy@stericsson.com>
* Author: Daniel Willerud <daniel.willerud@stericsson.com>
*/
#ifndef _AB8500_GPADC_H
@ -23,6 +24,9 @@
#define BK_BAT_V 0x0C
#define DIE_TEMP 0x0D
int ab8500_gpadc_convert(u8 input);
struct ab8500_gpadc;
struct ab8500_gpadc *ab8500_gpadc_get(char *name);
int ab8500_gpadc_convert(struct ab8500_gpadc *gpadc, u8 input);
#endif /* _AB8500_GPADC_H */