Root/
1 | /* |
2 | * OMAP4 CM module functions |
3 | * |
4 | * Copyright (C) 2009 Nokia Corporation |
5 | * Paul Walmsley |
6 | * |
7 | * This program is free software; you can redistribute it and/or modify |
8 | * it under the terms of the GNU General Public License version 2 as |
9 | * published by the Free Software Foundation. |
10 | */ |
11 | |
12 | #include <linux/kernel.h> |
13 | #include <linux/module.h> |
14 | #include <linux/types.h> |
15 | #include <linux/delay.h> |
16 | #include <linux/spinlock.h> |
17 | #include <linux/list.h> |
18 | #include <linux/errno.h> |
19 | #include <linux/err.h> |
20 | #include <linux/io.h> |
21 | |
22 | #include <asm/atomic.h> |
23 | |
24 | #include <plat/common.h> |
25 | |
26 | #include "cm.h" |
27 | #include "cm-regbits-44xx.h" |
28 | |
29 | /** |
30 | * omap4_cm_wait_module_ready - wait for a module to be in 'func' state |
31 | * @clkctrl_reg: CLKCTRL module address |
32 | * |
33 | * Wait for the module IDLEST to be functional. If the idle state is in any |
34 | * the non functional state (trans, idle or disabled), module and thus the |
35 | * sysconfig cannot be accessed and will probably lead to an "imprecise |
36 | * external abort" |
37 | * |
38 | * Module idle state: |
39 | * 0x0 func: Module is fully functional, including OCP |
40 | * 0x1 trans: Module is performing transition: wakeup, or sleep, or sleep |
41 | * abortion |
42 | * 0x2 idle: Module is in Idle mode (only OCP part). It is functional if |
43 | * using separate functional clock |
44 | * 0x3 disabled: Module is disabled and cannot be accessed |
45 | * |
46 | */ |
47 | int omap4_cm_wait_module_ready(void __iomem *clkctrl_reg) |
48 | { |
49 | int i = 0; |
50 | |
51 | if (!clkctrl_reg) |
52 | return 0; |
53 | |
54 | omap_test_timeout(( |
55 | ((__raw_readl(clkctrl_reg) & OMAP4430_IDLEST_MASK) == 0) || |
56 | (((__raw_readl(clkctrl_reg) & OMAP4430_IDLEST_MASK) >> |
57 | OMAP4430_IDLEST_SHIFT) == 0x2)), |
58 | MAX_MODULE_READY_TIME, i); |
59 | |
60 | return (i < MAX_MODULE_READY_TIME) ? 0 : -EBUSY; |
61 | } |
62 | |
63 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9