diff --git a/drivers/misc/awinic/aw8695/aw8695.c b/drivers/misc/awinic/aw8695/aw8695.c index 81017c725bed..3839c2f43e82 100644 --- a/drivers/misc/awinic/aw8695/aw8695.c +++ b/drivers/misc/awinic/aw8695/aw8695.c @@ -3485,14 +3485,19 @@ static int aw8695_read_chipid(struct aw8695 *aw8695) dev_err(aw8695->dev, "%s: failed to read register AW8695_REG_ID: %d\n", __func__, ret); } switch (reg) { - case AW8695_CHIPID: + case AW8695_CHIPID1: pr_info("%s aw8695 detected\n", __func__); - aw8695->chipid = AW8695_CHIPID; + aw8695->chipid = AW8695_CHIPID1; /* *aw8695->flags |= AW8695_FLAG_SKIP_INTERRUPTS; */ aw8695_haptic_softreset(aw8695); return 0; + case AW8695_CHIPID2: + pr_info("%s aw8697 detected\n", __func__); + aw8695->chipid = AW8695_CHIPID2; + aw8695_haptic_softreset(aw8695); + return 0; default: pr_info("%s unsupported device revision (0x%x)\n", __func__, reg); break; diff --git a/drivers/misc/awinic/aw8695/aw8695_config.h b/drivers/misc/awinic/aw8695/aw8695_config.h index 0c1f2787f058..84778028d356 100644 --- a/drivers/misc/awinic/aw8695/aw8695_config.h +++ b/drivers/misc/awinic/aw8695/aw8695_config.h @@ -1,7 +1,8 @@ #ifndef __AW8695_CONFIG_H__ #define __AW8695_CONFIG_H__ -#define AW8695_CHIPID 0x95 +#define AW8695_CHIPID1 0x95 +#define AW8695_CHIPID2 0x97 #define AW8695_BSTCFG_PEAKCUR_LIMIT 0x03 #define AW8695_DEFAULT_PEAKCUR AW8695_BIT_BSTCFG_PEAKCUR_2A