Blame view
arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c
2.79 KB
801954d3d ARM: OMAP2: Clock... |
1 |
/* |
a5ffef6af OMAP: clockdomain... |
2 |
* OMAP2/3 clockdomain common data |
801954d3d ARM: OMAP2: Clock... |
3 |
* |
a5ffef6af OMAP: clockdomain... |
4 |
* Copyright (C) 2008-2011 Texas Instruments, Inc. |
98fa3d8ae OMAP2+ powerdomai... |
5 |
* Copyright (C) 2008-2010 Nokia Corporation |
801954d3d ARM: OMAP2: Clock... |
6 |
* |
dc0b3a701 OMAP2+: clockdoma... |
7 |
* Paul Walmsley, Jouni Högander |
55ed96945 OMAP2/3 clkdm/pwr... |
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
* * This file contains clockdomains and clockdomain wakeup/sleep * dependencies for the OMAP2/3 chips. Some notes: * * A useful validation rule for struct clockdomain: Any clockdomain * referenced by a wkdep_srcs or sleepdep_srcs array must have a * dep_bit assigned. So wkdep_srcs/sleepdep_srcs are really just * software-controllable dependencies. Non-software-controllable * dependencies do exist, but they are not encoded below (yet). * * 24xx does not support programmable sleep dependencies (SLEEPDEP) * * The overly-specific dep_bit names are due to a bit name collision * with CM_FCLKEN_{DSP,IVA2}. The DSP/IVA2 PM_WKDEP and CM_SLEEPDEP shift * value are the same for all powerdomains: 2 * * XXX should dep_bit be a mask, so we can test to see if it is 0 as a * sanity check? * XXX encode hardware fixed wakeup dependencies -- esp. for 3430 CORE |
801954d3d ARM: OMAP2: Clock... |
27 |
*/ |
1a422724c ARM: OMAP4: PM: A... |
28 29 30 31 32 |
/* * To-Do List * -> Port the Sleep/Wakeup dependencies for the domains * from the Power domain framework */ |
dc0b3a701 OMAP2+: clockdoma... |
33 34 |
#include <linux/kernel.h> #include <linux/io.h> |
801954d3d ARM: OMAP2: Clock... |
35 |
|
1540f2140 OMAP2+: clockdoma... |
36 |
#include "clockdomain.h" |
59fb659b0 OMAP2/3: PRCM: sp... |
37 38 |
#include "prm2xxx_3xxx.h" #include "cm2xxx_3xxx.h" |
74bea6b98 OMAP: powerdomain... |
39 40 41 42 43 |
#include "cm-regbits-24xx.h" #include "cm-regbits-34xx.h" #include "cm-regbits-44xx.h" #include "prm-regbits-24xx.h" #include "prm-regbits-34xx.h" |
801954d3d ARM: OMAP2: Clock... |
44 45 |
/* |
55ed96945 OMAP2/3 clkdm/pwr... |
46 47 48 49 50 |
* Clockdomain dependencies for wkdeps/sleepdeps * * XXX Hardware dependencies (e.g., dependencies that cannot be * changed in software) are not included here yet, but should be. */ |
55ed96945 OMAP2/3 clkdm/pwr... |
51 |
/* Wakeup dependency source arrays */ |
a5ffef6af OMAP: clockdomain... |
52 |
/* 2xxx-specific possible dependencies */ |
3d309cdef OMAP2 clockdomain... |
53 |
|
a5ffef6af OMAP: clockdomain... |
54 55 56 57 58 59 |
/* 2xxx PM_WKDEP_GFX: CORE, MPU, WKUP */ struct clkdm_dep gfx_24xx_wkdeps[] = { { .clkdm_name = "core_l3_clkdm" }, { .clkdm_name = "core_l4_clkdm" }, { .clkdm_name = "mpu_clkdm" }, { .clkdm_name = "wkup_clkdm" }, |
a26017002 OMAP2/3 clockdoma... |
60 61 |
{ NULL }, }; |
a5ffef6af OMAP: clockdomain... |
62 63 64 65 66 67 |
/* 2xxx PM_WKDEP_DSP: CORE, MPU, WKUP */ struct clkdm_dep dsp_24xx_wkdeps[] = { { .clkdm_name = "core_l3_clkdm" }, { .clkdm_name = "core_l4_clkdm" }, { .clkdm_name = "mpu_clkdm" }, { .clkdm_name = "wkup_clkdm" }, |
55ed96945 OMAP2/3 clkdm/pwr... |
68 69 |
{ NULL }, }; |
55ed96945 OMAP2/3 clkdm/pwr... |
70 71 |
/* |
801954d3d ARM: OMAP2: Clock... |
72 |
* OMAP2/3-common clockdomains |
d37f1a136 [ARM] OMAP2/3 clo... |
73 74 75 76 77 |
* * Even though the 2420 has a single PRCM module from the * interconnect's perspective, internally it does appear to have * separate PRM and CM clockdomains. The usual test case is * sys_clkout/sys_clkout2. |
801954d3d ARM: OMAP2: Clock... |
78 79 80 |
*/ /* This is an implicit clockdomain - it is never defined as such in TRM */ |
a5ffef6af OMAP: clockdomain... |
81 |
struct clockdomain wkup_common_clkdm = { |
801954d3d ARM: OMAP2: Clock... |
82 |
.name = "wkup_clkdm", |
5b74c6766 [ARM] OMAP2/3 clo... |
83 |
.pwrdm = { .name = "wkup_pwrdm" }, |
55ed96945 OMAP2/3 clkdm/pwr... |
84 |
.dep_bit = OMAP_EN_WKUP_SHIFT, |
801954d3d ARM: OMAP2: Clock... |
85 |
}; |
a5ffef6af OMAP: clockdomain... |
86 |
struct clockdomain prm_common_clkdm = { |
d37f1a136 [ARM] OMAP2/3 clo... |
87 88 |
.name = "prm_clkdm", .pwrdm = { .name = "wkup_pwrdm" }, |
d37f1a136 [ARM] OMAP2/3 clo... |
89 |
}; |
a5ffef6af OMAP: clockdomain... |
90 |
struct clockdomain cm_common_clkdm = { |
d37f1a136 [ARM] OMAP2/3 clo... |
91 92 |
.name = "cm_clkdm", .pwrdm = { .name = "core_pwrdm" }, |
801954d3d ARM: OMAP2: Clock... |
93 |
}; |