2 * OMAP5 Voltage Management Routines
4 * Based on voltagedomains44xx_data.c
6 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
12 #include <linux/kernel.h>
13 #include <linux/err.h>
14 #include <linux/init.h>
20 #include "omap_opp_data.h"
24 static const struct omap_vfsm_instance omap5_vdd_mpu_vfsm
= {
25 .voltsetup_reg
= OMAP54XX_PRM_VOLTSETUP_MPU_RET_SLEEP_OFFSET
,
28 static const struct omap_vfsm_instance omap5_vdd_mm_vfsm
= {
29 .voltsetup_reg
= OMAP54XX_PRM_VOLTSETUP_MM_RET_SLEEP_OFFSET
,
32 static const struct omap_vfsm_instance omap5_vdd_core_vfsm
= {
33 .voltsetup_reg
= OMAP54XX_PRM_VOLTSETUP_CORE_RET_SLEEP_OFFSET
,
36 static struct voltagedomain omap5_voltdm_mpu
= {
39 .read
= omap4_prm_vcvp_read
,
40 .write
= omap4_prm_vcvp_write
,
41 .rmw
= omap4_prm_vcvp_rmw
,
43 .vfsm
= &omap5_vdd_mpu_vfsm
,
47 static struct voltagedomain omap5_voltdm_mm
= {
50 .read
= omap4_prm_vcvp_read
,
51 .write
= omap4_prm_vcvp_write
,
52 .rmw
= omap4_prm_vcvp_rmw
,
54 .vfsm
= &omap5_vdd_mm_vfsm
,
58 static struct voltagedomain omap5_voltdm_core
= {
61 .read
= omap4_prm_vcvp_read
,
62 .write
= omap4_prm_vcvp_write
,
63 .rmw
= omap4_prm_vcvp_rmw
,
65 .vfsm
= &omap5_vdd_core_vfsm
,
69 static struct voltagedomain omap5_voltdm_wkup
= {
73 static struct voltagedomain
*voltagedomains_omap5
[] __initdata
= {
81 static const char *sys_clk_name __initdata
= "sys_clkin";
83 void __init
omap54xx_voltagedomains_init(void)
85 struct voltagedomain
*voltdm
;
88 for (i
= 0; voltdm
= voltagedomains_omap5
[i
], voltdm
; i
++)
89 voltdm
->sys_clk
.name
= sys_clk_name
;
91 voltdm_init(voltagedomains_omap5
);