summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-09-29 21:01:59 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-10-21 01:23:14 +0200
commit71c5a52addbe58ff1de6c1ab1f8b53ac7dd8b72b (patch)
tree49a984274fd99714ce6e45ea3e2121877a22951f
parent898b760e59c19425152050829664f2c915c9f667 (diff)
downloadrockbox-71c5a52addbe58ff1de6c1ab1f8b53ac7dd8b72b.zip
rockbox-71c5a52addbe58ff1de6c1ab1f8b53ac7dd8b72b.tar.gz
rockbox-71c5a52addbe58ff1de6c1ab1f8b53ac7dd8b72b.tar.bz2
rockbox-71c5a52addbe58ff1de6c1ab1f8b53ac7dd8b72b.tar.xz
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.c20
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 fa2f848..dbecce5 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)