summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-09-18 13:03:31 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-09-18 13:17:19 +0200
commitb4c1bb021489412f6156bf859002f11052c8d0a9 (patch)
tree2f7f2b15e0efece92c76e9c1a84bdfcb81c5d3c3 /firmware
parent27433076e9db3d47556a346a589bace52977f864 (diff)
downloadrockbox-b4c1bb021489412f6156bf859002f11052c8d0a9.zip
rockbox-b4c1bb021489412f6156bf859002f11052c8d0a9.tar.gz
rockbox-b4c1bb021489412f6156bf859002f11052c8d0a9.tar.bz2
rockbox-b4c1bb021489412f6156bf859002f11052c8d0a9.tar.xz
imx233: fix block reset code
Change-Id: I5fbc76315a651c91b278e1c7dc6cb49b7e00d9ad
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/imx233/system-imx233.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/system-imx233.c b/firmware/target/arm/imx233/system-imx233.c
index fd9ddf0..3f751a8 100644
--- a/firmware/target/arm/imx233/system-imx233.c
+++ b/firmware/target/arm/imx233/system-imx233.c
@@ -158,6 +158,11 @@ bool imx233_us_elapsed(uint32_t ref, unsigned us_delay)
void imx233_reset_block(volatile uint32_t *block_reg)
{
+ /* deassert reset and clock gate */
+ __REG_CLR(*block_reg) = __BLOCK_SFTRST;
+ while(*block_reg & __BLOCK_SFTRST);
+ __REG_CLR(*block_reg) = __BLOCK_CLKGATE;
+ while(*block_reg & __BLOCK_CLKGATE);
/* soft-reset */
__REG_SET(*block_reg) = __BLOCK_SFTRST;
/* make sure block is gated off */