1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /*
- * Copyright 2012 Creative Product Design
- * Marc Reilly <marc@cpdesign.com.au>
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License version 2 as published by the
- * Free Software Foundation.
- */
- #ifndef __DRIVERS_MFD_MC13XXX_H
- #define __DRIVERS_MFD_MC13XXX_H
- #include <linux/mutex.h>
- #include <linux/regmap.h>
- #include <linux/mfd/mc13xxx.h>
- #define MC13XXX_NUMREGS 0x3f
- #define MC13XXX_IRQ_REG_CNT 2
- #define MC13XXX_IRQ_PER_REG 24
- struct mc13xxx;
- struct mc13xxx_variant {
- const char *name;
- void (*print_revision)(struct mc13xxx *mc13xxx, u32 revision);
- };
- extern struct mc13xxx_variant
- mc13xxx_variant_mc13783,
- mc13xxx_variant_mc13892,
- mc13xxx_variant_mc34708;
- struct mc13xxx {
- struct regmap *regmap;
- struct device *dev;
- const struct mc13xxx_variant *variant;
- struct regmap_irq irqs[MC13XXX_IRQ_PER_REG * MC13XXX_IRQ_REG_CNT];
- struct regmap_irq_chip irq_chip;
- struct regmap_irq_chip_data *irq_data;
- struct mutex lock;
- int irq;
- int flags;
- int adcflags;
- };
- int mc13xxx_common_init(struct device *dev);
- int mc13xxx_common_exit(struct device *dev);
- #endif /* __DRIVERS_MFD_MC13XXX_H */
|