1*c0718df4SPaul Walmsley /* 2*c0718df4SPaul Walmsley * OMAP3 Voltage Processor (VP) data 3*c0718df4SPaul Walmsley * 4*c0718df4SPaul Walmsley * Copyright (C) 2007, 2010 Texas Instruments, Inc. 5*c0718df4SPaul Walmsley * Rajendra Nayak <rnayak@ti.com> 6*c0718df4SPaul Walmsley * Lesly A M <x0080970@ti.com> 7*c0718df4SPaul Walmsley * Thara Gopinath <thara@ti.com> 8*c0718df4SPaul Walmsley * 9*c0718df4SPaul Walmsley * Copyright (C) 2008, 2011 Nokia Corporation 10*c0718df4SPaul Walmsley * Kalle Jokiniemi 11*c0718df4SPaul Walmsley * Paul Walmsley 12*c0718df4SPaul Walmsley * 13*c0718df4SPaul Walmsley * This program is free software; you can redistribute it and/or modify 14*c0718df4SPaul Walmsley * it under the terms of the GNU General Public License version 2 as 15*c0718df4SPaul Walmsley * published by the Free Software Foundation. 16*c0718df4SPaul Walmsley */ 17*c0718df4SPaul Walmsley 18*c0718df4SPaul Walmsley #include <linux/io.h> 19*c0718df4SPaul Walmsley #include <linux/err.h> 20*c0718df4SPaul Walmsley #include <linux/init.h> 21*c0718df4SPaul Walmsley 22*c0718df4SPaul Walmsley #include <plat/common.h> 23*c0718df4SPaul Walmsley 24*c0718df4SPaul Walmsley #include "prm-regbits-34xx.h" 25*c0718df4SPaul Walmsley #include "voltage.h" 26*c0718df4SPaul Walmsley 27*c0718df4SPaul Walmsley #include "vp.h" 28*c0718df4SPaul Walmsley 29*c0718df4SPaul Walmsley /* 30*c0718df4SPaul Walmsley * VP data common to 34xx/36xx chips 31*c0718df4SPaul Walmsley * XXX This stuff presumably belongs in the vp3xxx.c or vp.c file. 32*c0718df4SPaul Walmsley */ 33*c0718df4SPaul Walmsley static const struct omap_vp_common_data omap3_vp_common = { 34*c0718df4SPaul Walmsley .vpconfig_erroroffset_shift = OMAP3430_ERROROFFSET_SHIFT, 35*c0718df4SPaul Walmsley .vpconfig_errorgain_mask = OMAP3430_ERRORGAIN_MASK, 36*c0718df4SPaul Walmsley .vpconfig_errorgain_shift = OMAP3430_ERRORGAIN_SHIFT, 37*c0718df4SPaul Walmsley .vpconfig_initvoltage_shift = OMAP3430_INITVOLTAGE_SHIFT, 38*c0718df4SPaul Walmsley .vpconfig_initvoltage_mask = OMAP3430_INITVOLTAGE_MASK, 39*c0718df4SPaul Walmsley .vpconfig_timeouten = OMAP3430_TIMEOUTEN_MASK, 40*c0718df4SPaul Walmsley .vpconfig_initvdd = OMAP3430_INITVDD_MASK, 41*c0718df4SPaul Walmsley .vpconfig_forceupdate = OMAP3430_FORCEUPDATE_MASK, 42*c0718df4SPaul Walmsley .vpconfig_vpenable = OMAP3430_VPENABLE_MASK, 43*c0718df4SPaul Walmsley .vstepmin_smpswaittimemin_shift = OMAP3430_SMPSWAITTIMEMIN_SHIFT, 44*c0718df4SPaul Walmsley .vstepmax_smpswaittimemax_shift = OMAP3430_SMPSWAITTIMEMAX_SHIFT, 45*c0718df4SPaul Walmsley .vstepmin_stepmin_shift = OMAP3430_VSTEPMIN_SHIFT, 46*c0718df4SPaul Walmsley .vstepmax_stepmax_shift = OMAP3430_VSTEPMAX_SHIFT, 47*c0718df4SPaul Walmsley .vlimitto_vddmin_shift = OMAP3430_VDDMIN_SHIFT, 48*c0718df4SPaul Walmsley .vlimitto_vddmax_shift = OMAP3430_VDDMAX_SHIFT, 49*c0718df4SPaul Walmsley .vlimitto_timeout_shift = OMAP3430_TIMEOUT_SHIFT, 50*c0718df4SPaul Walmsley }; 51*c0718df4SPaul Walmsley 52*c0718df4SPaul Walmsley static const struct omap_vp_prm_irqst_data omap3_vp1_prm_irqst_data = { 53*c0718df4SPaul Walmsley .prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET, 54*c0718df4SPaul Walmsley .tranxdone_status = OMAP3430_VP1_TRANXDONE_ST_MASK, 55*c0718df4SPaul Walmsley }; 56*c0718df4SPaul Walmsley 57*c0718df4SPaul Walmsley struct omap_vp_instance_data omap3_vp1_data = { 58*c0718df4SPaul Walmsley .vp_common = &omap3_vp_common, 59*c0718df4SPaul Walmsley .vpconfig = OMAP3_PRM_VP1_CONFIG_OFFSET, 60*c0718df4SPaul Walmsley .vstepmin = OMAP3_PRM_VP1_VSTEPMIN_OFFSET, 61*c0718df4SPaul Walmsley .vstepmax = OMAP3_PRM_VP1_VSTEPMAX_OFFSET, 62*c0718df4SPaul Walmsley .vlimitto = OMAP3_PRM_VP1_VLIMITTO_OFFSET, 63*c0718df4SPaul Walmsley .vstatus = OMAP3_PRM_VP1_STATUS_OFFSET, 64*c0718df4SPaul Walmsley .voltage = OMAP3_PRM_VP1_VOLTAGE_OFFSET, 65*c0718df4SPaul Walmsley .prm_irqst_data = &omap3_vp1_prm_irqst_data, 66*c0718df4SPaul Walmsley }; 67*c0718df4SPaul Walmsley 68*c0718df4SPaul Walmsley static const struct omap_vp_prm_irqst_data omap3_vp2_prm_irqst_data = { 69*c0718df4SPaul Walmsley .prm_irqst_reg = OMAP3_PRM_IRQSTATUS_MPU_OFFSET, 70*c0718df4SPaul Walmsley .tranxdone_status = OMAP3430_VP2_TRANXDONE_ST_MASK, 71*c0718df4SPaul Walmsley }; 72*c0718df4SPaul Walmsley 73*c0718df4SPaul Walmsley struct omap_vp_instance_data omap3_vp2_data = { 74*c0718df4SPaul Walmsley .vp_common = &omap3_vp_common, 75*c0718df4SPaul Walmsley .vpconfig = OMAP3_PRM_VP2_CONFIG_OFFSET, 76*c0718df4SPaul Walmsley .vstepmin = OMAP3_PRM_VP2_VSTEPMIN_OFFSET, 77*c0718df4SPaul Walmsley .vstepmax = OMAP3_PRM_VP2_VSTEPMAX_OFFSET, 78*c0718df4SPaul Walmsley .vlimitto = OMAP3_PRM_VP2_VLIMITTO_OFFSET, 79*c0718df4SPaul Walmsley .vstatus = OMAP3_PRM_VP2_STATUS_OFFSET, 80*c0718df4SPaul Walmsley .voltage = OMAP3_PRM_VP2_VOLTAGE_OFFSET, 81*c0718df4SPaul Walmsley .prm_irqst_data = &omap3_vp2_prm_irqst_data, 82*c0718df4SPaul Walmsley }; 83