On Thu, Sep 26, 2024 at 01:20:21PM +0300, Dzmitry Sankouski wrote: > Add support for haptic controller on MAX77705 Multifunction > device. > > This driver supports external pwm and LRA (Linear Resonant Actuator) motor. > User can control the haptic device via force feedback framework. > > Signed-off-by: Dzmitry Sankouski <dsankouski@xxxxxxxxx> Acked-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > > --- > Changes in v4: > - add max77705 haptic support to max77693 driver > - delete max77705-haptic > --- > drivers/input/misc/Kconfig | 4 ++-- > drivers/input/misc/Makefile | 1 + > drivers/input/misc/max77693-haptic.c | 15 ++++++++++++++- > 3 files changed, 17 insertions(+), 3 deletions(-) > > diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig > index 6a852c76331b..b4515c4e5cf6 100644 > --- a/drivers/input/misc/Kconfig > +++ b/drivers/input/misc/Kconfig > @@ -241,11 +241,11 @@ config INPUT_MAX77650_ONKEY > > config INPUT_MAX77693_HAPTIC > tristate "MAXIM MAX77693/MAX77843 haptic controller support" > - depends on (MFD_MAX77693 || MFD_MAX77843) && PWM > + depends on (MFD_MAX77693 || MFD_MAX77705 || MFD_MAX77843) && PWM > select INPUT_FF_MEMLESS > help > This option enables support for the haptic controller on > - MAXIM MAX77693 and MAX77843 chips. > + MAXIM MAX77693, MAX77705 and MAX77843 chips. > > To compile this driver as module, choose M here: the > module will be called max77693-haptic. > diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile > index 4f7f736831ba..3e3532b27990 100644 > --- a/drivers/input/misc/Makefile > +++ b/drivers/input/misc/Makefile > @@ -53,6 +53,7 @@ obj-$(CONFIG_INPUT_KXTJ9) += kxtj9.o > obj-$(CONFIG_INPUT_M68K_BEEP) += m68kspkr.o > obj-$(CONFIG_INPUT_MAX77650_ONKEY) += max77650-onkey.o > obj-$(CONFIG_INPUT_MAX77693_HAPTIC) += max77693-haptic.o > +obj-$(CONFIG_INPUT_MAX77705_HAPTIC) += max77705-haptic.o > obj-$(CONFIG_INPUT_MAX8925_ONKEY) += max8925_onkey.o > obj-$(CONFIG_INPUT_MAX8997_HAPTIC) += max8997_haptic.o > obj-$(CONFIG_INPUT_MC13783_PWRBUTTON) += mc13783-pwrbutton.o > diff --git a/drivers/input/misc/max77693-haptic.c b/drivers/input/misc/max77693-haptic.c > index 0e646f1b257b..c3b9d33608d7 100644 > --- a/drivers/input/misc/max77693-haptic.c > +++ b/drivers/input/misc/max77693-haptic.c > @@ -23,6 +23,7 @@ > #include <linux/mfd/max77693.h> > #include <linux/mfd/max77693-common.h> > #include <linux/mfd/max77693-private.h> > +#include <linux/mfd/max77705-private.h> > #include <linux/mfd/max77843-private.h> > > #define MAX_MAGNITUDE_SHIFT 16 > @@ -115,6 +116,13 @@ static int max77693_haptic_configure(struct max77693_haptic *haptic, > MAX77693_HAPTIC_PWM_DIVISOR_128); > config_reg = MAX77693_HAPTIC_REG_CONFIG2; > break; > + case TYPE_MAX77705: > + value = ((haptic->type << MAX77693_CONFIG2_MODE) | > + (enable << MAX77693_CONFIG2_MEN) | > + (haptic->mode << MAX77693_CONFIG2_HTYP) | > + MAX77693_HAPTIC_PWM_DIVISOR_128); > + config_reg = MAX77705_PMIC_REG_MCONFIG; > + break; > case TYPE_MAX77843: > value = (haptic->type << MCONFIG_MODE_SHIFT) | > (enable << MCONFIG_MEN_SHIFT) | > @@ -312,6 +320,9 @@ static int max77693_haptic_probe(struct platform_device *pdev) > case TYPE_MAX77693: > haptic->regmap_haptic = max77693->regmap_haptic; > break; > + case TYPE_MAX77705: > + haptic->regmap_haptic = max77693->regmap; > + break; > case TYPE_MAX77843: > haptic->regmap_haptic = max77693->regmap; > break; > @@ -407,6 +418,7 @@ static DEFINE_SIMPLE_DEV_PM_OPS(max77693_haptic_pm_ops, > > static const struct platform_device_id max77693_haptic_id[] = { > { "max77693-haptic", }, > + { "max77705-haptic", }, > { "max77843-haptic", }, > {}, > }; > @@ -414,6 +426,7 @@ MODULE_DEVICE_TABLE(platform, max77693_haptic_id); > > static const struct of_device_id of_max77693_haptic_dt_match[] = { > { .compatible = "maxim,max77693-haptic", }, > + { .compatible = "maxim,max77705-haptic", }, > { .compatible = "maxim,max77843-haptic", }, > { /* sentinel */ }, > }; > @@ -432,5 +445,5 @@ module_platform_driver(max77693_haptic_driver); > > MODULE_AUTHOR("Jaewon Kim <jaewon02.kim@xxxxxxxxxxx>"); > MODULE_AUTHOR("Krzysztof Kozlowski <krzk@xxxxxxxxxx>"); > -MODULE_DESCRIPTION("MAXIM 77693/77843 Haptic driver"); > +MODULE_DESCRIPTION("MAXIM 77693/77705/77843 Haptic driver"); > MODULE_LICENSE("GPL"); > > -- > 2.39.2 > -- Dmitry