xref: /linux/drivers/mfd/mc13xxx.h (revision 4413e16d9d21673bb5048a2e542f1aaa00015c2e)
1 /*
2  * Copyright 2012 Creative Product Design
3  * Marc Reilly <marc@cpdesign.com.au>
4  *
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License version 2 as published by the
7  * Free Software Foundation.
8  */
9 #ifndef __DRIVERS_MFD_MC13XXX_H
10 #define __DRIVERS_MFD_MC13XXX_H
11 
12 #include <linux/mutex.h>
13 #include <linux/regmap.h>
14 #include <linux/mfd/mc13xxx.h>
15 
16 enum mc13xxx_id {
17 	MC13XXX_ID_MC13783,
18 	MC13XXX_ID_MC13892,
19 	MC13XXX_ID_INVALID,
20 };
21 
22 #define MC13XXX_NUMREGS 0x3f
23 
24 struct mc13xxx {
25 	struct regmap *regmap;
26 
27 	struct device *dev;
28 	enum mc13xxx_id ictype;
29 
30 	struct mutex lock;
31 	int irq;
32 	int flags;
33 
34 	irq_handler_t irqhandler[MC13XXX_NUM_IRQ];
35 	void *irqdata[MC13XXX_NUM_IRQ];
36 
37 	int adcflags;
38 };
39 
40 int mc13xxx_common_init(struct mc13xxx *mc13xxx,
41 		struct mc13xxx_platform_data *pdata, int irq);
42 
43 void mc13xxx_common_cleanup(struct mc13xxx *mc13xxx);
44 
45 #endif /* __DRIVERS_MFD_MC13XXX_H */
46