#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/regmap.h>
#include <linux/err.h>
#include <linux/mfd/core.h>
#include <linux/mfd/palmas.h>
#include <linux/of.h>
#include <linux/of_platform.h>
static const struct regmap_config palmas_regmap_config[PALMAS_NUM_CLIENTS] = …;
static const struct regmap_irq tps65917_irqs[] = …;
static const struct regmap_irq palmas_irqs[] = …;
static const struct regmap_irq_chip palmas_irq_chip = …;
static const struct regmap_irq_chip tps65917_irq_chip = …;
int palmas_ext_control_req_config(struct palmas *palmas,
enum palmas_external_requestor_id id, int ext_ctrl, bool enable)
{ … }
EXPORT_SYMBOL_GPL(…);
static int palmas_set_pdata_irq_flag(struct i2c_client *i2c,
struct palmas_platform_data *pdata)
{ … }
static void palmas_dt_to_pdata(struct i2c_client *i2c,
struct palmas_platform_data *pdata)
{ … }
static struct palmas *palmas_dev;
static void palmas_power_off(void)
{ … }
struct palmas_driver_data { … };
static const struct palmas_driver_data palmas_data = …;
static const struct palmas_driver_data tps659038_data = …;
static const struct palmas_driver_data tps65917_data = …;
static int palmas_i2c_probe(struct i2c_client *i2c)
{ … }
static void palmas_i2c_remove(struct i2c_client *i2c)
{ … }
static const struct of_device_id of_palmas_match_tbl[] = …;
MODULE_DEVICE_TABLE(of, of_palmas_match_tbl);
static const struct i2c_device_id palmas_i2c_id[] = …;
MODULE_DEVICE_TABLE(i2c, palmas_i2c_id);
static struct i2c_driver palmas_i2c_driver = …;
static int __init palmas_i2c_init(void)
{ … }
subsys_initcall(palmas_i2c_init);
static void __exit palmas_i2c_exit(void)
{ … }
module_exit(palmas_i2c_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;