]>
Commit | Line | Data |
---|---|---|
d2912cb1 | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
a0c7c1d4 MR |
2 | /* |
3 | * Copyright 2012 Creative Product Design | |
4 | * Marc Reilly <[email protected]> | |
a0c7c1d4 MR |
5 | */ |
6 | #ifndef __DRIVERS_MFD_MC13XXX_H | |
7 | #define __DRIVERS_MFD_MC13XXX_H | |
8 | ||
9 | #include <linux/mutex.h> | |
10 | #include <linux/regmap.h> | |
11 | #include <linux/mfd/mc13xxx.h> | |
12 | ||
10f9edae AS |
13 | #define MC13XXX_NUMREGS 0x3f |
14 | #define MC13XXX_IRQ_REG_CNT 2 | |
15 | #define MC13XXX_IRQ_PER_REG 24 | |
cd0f34b0 UKK |
16 | |
17 | struct mc13xxx; | |
18 | ||
19 | struct mc13xxx_variant { | |
20 | const char *name; | |
21 | void (*print_revision)(struct mc13xxx *mc13xxx, u32 revision); | |
a0c7c1d4 MR |
22 | }; |
23 | ||
cd0f34b0 UKK |
24 | extern struct mc13xxx_variant |
25 | mc13xxx_variant_mc13783, | |
0312e024 UKK |
26 | mc13xxx_variant_mc13892, |
27 | mc13xxx_variant_mc34708; | |
a0c7c1d4 MR |
28 | |
29 | struct mc13xxx { | |
30 | struct regmap *regmap; | |
31 | ||
32 | struct device *dev; | |
cd0f34b0 | 33 | const struct mc13xxx_variant *variant; |
a0c7c1d4 | 34 | |
10f9edae AS |
35 | struct regmap_irq irqs[MC13XXX_IRQ_PER_REG * MC13XXX_IRQ_REG_CNT]; |
36 | struct regmap_irq_chip irq_chip; | |
37 | struct regmap_irq_chip_data *irq_data; | |
38 | ||
a0c7c1d4 MR |
39 | struct mutex lock; |
40 | int irq; | |
41 | int flags; | |
42 | ||
a0c7c1d4 MR |
43 | int adcflags; |
44 | }; | |
45 | ||
db9ef449 | 46 | int mc13xxx_common_init(struct device *dev); |
c39cf60f | 47 | void mc13xxx_common_exit(struct device *dev); |
a0c7c1d4 MR |
48 | |
49 | #endif /* __DRIVERS_MFD_MC13XXX_H */ |