#include <linux/err.h>
#include <linux/init.h>
#include <linux/i2c.h>
#include <linux/regmap.h>
#include <linux/input.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pwm.h>
#include <linux/slab.h>
#include <linux/workqueue.h>
#include <linux/regulator/consumer.h>
#include <linux/mfd/max77693.h>
#include <linux/mfd/max77693-common.h>
#include <linux/mfd/max77693-private.h>
#include <linux/mfd/max77843-private.h>
#define MAX_MAGNITUDE_SHIFT …
enum max77693_haptic_motor_type { … };
enum max77693_haptic_pulse_mode { … };
enum max77693_haptic_pwm_divisor { … };
struct max77693_haptic { … };
static int max77693_haptic_set_duty_cycle(struct max77693_haptic *haptic)
{ … }
static int max77843_haptic_bias(struct max77693_haptic *haptic, bool on)
{ … }
static int max77693_haptic_configure(struct max77693_haptic *haptic,
bool enable)
{ … }
static int max77693_haptic_lowsys(struct max77693_haptic *haptic, bool enable)
{ … }
static void max77693_haptic_enable(struct max77693_haptic *haptic)
{ … }
static void max77693_haptic_disable(struct max77693_haptic *haptic)
{ … }
static void max77693_haptic_play_work(struct work_struct *work)
{ … }
static int max77693_haptic_play_effect(struct input_dev *dev, void *data,
struct ff_effect *effect)
{ … }
static int max77693_haptic_open(struct input_dev *dev)
{ … }
static void max77693_haptic_close(struct input_dev *dev)
{ … }
static int max77693_haptic_probe(struct platform_device *pdev)
{ … }
static int max77693_haptic_suspend(struct device *dev)
{ … }
static int max77693_haptic_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(max77693_haptic_pm_ops,
max77693_haptic_suspend,
max77693_haptic_resume);
static const struct platform_device_id max77693_haptic_id[] = …;
MODULE_DEVICE_TABLE(platform, max77693_haptic_id);
static const struct of_device_id of_max77693_haptic_dt_match[] = …;
MODULE_DEVICE_TABLE(of, of_max77693_haptic_dt_match);
static struct platform_driver max77693_haptic_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;