From 71c5a52addbe58ff1de6c1ab1f8b53ac7dd8b72b Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Sun, 29 Sep 2013 21:01:59 +0200 Subject: imx233: fix power irq storm When bootloader is too intelligent, like on Creative devices, it might leave some unexpected IRQs sources on, this is problematic when those sources share the same IRQ line. Change-Id: Ie9333918eb1048b1f2de4ea738cddf556aa75ee2 --- firmware/target/arm/imx233/power-imx233.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/firmware/target/arm/imx233/power-imx233.c b/firmware/target/arm/imx233/power-imx233.c index fa2f8488cf..dbecce5c77 100644 --- a/firmware/target/arm/imx233/power-imx233.c +++ b/firmware/target/arm/imx233/power-imx233.c @@ -120,6 +120,26 @@ void INT_VDD5V(void) BF_CLR(POWER_CTRL, VDD5V_GT_VDDIO_IRQ); } #endif +#if IMX233_SUBTARGET >= 3700 + /* this IRQ is shared by several sources, disable them */ + if(BF_RD(POWER_CTRL, PSWITCH_IRQ)) + { + BF_CLR(POWER_CTRL, ENIRQ_PSWITCH); + BF_CLR(POWER_CTRL, PSWITCH_IRQ); + } +#if IMX233_SUBTARGET < 3780 + if(BF_RD(POWER_CTRL, LINREG_OK_IRQ)) + { + BF_CLR(POWER_CTRL, ENIRQ_LINREG_OK); + BF_CLR(POWER_CTRL, LINREG_OK_IRQ); + } +#endif /* IMX233_SUBTARGET < 3780 */ + if(BF_RD(POWER_CTRL, DC_OK_IRQ)) + { + BF_CLR(POWER_CTRL, ENIRQ_DC_OK); + BF_CLR(POWER_CTRL, DC_OK_IRQ); + } +#endif /* IMX233_SUBTARGET >= 3700 */ } void imx233_power_init(void) -- cgit v1.2.3