162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * OMAP3 Voltage Processor (VP) data 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2007, 2010 Texas Instruments, Inc. 662306a36Sopenharmony_ci * Rajendra Nayak <rnayak@ti.com> 762306a36Sopenharmony_ci * Lesly A M <x0080970@ti.com> 862306a36Sopenharmony_ci * Thara Gopinath <thara@ti.com> 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci * Copyright (C) 2008, 2011 Nokia Corporation 1162306a36Sopenharmony_ci * Kalle Jokiniemi 1262306a36Sopenharmony_ci * Paul Walmsley 1362306a36Sopenharmony_ci */ 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#include <linux/io.h> 1662306a36Sopenharmony_ci#include <linux/err.h> 1762306a36Sopenharmony_ci#include <linux/init.h> 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#include "common.h" 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci#include "prm-regbits-34xx.h" 2262306a36Sopenharmony_ci#include "voltage.h" 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci#include "vp.h" 2562306a36Sopenharmony_ci#include "prm2xxx_3xxx.h" 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_cistatic const struct omap_vp_ops omap3_vp_ops = { 2862306a36Sopenharmony_ci .check_txdone = omap_prm_vp_check_txdone, 2962306a36Sopenharmony_ci .clear_txdone = omap_prm_vp_clear_txdone, 3062306a36Sopenharmony_ci}; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci/* 3362306a36Sopenharmony_ci * VP data common to 34xx/36xx chips 3462306a36Sopenharmony_ci * XXX This stuff presumably belongs in the vp3xxx.c or vp.c file. 3562306a36Sopenharmony_ci */ 3662306a36Sopenharmony_cistatic const struct omap_vp_common omap3_vp_common = { 3762306a36Sopenharmony_ci .vpconfig_erroroffset_mask = OMAP3430_ERROROFFSET_MASK, 3862306a36Sopenharmony_ci .vpconfig_errorgain_mask = OMAP3430_ERRORGAIN_MASK, 3962306a36Sopenharmony_ci .vpconfig_initvoltage_mask = OMAP3430_INITVOLTAGE_MASK, 4062306a36Sopenharmony_ci .vpconfig_timeouten = OMAP3430_TIMEOUTEN_MASK, 4162306a36Sopenharmony_ci .vpconfig_initvdd = OMAP3430_INITVDD_MASK, 4262306a36Sopenharmony_ci .vpconfig_forceupdate = OMAP3430_FORCEUPDATE_MASK, 4362306a36Sopenharmony_ci .vpconfig_vpenable = OMAP3430_VPENABLE_MASK, 4462306a36Sopenharmony_ci .vstepmin_smpswaittimemin_shift = OMAP3430_SMPSWAITTIMEMIN_SHIFT, 4562306a36Sopenharmony_ci .vstepmax_smpswaittimemax_shift = OMAP3430_SMPSWAITTIMEMAX_SHIFT, 4662306a36Sopenharmony_ci .vstepmin_stepmin_shift = OMAP3430_VSTEPMIN_SHIFT, 4762306a36Sopenharmony_ci .vstepmax_stepmax_shift = OMAP3430_VSTEPMAX_SHIFT, 4862306a36Sopenharmony_ci .vlimitto_vddmin_shift = OMAP3430_VDDMIN_SHIFT, 4962306a36Sopenharmony_ci .vlimitto_vddmax_shift = OMAP3430_VDDMAX_SHIFT, 5062306a36Sopenharmony_ci .vlimitto_timeout_shift = OMAP3430_TIMEOUT_SHIFT, 5162306a36Sopenharmony_ci .vpvoltage_mask = OMAP3430_VPVOLTAGE_MASK, 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci .ops = &omap3_vp_ops, 5462306a36Sopenharmony_ci}; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_cistruct omap_vp_instance omap3_vp_mpu = { 5762306a36Sopenharmony_ci .id = OMAP3_VP_VDD_MPU_ID, 5862306a36Sopenharmony_ci .common = &omap3_vp_common, 5962306a36Sopenharmony_ci .vpconfig = OMAP3_PRM_VP1_CONFIG_OFFSET, 6062306a36Sopenharmony_ci .vstepmin = OMAP3_PRM_VP1_VSTEPMIN_OFFSET, 6162306a36Sopenharmony_ci .vstepmax = OMAP3_PRM_VP1_VSTEPMAX_OFFSET, 6262306a36Sopenharmony_ci .vlimitto = OMAP3_PRM_VP1_VLIMITTO_OFFSET, 6362306a36Sopenharmony_ci .vstatus = OMAP3_PRM_VP1_STATUS_OFFSET, 6462306a36Sopenharmony_ci .voltage = OMAP3_PRM_VP1_VOLTAGE_OFFSET, 6562306a36Sopenharmony_ci}; 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_cistruct omap_vp_instance omap3_vp_core = { 6862306a36Sopenharmony_ci .id = OMAP3_VP_VDD_CORE_ID, 6962306a36Sopenharmony_ci .common = &omap3_vp_common, 7062306a36Sopenharmony_ci .vpconfig = OMAP3_PRM_VP2_CONFIG_OFFSET, 7162306a36Sopenharmony_ci .vstepmin = OMAP3_PRM_VP2_VSTEPMIN_OFFSET, 7262306a36Sopenharmony_ci .vstepmax = OMAP3_PRM_VP2_VSTEPMAX_OFFSET, 7362306a36Sopenharmony_ci .vlimitto = OMAP3_PRM_VP2_VLIMITTO_OFFSET, 7462306a36Sopenharmony_ci .vstatus = OMAP3_PRM_VP2_STATUS_OFFSET, 7562306a36Sopenharmony_ci .voltage = OMAP3_PRM_VP2_VOLTAGE_OFFSET, 7662306a36Sopenharmony_ci}; 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_cistruct omap_vp_param omap3_mpu_vp_data = { 7962306a36Sopenharmony_ci .vddmin = OMAP3430_VP1_VLIMITTO_VDDMIN, 8062306a36Sopenharmony_ci .vddmax = OMAP3430_VP1_VLIMITTO_VDDMAX, 8162306a36Sopenharmony_ci}; 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_cistruct omap_vp_param omap3_core_vp_data = { 8462306a36Sopenharmony_ci .vddmin = OMAP3430_VP2_VLIMITTO_VDDMIN, 8562306a36Sopenharmony_ci .vddmax = OMAP3430_VP2_VLIMITTO_VDDMAX, 8662306a36Sopenharmony_ci}; 87