aboutsummaryrefslogtreecommitdiff
path: root/drivers/video/ipu_common.c
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2012-11-19 09:28:04 -0700
committerTom Rini <trini@ti.com>2012-11-19 09:28:04 -0700
commit178d0cc1a4c73c3341afbeb2a93b172de8c96bd1 (patch)
treef4ccb38889b6ae9d2092b8ce43b8f6d422c900cb /drivers/video/ipu_common.c
parentbb367b95f9204115bd6eac82e839b5590e6da4eb (diff)
parent30ea4be921634de193236355f76e7870f1a3cb89 (diff)
Merge branch 'master' of git://git.denx.de/u-boot-video
Diffstat (limited to 'drivers/video/ipu_common.c')
-rw-r--r--drivers/video/ipu_common.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c
index 0f2d113a6f..ad4af5283a 100644
--- a/drivers/video/ipu_common.c
+++ b/drivers/video/ipu_common.c
@@ -94,6 +94,7 @@ struct ipu_ch_param {
temp1; \
})
+#define IPU_SW_RST_TOUT_USEC (10000)
void clk_enable(struct clk *clk)
{
@@ -398,11 +399,20 @@ void ipu_reset(void)
{
u32 *reg;
u32 value;
+ int timeout = IPU_SW_RST_TOUT_USEC;
reg = (u32 *)SRC_BASE_ADDR;
value = __raw_readl(reg);
value = value | SW_IPU_RST;
__raw_writel(value, reg);
+
+ while (__raw_readl(reg) & SW_IPU_RST) {
+ udelay(1);
+ if (!(timeout--)) {
+ printf("ipu software reset timeout\n");
+ break;
+ }
+ };
}
/*