Commit | Line | Data |
---|---|---|
69d88a00 | 1 | /* |
59fb659b | 2 | * OMAP2+ Clock Management prototypes |
69d88a00 | 3 | * |
9b47267f RN |
4 | * Copyright (C) 2007-2009 Texas Instruments, Inc. |
5 | * Copyright (C) 2007-2009 Nokia Corporation | |
69d88a00 PW |
6 | * |
7 | * Written by Paul Walmsley | |
8 | * | |
9 | * This program is free software; you can redistribute it and/or modify | |
10 | * it under the terms of the GNU General Public License version 2 as | |
11 | * published by the Free Software Foundation. | |
12 | */ | |
59fb659b PW |
13 | #ifndef __ARCH_ASM_MACH_OMAP2_CM_H |
14 | #define __ARCH_ASM_MACH_OMAP2_CM_H | |
69d88a00 | 15 | |
d9e6625c BC |
16 | /* |
17 | * MAX_MODULE_READY_TIME: max duration in microseconds to wait for the | |
18 | * PRCM to request that a module exit the inactive state in the case of | |
19 | * OMAP2 & 3. | |
20 | * In the case of OMAP4 this is the max duration in microseconds for the | |
21 | * module to reach the functionnal state from an inactive state. | |
22 | */ | |
23 | #define MAX_MODULE_READY_TIME 2000 | |
24 | ||
b8f15b7e PW |
25 | /* |
26 | * MAX_MODULE_DISABLE_TIME: max duration in microseconds to wait for | |
27 | * the PRCM to request that a module enter the inactive state in the | |
28 | * case of OMAP2 & 3. In the case of OMAP4 this is the max duration | |
29 | * in microseconds for the module to reach the inactive state from | |
30 | * a functional state. | |
31 | * XXX FSUSB on OMAP4430 takes ~4ms to idle after reset during | |
32 | * kernel init. | |
33 | */ | |
34 | #define MAX_MODULE_DISABLE_TIME 5000 | |
35 | ||
21325b25 PW |
36 | # ifndef __ASSEMBLER__ |
37 | ||
38 | /** | |
39 | * struct cm_ll_data - fn ptrs to per-SoC CM function implementations | |
c4ceedcb PW |
40 | * @split_idlest_reg: ptr to the SoC CM-specific split_idlest_reg impl |
41 | * @wait_module_ready: ptr to the SoC CM-specific wait_module_ready impl | |
21325b25 | 42 | */ |
c4ceedcb PW |
43 | struct cm_ll_data { |
44 | int (*split_idlest_reg)(void __iomem *idlest_reg, s16 *prcm_inst, | |
45 | u8 *idlest_reg_id); | |
46 | int (*wait_module_ready)(s16 prcm_mod, u8 idlest_id, u8 idlest_shift); | |
47 | }; | |
48 | ||
49 | extern int cm_split_idlest_reg(void __iomem *idlest_reg, s16 *prcm_inst, | |
50 | u8 *idlest_reg_id); | |
51 | extern int cm_wait_module_ready(s16 prcm_mod, u8 idlest_id, u8 idlest_shift); | |
21325b25 PW |
52 | |
53 | extern int cm_register(struct cm_ll_data *cld); | |
54 | extern int cm_unregister(struct cm_ll_data *cld); | |
55 | ||
56 | # endif | |
57 | ||
69d88a00 | 58 | #endif |