1f5a6422dSNishanth Menon /*
2f5a6422dSNishanth Menon  * OMAP4 OPP table definitions.
3f5a6422dSNishanth Menon  *
483bf6db0SAlexander A. Klimov  * Copyright (C) 2010-2012 Texas Instruments Incorporated - https://www.ti.com/
5f5a6422dSNishanth Menon  *	Nishanth Menon
6f5a6422dSNishanth Menon  *	Kevin Hilman
7f5a6422dSNishanth Menon  *	Thara Gopinath
8c0718df4SPaul Walmsley  * Copyright (C) 2010-2011 Nokia Corporation.
9f5a6422dSNishanth Menon  *      Eduardo Valentin
10c0718df4SPaul Walmsley  *      Paul Walmsley
11f5a6422dSNishanth Menon  *
12f5a6422dSNishanth Menon  * This program is free software; you can redistribute it and/or modify
13f5a6422dSNishanth Menon  * it under the terms of the GNU General Public License version 2 as
14f5a6422dSNishanth Menon  * published by the Free Software Foundation.
15f5a6422dSNishanth Menon  *
16f5a6422dSNishanth Menon  * This program is distributed "as is" WITHOUT ANY WARRANTY of any
17f5a6422dSNishanth Menon  * kind, whether express or implied; without even the implied warranty
18f5a6422dSNishanth Menon  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19f5a6422dSNishanth Menon  * GNU General Public License for more details.
20f5a6422dSNishanth Menon  */
21f5a6422dSNishanth Menon #include <linux/module.h>
22f5a6422dSNishanth Menon 
23dbc04161STony Lindgren #include "soc.h"
24c0718df4SPaul Walmsley #include "control.h"
25f5a6422dSNishanth Menon #include "omap_opp_data.h"
26eb05ead9SMenon, Nishanth #include "pm.h"
27f5a6422dSNishanth Menon 
28c0718df4SPaul Walmsley /*
29c0718df4SPaul Walmsley  * Structures containing OMAP4430 voltage supported and various
30c0718df4SPaul Walmsley  * voltage dependent data for each VDD.
31c0718df4SPaul Walmsley  */
32c0718df4SPaul Walmsley 
33d9a2012dSShweta Gulati #define OMAP4430_VDD_MPU_OPP50_UV		1025000
34d9a2012dSShweta Gulati #define OMAP4430_VDD_MPU_OPP100_UV		1200000
3532236a84STony Lindgren #define OMAP4430_VDD_MPU_OPPTURBO_UV		1325000
3632236a84STony Lindgren #define OMAP4430_VDD_MPU_OPPNITRO_UV		1388000
3732236a84STony Lindgren #define OMAP4430_VDD_MPU_OPPNITROSB_UV		1398000
38c0718df4SPaul Walmsley 
39df7cded3SVishwanath Sripathy struct omap_volt_data omap443x_vdd_mpu_volt_data[] = {
40c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP50_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c),
41c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP100_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16),
42c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23),
43c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27),
4432236a84STony Lindgren 	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPNITROSB_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITROSB, 0xfa, 0x27),
45c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(0, 0, 0, 0),
46c0718df4SPaul Walmsley };
47c0718df4SPaul Walmsley 
4832236a84STony Lindgren #define OMAP4430_VDD_IVA_OPP50_UV		 950000
4932236a84STony Lindgren #define OMAP4430_VDD_IVA_OPP100_UV		1114000
5032236a84STony Lindgren #define OMAP4430_VDD_IVA_OPPTURBO_UV		1291000
51c0718df4SPaul Walmsley 
52df7cded3SVishwanath Sripathy struct omap_volt_data omap443x_vdd_iva_volt_data[] = {
53c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP50_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c),
54c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP100_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16),
55c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23),
56c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(0, 0, 0, 0),
57c0718df4SPaul Walmsley };
58c0718df4SPaul Walmsley 
5932236a84STony Lindgren #define OMAP4430_VDD_CORE_OPP50_UV		 962000
6032236a84STony Lindgren #define OMAP4430_VDD_CORE_OPP100_UV		1127000
61c0718df4SPaul Walmsley 
62df7cded3SVishwanath Sripathy struct omap_volt_data omap443x_vdd_core_volt_data[] = {
63c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP50_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c),
64c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP100_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16),
65c0718df4SPaul Walmsley 	VOLT_DATA_DEFINE(0, 0, 0, 0),
66c0718df4SPaul Walmsley };
67c0718df4SPaul Walmsley 
68df7cded3SVishwanath Sripathy #define OMAP4460_VDD_MPU_OPP50_UV		1025000
69df7cded3SVishwanath Sripathy #define OMAP4460_VDD_MPU_OPP100_UV		1200000
70df7cded3SVishwanath Sripathy #define OMAP4460_VDD_MPU_OPPTURBO_UV		1313000
71df7cded3SVishwanath Sripathy #define OMAP4460_VDD_MPU_OPPNITRO_UV		1375000
72df7cded3SVishwanath Sripathy 
73df7cded3SVishwanath Sripathy struct omap_volt_data omap446x_vdd_mpu_volt_data[] = {
74df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP50_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c),
75df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP100_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16),
76df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23),
77df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27),
78df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(0, 0, 0, 0),
79df7cded3SVishwanath Sripathy };
80df7cded3SVishwanath Sripathy 
81df7cded3SVishwanath Sripathy #define OMAP4460_VDD_IVA_OPP50_UV		1025000
82df7cded3SVishwanath Sripathy #define OMAP4460_VDD_IVA_OPP100_UV		1200000
83df7cded3SVishwanath Sripathy #define OMAP4460_VDD_IVA_OPPTURBO_UV		1313000
84df7cded3SVishwanath Sripathy #define OMAP4460_VDD_IVA_OPPNITRO_UV		1375000
85df7cded3SVishwanath Sripathy 
86df7cded3SVishwanath Sripathy struct omap_volt_data omap446x_vdd_iva_volt_data[] = {
87df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_IVA_OPP50_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c),
88df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_IVA_OPP100_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16),
89df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_IVA_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23),
90df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_IVA_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPNITRO, 0xfa, 0x23),
91df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(0, 0, 0, 0),
92df7cded3SVishwanath Sripathy };
93df7cded3SVishwanath Sripathy 
94df7cded3SVishwanath Sripathy #define OMAP4460_VDD_CORE_OPP50_UV		1025000
95df7cded3SVishwanath Sripathy #define OMAP4460_VDD_CORE_OPP100_UV		1200000
96df7cded3SVishwanath Sripathy #define OMAP4460_VDD_CORE_OPP100_OV_UV		1250000
97df7cded3SVishwanath Sripathy 
98df7cded3SVishwanath Sripathy struct omap_volt_data omap446x_vdd_core_volt_data[] = {
99df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_CORE_OPP50_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c),
100df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_CORE_OPP100_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16),
101df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(OMAP4460_VDD_CORE_OPP100_OV_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100OV, 0xf9, 0x16),
102df7cded3SVishwanath Sripathy 	VOLT_DATA_DEFINE(0, 0, 0, 0),
103df7cded3SVishwanath Sripathy };
104