2011-03-11 08:17:45 +03:00
/*
* OMAP3 Voltage Processor ( VP ) data
*
* Copyright ( C ) 2007 , 2010 Texas Instruments , Inc .
* Rajendra Nayak < rnayak @ ti . com >
* Lesly A M < x0080970 @ ti . com >
* Thara Gopinath < thara @ ti . com >
*
* Copyright ( C ) 2008 , 2011 Nokia Corporation
* Kalle Jokiniemi
* Paul Walmsley
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# include <linux/io.h>
# include <linux/err.h>
# include <linux/init.h>
2011-11-11 01:45:17 +04:00
# include "common.h"
2011-03-11 08:17:45 +03:00
# include "prm-regbits-34xx.h"
# include "voltage.h"
# include "vp.h"
2011-03-28 21:52:04 +04:00
# include "prm2xxx_3xxx.h"
static const struct omap_vp_ops omap3_vp_ops = {
. check_txdone = omap3_prm_vp_check_txdone ,
. clear_txdone = omap3_prm_vp_clear_txdone ,
} ;
2011-03-11 08:17:45 +03:00
/*
* VP data common to 34 xx / 36 xx chips
* XXX This stuff presumably belongs in the vp3xxx . c or vp . c file .
*/
2011-04-05 02:25:07 +04:00
static const struct omap_vp_common omap3_vp_common = {
2011-04-05 03:02:28 +04:00
. vpconfig_erroroffset_mask = OMAP3430_ERROROFFSET_MASK ,
2011-03-11 08:17:45 +03:00
. vpconfig_errorgain_mask = OMAP3430_ERRORGAIN_MASK ,
. vpconfig_initvoltage_mask = OMAP3430_INITVOLTAGE_MASK ,
. vpconfig_timeouten = OMAP3430_TIMEOUTEN_MASK ,
. vpconfig_initvdd = OMAP3430_INITVDD_MASK ,
. vpconfig_forceupdate = OMAP3430_FORCEUPDATE_MASK ,
. vpconfig_vpenable = OMAP3430_VPENABLE_MASK ,
. vstepmin_smpswaittimemin_shift = OMAP3430_SMPSWAITTIMEMIN_SHIFT ,
. vstepmax_smpswaittimemax_shift = OMAP3430_SMPSWAITTIMEMAX_SHIFT ,
. vstepmin_stepmin_shift = OMAP3430_VSTEPMIN_SHIFT ,
. vstepmax_stepmax_shift = OMAP3430_VSTEPMAX_SHIFT ,
. vlimitto_vddmin_shift = OMAP3430_VDDMIN_SHIFT ,
. vlimitto_vddmax_shift = OMAP3430_VDDMAX_SHIFT ,
. vlimitto_timeout_shift = OMAP3430_TIMEOUT_SHIFT ,
2011-05-28 06:15:59 +04:00
. vpvoltage_mask = OMAP3430_VPVOLTAGE_MASK ,
2011-03-28 21:52:04 +04:00
. ops = & omap3_vp_ops ,
2011-03-11 08:17:45 +03:00
} ;
2011-04-05 02:25:07 +04:00
struct omap_vp_instance omap3_vp_mpu = {
2011-03-28 21:52:04 +04:00
. id = OMAP3_VP_VDD_MPU_ID ,
2011-04-05 02:25:07 +04:00
. common = & omap3_vp_common ,
2011-03-11 08:17:45 +03:00
. vpconfig = OMAP3_PRM_VP1_CONFIG_OFFSET ,
. vstepmin = OMAP3_PRM_VP1_VSTEPMIN_OFFSET ,
. vstepmax = OMAP3_PRM_VP1_VSTEPMAX_OFFSET ,
. vlimitto = OMAP3_PRM_VP1_VLIMITTO_OFFSET ,
. vstatus = OMAP3_PRM_VP1_STATUS_OFFSET ,
. voltage = OMAP3_PRM_VP1_VOLTAGE_OFFSET ,
} ;
2011-04-05 02:25:07 +04:00
struct omap_vp_instance omap3_vp_core = {
2011-03-28 21:52:04 +04:00
. id = OMAP3_VP_VDD_CORE_ID ,
2011-04-05 02:25:07 +04:00
. common = & omap3_vp_common ,
2011-03-11 08:17:45 +03:00
. vpconfig = OMAP3_PRM_VP2_CONFIG_OFFSET ,
. vstepmin = OMAP3_PRM_VP2_VSTEPMIN_OFFSET ,
. vstepmax = OMAP3_PRM_VP2_VSTEPMAX_OFFSET ,
. vlimitto = OMAP3_PRM_VP2_VLIMITTO_OFFSET ,
. vstatus = OMAP3_PRM_VP2_STATUS_OFFSET ,
. voltage = OMAP3_PRM_VP2_VOLTAGE_OFFSET ,
} ;