1f5a6422dSNishanth Menon /*
2f5a6422dSNishanth Menon  * OMAP4 OPP table definitions.
3f5a6422dSNishanth Menon  *
4f5a6422dSNishanth Menon  * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
5f5a6422dSNishanth Menon  *	Nishanth Menon
6f5a6422dSNishanth Menon  *	Kevin Hilman
7f5a6422dSNishanth Menon  *	Thara Gopinath
8f5a6422dSNishanth Menon  * Copyright (C) 2010 Nokia Corporation.
9f5a6422dSNishanth Menon  *      Eduardo Valentin
10f5a6422dSNishanth Menon  *
11f5a6422dSNishanth Menon  * This program is free software; you can redistribute it and/or modify
12f5a6422dSNishanth Menon  * it under the terms of the GNU General Public License version 2 as
13f5a6422dSNishanth Menon  * published by the Free Software Foundation.
14f5a6422dSNishanth Menon  *
15f5a6422dSNishanth Menon  * This program is distributed "as is" WITHOUT ANY WARRANTY of any
16f5a6422dSNishanth Menon  * kind, whether express or implied; without even the implied warranty
17f5a6422dSNishanth Menon  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18f5a6422dSNishanth Menon  * GNU General Public License for more details.
19f5a6422dSNishanth Menon  */
20f5a6422dSNishanth Menon #include <linux/module.h>
21f5a6422dSNishanth Menon 
22f5a6422dSNishanth Menon #include <plat/cpu.h>
23f5a6422dSNishanth Menon 
24f5a6422dSNishanth Menon #include "omap_opp_data.h"
25f5a6422dSNishanth Menon 
26f5a6422dSNishanth Menon static struct omap_opp_def __initdata omap44xx_opp_def_list[] = {
27f5a6422dSNishanth Menon 	/* MPU OPP1 - OPP50 */
28f5a6422dSNishanth Menon 	OPP_INITIALIZER("mpu", true, 300000000, 1100000),
29f5a6422dSNishanth Menon 	/* MPU OPP2 - OPP100 */
30f5a6422dSNishanth Menon 	OPP_INITIALIZER("mpu", true, 600000000, 1200000),
31f5a6422dSNishanth Menon 	/* MPU OPP3 - OPP-Turbo */
32f5a6422dSNishanth Menon 	OPP_INITIALIZER("mpu", false, 800000000, 1260000),
33f5a6422dSNishanth Menon 	/* MPU OPP4 - OPP-SB */
34f5a6422dSNishanth Menon 	OPP_INITIALIZER("mpu", false, 1008000000, 1350000),
35f5a6422dSNishanth Menon 	/* L3 OPP1 - OPP50 */
36f5a6422dSNishanth Menon 	OPP_INITIALIZER("l3_main_1", true, 100000000, 930000),
37f5a6422dSNishanth Menon 	/* L3 OPP2 - OPP100, OPP-Turbo, OPP-SB */
38f5a6422dSNishanth Menon 	OPP_INITIALIZER("l3_main_1", true, 200000000, 1100000),
39f5a6422dSNishanth Menon 	/* TODO: add IVA, DSP, aess, fdif, gpu */
40f5a6422dSNishanth Menon };
41f5a6422dSNishanth Menon 
42f5a6422dSNishanth Menon /**
43f5a6422dSNishanth Menon  * omap4_opp_init() - initialize omap4 opp table
44f5a6422dSNishanth Menon  */
45f5a6422dSNishanth Menon static int __init omap4_opp_init(void)
46f5a6422dSNishanth Menon {
47f5a6422dSNishanth Menon 	int r = -ENODEV;
48f5a6422dSNishanth Menon 
49f5a6422dSNishanth Menon 	if (!cpu_is_omap44xx())
50f5a6422dSNishanth Menon 		return r;
51f5a6422dSNishanth Menon 
52f5a6422dSNishanth Menon 	r = omap_init_opp_table(omap44xx_opp_def_list,
53f5a6422dSNishanth Menon 			ARRAY_SIZE(omap44xx_opp_def_list));
54f5a6422dSNishanth Menon 
55f5a6422dSNishanth Menon 	return r;
56f5a6422dSNishanth Menon }
57f5a6422dSNishanth Menon device_initcall(omap4_opp_init);
58