diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2013-09-29 21:01:59 +0200 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2013-10-21 01:23:14 +0200 |
commit | 71c5a52addbe58ff1de6c1ab1f8b53ac7dd8b72b (patch) | |
tree | 49a984274fd99714ce6e45ea3e2121877a22951f | |
parent | 898b760e59c19425152050829664f2c915c9f667 (diff) | |
download | rockbox-71c5a52.tar.gz rockbox-71c5a52.zip |
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
-rw-r--r-- | firmware/target/arm/imx233/power-imx233.c | 20 |
1 files changed, 20 insertions, 0 deletions
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) |