#include <linux/device.h>
#include <linux/err.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/i2c.h>
#include <linux/irq.h>
#include <linux/irqdomain.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#include <linux/mfd/core.h>
#include <linux/mfd/tps65217.h>
static const struct resource charger_resources[] = …;
static const struct resource pb_resources[] = …;
static void tps65217_irq_lock(struct irq_data *data)
{ … }
static void tps65217_irq_sync_unlock(struct irq_data *data)
{ … }
static void tps65217_irq_enable(struct irq_data *data)
{ … }
static void tps65217_irq_disable(struct irq_data *data)
{ … }
static struct irq_chip tps65217_irq_chip = …;
static struct mfd_cell tps65217s[] = …;
static irqreturn_t tps65217_irq_thread(int irq, void *data)
{ … }
static int tps65217_irq_map(struct irq_domain *h, unsigned int virq,
irq_hw_number_t hw)
{ … }
static const struct irq_domain_ops tps65217_irq_domain_ops = …;
static int tps65217_irq_init(struct tps65217 *tps, int irq)
{ … }
int tps65217_reg_read(struct tps65217 *tps, unsigned int reg,
unsigned int *val)
{ … }
EXPORT_SYMBOL_GPL(…);
int tps65217_reg_write(struct tps65217 *tps, unsigned int reg,
unsigned int val, unsigned int level)
{ … }
EXPORT_SYMBOL_GPL(…);
static int tps65217_update_bits(struct tps65217 *tps, unsigned int reg,
unsigned int mask, unsigned int val, unsigned int level)
{ … }
int tps65217_set_bits(struct tps65217 *tps, unsigned int reg,
unsigned int mask, unsigned int val, unsigned int level)
{ … }
EXPORT_SYMBOL_GPL(…);
int tps65217_clear_bits(struct tps65217 *tps, unsigned int reg,
unsigned int mask, unsigned int level)
{ … }
EXPORT_SYMBOL_GPL(…);
static bool tps65217_volatile_reg(struct device *dev, unsigned int reg)
{ … }
static const struct regmap_config tps65217_regmap_config = …;
static const struct of_device_id tps65217_of_match[] = …;
MODULE_DEVICE_TABLE(of, tps65217_of_match);
static int tps65217_probe(struct i2c_client *client)
{ … }
static void tps65217_remove(struct i2c_client *client)
{ … }
static const struct i2c_device_id tps65217_id_table[] = …;
MODULE_DEVICE_TABLE(i2c, tps65217_id_table);
static struct i2c_driver tps65217_driver = …;
static int __init tps65217_init(void)
{ … }
subsys_initcall(tps65217_init);
static void __exit tps65217_exit(void)
{ … }
module_exit(tps65217_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;