]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - sitara-epos/sitara-epos-kernel.git/blob - arch/arm/mach-omap2/powerdomains2xxx_data.c
arm:omap:am33xx: Register HSMMC Platform on AM335x EVM
[sitara-epos/sitara-epos-kernel.git] / arch / arm / mach-omap2 / powerdomains2xxx_data.c
1 /*
2  * OMAP2XXX powerdomain definitions
3  *
4  * Copyright (C) 2007-2008, 2011 Texas Instruments, Inc.
5  * Copyright (C) 2007-2011 Nokia Corporation
6  *
7  * Paul Walmsley, Jouni Högander
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  */
14 #include <linux/kernel.h>
15 #include <linux/init.h>
17 #include "powerdomain.h"
18 #include "powerdomains2xxx_3xxx_data.h"
20 #include "prcm-common.h"
21 #include "prm2xxx_3xxx.h"
22 #include "prm-regbits-24xx.h"
24 /* 24XX powerdomains and dependencies */
26 /* Powerdomains */
28 static struct powerdomain dsp_pwrdm = {
29         .name             = "dsp_pwrdm",
30         .prcm_offs        = OMAP24XX_DSP_MOD,
31         .pwrsts           = PWRSTS_OFF_RET_ON,
32         .pwrsts_logic_ret = PWRSTS_RET,
33         .banks            = 1,
34         .pwrsts_mem_ret   = {
35                 [0] = PWRSTS_RET,
36         },
37         .pwrsts_mem_on    = {
38                 [0] = PWRSTS_ON,
39         },
40         .voltdm           = { .name = "core" },
41 };
43 static struct powerdomain mpu_24xx_pwrdm = {
44         .name             = "mpu_pwrdm",
45         .prcm_offs        = MPU_MOD,
46         .pwrsts           = PWRSTS_OFF_RET_ON,
47         .pwrsts_logic_ret = PWRSTS_OFF_RET,
48         .banks            = 1,
49         .pwrsts_mem_ret   = {
50                 [0] = PWRSTS_RET,
51         },
52         .pwrsts_mem_on    = {
53                 [0] = PWRSTS_ON,
54         },
55         .voltdm           = { .name = "core" },
56 };
58 static struct powerdomain core_24xx_pwrdm = {
59         .name             = "core_pwrdm",
60         .prcm_offs        = CORE_MOD,
61         .pwrsts           = PWRSTS_OFF_RET_ON,
62         .banks            = 3,
63         .pwrsts_mem_ret   = {
64                 [0] = PWRSTS_OFF_RET,    /* MEM1RETSTATE */
65                 [1] = PWRSTS_OFF_RET,    /* MEM2RETSTATE */
66                 [2] = PWRSTS_OFF_RET,    /* MEM3RETSTATE */
67         },
68         .pwrsts_mem_on    = {
69                 [0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */
70                 [1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */
71                 [2] = PWRSTS_OFF_RET_ON, /* MEM3ONSTATE */
72         },
73         .voltdm           = { .name = "core" },
74 };
77 /*
78  * 2430-specific powerdomains
79  */
81 /* XXX 2430 KILLDOMAINWKUP bit?  No current users apparently */
83 static struct powerdomain mdm_pwrdm = {
84         .name             = "mdm_pwrdm",
85         .prcm_offs        = OMAP2430_MDM_MOD,
86         .pwrsts           = PWRSTS_OFF_RET_ON,
87         .pwrsts_logic_ret = PWRSTS_RET,
88         .banks            = 1,
89         .pwrsts_mem_ret   = {
90                 [0] = PWRSTS_RET, /* MEMRETSTATE */
91         },
92         .pwrsts_mem_on    = {
93                 [0] = PWRSTS_ON,  /* MEMONSTATE */
94         },
95         .voltdm           = { .name = "core" },
96 };
98 /*
99  *
100  */
102 static struct powerdomain *powerdomains_omap24xx[] __initdata = {
103         &wkup_omap2_pwrdm,
104         &gfx_omap2_pwrdm,
105         &dsp_pwrdm,
106         &mpu_24xx_pwrdm,
107         &core_24xx_pwrdm,
108         NULL
109 };
111 static struct powerdomain *powerdomains_omap2430[] __initdata = {
112         &mdm_pwrdm,
113         NULL
114 };
116 void __init omap242x_powerdomains_init(void)
118         if (!cpu_is_omap2420())
119                 return;
121         pwrdm_register_platform_funcs(&omap2_pwrdm_operations);
122         pwrdm_register_pwrdms(powerdomains_omap24xx);
123         pwrdm_complete_init();
126 void __init omap243x_powerdomains_init(void)
128         if (!cpu_is_omap2430())
129                 return;
131         pwrdm_register_platform_funcs(&omap2_pwrdm_operations);
132         pwrdm_register_pwrdms(powerdomains_omap24xx);
133         pwrdm_register_pwrdms(powerdomains_omap2430);
134         pwrdm_complete_init();