Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
mach-omap2
opp4xxx_data.c
Go to the documentation of this file.
1
/*
2
* OMAP4 OPP table definitions.
3
*
4
* Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
5
* Nishanth Menon
6
* Kevin Hilman
7
* Thara Gopinath
8
* Copyright (C) 2010-2011 Nokia Corporation.
9
* Eduardo Valentin
10
* Paul Walmsley
11
*
12
* This program is free software; you can redistribute it and/or modify
13
* it under the terms of the GNU General Public License version 2 as
14
* published by the Free Software Foundation.
15
*
16
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
17
* kind, whether express or implied; without even the implied warranty
18
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU General Public License for more details.
20
*/
21
#include <linux/module.h>
22
23
#include "
soc.h
"
24
#include "
control.h
"
25
#include "
omap_opp_data.h
"
26
#include "
pm.h
"
27
28
/*
29
* Structures containing OMAP4430 voltage supported and various
30
* voltage dependent data for each VDD.
31
*/
32
33
#define OMAP4430_VDD_MPU_OPP50_UV 1025000
34
#define OMAP4430_VDD_MPU_OPP100_UV 1200000
35
#define OMAP4430_VDD_MPU_OPPTURBO_UV 1313000
36
#define OMAP4430_VDD_MPU_OPPNITRO_UV 1375000
37
38
struct
omap_volt_data
omap44xx_vdd_mpu_volt_data
[] = {
39
VOLT_DATA_DEFINE
(
OMAP4430_VDD_MPU_OPP50_UV
,
OMAP44XX_CONTROL_FUSE_MPU_OPP50
, 0xf4, 0x0c),
40
VOLT_DATA_DEFINE
(
OMAP4430_VDD_MPU_OPP100_UV
,
OMAP44XX_CONTROL_FUSE_MPU_OPP100
, 0xf9, 0x16),
41
VOLT_DATA_DEFINE
(
OMAP4430_VDD_MPU_OPPTURBO_UV
,
OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO
, 0xfa, 0x23),
42
VOLT_DATA_DEFINE
(
OMAP4430_VDD_MPU_OPPNITRO_UV
,
OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO
, 0xfa, 0x27),
43
VOLT_DATA_DEFINE
(0, 0, 0, 0),
44
};
45
46
#define OMAP4430_VDD_IVA_OPP50_UV 1013000
47
#define OMAP4430_VDD_IVA_OPP100_UV 1188000
48
#define OMAP4430_VDD_IVA_OPPTURBO_UV 1300000
49
50
struct
omap_volt_data
omap44xx_vdd_iva_volt_data
[] = {
51
VOLT_DATA_DEFINE
(
OMAP4430_VDD_IVA_OPP50_UV
,
OMAP44XX_CONTROL_FUSE_IVA_OPP50
, 0xf4, 0x0c),
52
VOLT_DATA_DEFINE
(
OMAP4430_VDD_IVA_OPP100_UV
,
OMAP44XX_CONTROL_FUSE_IVA_OPP100
, 0xf9, 0x16),
53
VOLT_DATA_DEFINE
(
OMAP4430_VDD_IVA_OPPTURBO_UV
,
OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO
, 0xfa, 0x23),
54
VOLT_DATA_DEFINE
(0, 0, 0, 0),
55
};
56
57
#define OMAP4430_VDD_CORE_OPP50_UV 1025000
58
#define OMAP4430_VDD_CORE_OPP100_UV 1200000
59
60
struct
omap_volt_data
omap44xx_vdd_core_volt_data
[] = {
61
VOLT_DATA_DEFINE
(
OMAP4430_VDD_CORE_OPP50_UV
,
OMAP44XX_CONTROL_FUSE_CORE_OPP50
, 0xf4, 0x0c),
62
VOLT_DATA_DEFINE
(
OMAP4430_VDD_CORE_OPP100_UV
,
OMAP44XX_CONTROL_FUSE_CORE_OPP100
, 0xf9, 0x16),
63
VOLT_DATA_DEFINE
(0, 0, 0, 0),
64
};
65
66
67
static
struct
omap_opp_def
__initdata
omap44xx_opp_def_list[] = {
68
/* MPU OPP1 - OPP50 */
69
OPP_INITIALIZER
(
"mpu"
,
true
, 300000000,
OMAP4430_VDD_MPU_OPP50_UV
),
70
/* MPU OPP2 - OPP100 */
71
OPP_INITIALIZER
(
"mpu"
,
true
, 600000000,
OMAP4430_VDD_MPU_OPP100_UV
),
72
/* MPU OPP3 - OPP-Turbo */
73
OPP_INITIALIZER
(
"mpu"
,
true
, 800000000,
OMAP4430_VDD_MPU_OPPTURBO_UV
),
74
/* MPU OPP4 - OPP-SB */
75
OPP_INITIALIZER
(
"mpu"
,
true
, 1008000000,
OMAP4430_VDD_MPU_OPPNITRO_UV
),
76
/* L3 OPP1 - OPP50 */
77
OPP_INITIALIZER
(
"l3_main_1"
,
true
, 100000000,
OMAP4430_VDD_CORE_OPP50_UV
),
78
/* L3 OPP2 - OPP100, OPP-Turbo, OPP-SB */
79
OPP_INITIALIZER
(
"l3_main_1"
,
true
, 200000000,
OMAP4430_VDD_CORE_OPP100_UV
),
80
/* IVA OPP1 - OPP50 */
81
OPP_INITIALIZER
(
"iva"
,
true
, 133000000,
OMAP4430_VDD_IVA_OPP50_UV
),
82
/* IVA OPP2 - OPP100 */
83
OPP_INITIALIZER
(
"iva"
,
true
, 266100000,
OMAP4430_VDD_IVA_OPP100_UV
),
84
/* IVA OPP3 - OPP-Turbo */
85
OPP_INITIALIZER
(
"iva"
,
false
, 332000000,
OMAP4430_VDD_IVA_OPPTURBO_UV
),
86
/* TODO: add DSP, aess, fdif, gpu */
87
};
88
92
int
__init
omap4_opp_init
(
void
)
93
{
94
int
r
= -
ENODEV
;
95
96
if
(!
cpu_is_omap443x
())
97
return
r
;
98
99
r =
omap_init_opp_table
(omap44xx_opp_def_list,
100
ARRAY_SIZE
(omap44xx_opp_def_list));
101
102
return
r
;
103
}
104
device_initcall
(
omap4_opp_init
);
Generated on Thu Jan 10 2013 13:00:56 for Linux Kernel by
1.8.2