ASOC: codecs: clear the interrupt ack registers for wcd937x

Clear the wcd937x interrupt ack registers in post_irq_handler.
This is needed for wcd937x, as regmap_irq is not clearing
the ack registers after the ack bits are set.

Change-Id: I105a4b423a0d01ff1bd3239e0f2d42294557ff10
Signed-off-by: Vangala, Amarnath <quic_avangala@quicinc.com>
This commit is contained in:
Vangala, Amarnath
2021-12-10 21:16:08 +05:30
committed by Gerrit - the friendly Code Review server
부모 c2adcdf8a0
커밋 6dbdc5bea3

파일 보기

@@ -142,6 +142,11 @@ static int wcd937x_handle_post_irq(void *data)
struct wcd937x_priv *wcd937x = data;
u32 status1 = 0, status2 = 0, status3 = 0;
/* Clear the ACK registers. Temporary workaround.*/
regmap_write(wcd937x->regmap, WCD937X_DIGITAL_INTR_CLEAR_0, 0x0);
regmap_write(wcd937x->regmap, WCD937X_DIGITAL_INTR_CLEAR_1, 0x0);
regmap_write(wcd937x->regmap, WCD937X_DIGITAL_INTR_CLEAR_2, 0x0);
regmap_read(wcd937x->regmap, WCD937X_DIGITAL_INTR_STATUS_0, &status1);
regmap_read(wcd937x->regmap, WCD937X_DIGITAL_INTR_STATUS_1, &status2);
regmap_read(wcd937x->regmap, WCD937X_DIGITAL_INTR_STATUS_2, &status3);