@@ -733,6 +733,22 @@ static void config_digital_init_by_mode(struct mt6359_accdet *priv)
BIT(ACCDET_EINT1_INVERTER_SW_EN_SFT));
}
}
+
+ if (priv->data->eint_pol == IRQ_TYPE_LEVEL_LOW) {
+ /* EINT polarity normal */
+ regmap_update_bits(priv->regmap,
+ ACCDET_EINT_IN_INVERSE_ADDR,
+ ACCDET_EINT_IN_INVERSE_MASK_SFT,
+ 0);
+ } else if (priv->data->eint_pol == IRQ_TYPE_LEVEL_HIGH) {
+ /* EINT polarity inverse */
+ regmap_update_bits(priv->regmap,
+ ACCDET_EINT_IN_INVERSE_ADDR,
+ ACCDET_EINT_IN_INVERSE_MASK_SFT,
+ BIT(ACCDET_EINT_IN_INVERSE_SFT));
+ } else {
+ dev_warn(priv->dev, "Unacceptable EINT level type, using default\n");
+ }
}
static void config_eint_init_by_mode(struct mt6359_accdet *priv)