50 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright 2012 Creative Product Design4 * Marc Reilly <marc@cpdesign.com.au>5 */6#ifndef __DRIVERS_MFD_MC13XXX_H7#define __DRIVERS_MFD_MC13XXX_H8 9#include <linux/mutex.h>10#include <linux/regmap.h>11#include <linux/mfd/mc13xxx.h>12 13#define MC13XXX_NUMREGS 0x3f14#define MC13XXX_IRQ_REG_CNT 215#define MC13XXX_IRQ_PER_REG 2416 17struct mc13xxx;18 19struct mc13xxx_variant {20 const char *name;21 void (*print_revision)(struct mc13xxx *mc13xxx, u32 revision);22};23 24extern struct mc13xxx_variant25 mc13xxx_variant_mc13783,26 mc13xxx_variant_mc13892,27 mc13xxx_variant_mc34708;28 29struct mc13xxx {30 struct regmap *regmap;31 32 struct device *dev;33 const struct mc13xxx_variant *variant;34 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 39 struct mutex lock;40 int irq;41 int flags;42 43 int adcflags;44};45 46int mc13xxx_common_init(struct device *dev);47void mc13xxx_common_exit(struct device *dev);48 49#endif /* __DRIVERS_MFD_MC13XXX_H */50