]>
Commit | Line | Data |
---|---|---|
a0c7c1d4 MR |
1 | /* |
2 | * Copyright 2012 Creative Product Design | |
3 | * Marc Reilly <[email protected]> | |
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 | ||
10f9edae AS |
16 | #define MC13XXX_NUMREGS 0x3f |
17 | #define MC13XXX_IRQ_REG_CNT 2 | |
18 | #define MC13XXX_IRQ_PER_REG 24 | |
cd0f34b0 UKK |
19 | |
20 | struct mc13xxx; | |
21 | ||
22 | struct mc13xxx_variant { | |
23 | const char *name; | |
24 | void (*print_revision)(struct mc13xxx *mc13xxx, u32 revision); | |
a0c7c1d4 MR |
25 | }; |
26 | ||
cd0f34b0 UKK |
27 | extern struct mc13xxx_variant |
28 | mc13xxx_variant_mc13783, | |
0312e024 UKK |
29 | mc13xxx_variant_mc13892, |
30 | mc13xxx_variant_mc34708; | |
a0c7c1d4 MR |
31 | |
32 | struct mc13xxx { | |
33 | struct regmap *regmap; | |
34 | ||
35 | struct device *dev; | |
cd0f34b0 | 36 | const struct mc13xxx_variant *variant; |
a0c7c1d4 | 37 | |
10f9edae AS |
38 | struct regmap_irq irqs[MC13XXX_IRQ_PER_REG * MC13XXX_IRQ_REG_CNT]; |
39 | struct regmap_irq_chip irq_chip; | |
40 | struct regmap_irq_chip_data *irq_data; | |
41 | ||
a0c7c1d4 MR |
42 | struct mutex lock; |
43 | int irq; | |
44 | int flags; | |
45 | ||
a0c7c1d4 MR |
46 | int adcflags; |
47 | }; | |
48 | ||
db9ef449 AS |
49 | int mc13xxx_common_init(struct device *dev); |
50 | int mc13xxx_common_exit(struct device *dev); | |
a0c7c1d4 MR |
51 | |
52 | #endif /* __DRIVERS_MFD_MC13XXX_H */ |