162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * OMAP4 OPP table definitions.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2010-2012 Texas Instruments Incorporated - https://www.ti.com/
662306a36Sopenharmony_ci *	Nishanth Menon
762306a36Sopenharmony_ci *	Kevin Hilman
862306a36Sopenharmony_ci *	Thara Gopinath
962306a36Sopenharmony_ci * Copyright (C) 2010-2011 Nokia Corporation.
1062306a36Sopenharmony_ci *      Eduardo Valentin
1162306a36Sopenharmony_ci *      Paul Walmsley
1262306a36Sopenharmony_ci */
1362306a36Sopenharmony_ci#include <linux/module.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#include "soc.h"
1662306a36Sopenharmony_ci#include "control.h"
1762306a36Sopenharmony_ci#include "omap_opp_data.h"
1862306a36Sopenharmony_ci#include "pm.h"
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci/*
2162306a36Sopenharmony_ci * Structures containing OMAP4430 voltage supported and various
2262306a36Sopenharmony_ci * voltage dependent data for each VDD.
2362306a36Sopenharmony_ci */
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci#define OMAP4430_VDD_MPU_OPP50_UV		1025000
2662306a36Sopenharmony_ci#define OMAP4430_VDD_MPU_OPP100_UV		1200000
2762306a36Sopenharmony_ci#define OMAP4430_VDD_MPU_OPPTURBO_UV		1325000
2862306a36Sopenharmony_ci#define OMAP4430_VDD_MPU_OPPNITRO_UV		1388000
2962306a36Sopenharmony_ci#define OMAP4430_VDD_MPU_OPPNITROSB_UV		1398000
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_cistruct omap_volt_data omap443x_vdd_mpu_volt_data[] = {
3262306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP50_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c),
3362306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP100_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16),
3462306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23),
3562306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27),
3662306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPNITROSB_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITROSB, 0xfa, 0x27),
3762306a36Sopenharmony_ci	VOLT_DATA_DEFINE(0, 0, 0, 0),
3862306a36Sopenharmony_ci};
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci#define OMAP4430_VDD_IVA_OPP50_UV		 950000
4162306a36Sopenharmony_ci#define OMAP4430_VDD_IVA_OPP100_UV		1114000
4262306a36Sopenharmony_ci#define OMAP4430_VDD_IVA_OPPTURBO_UV		1291000
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_cistruct omap_volt_data omap443x_vdd_iva_volt_data[] = {
4562306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP50_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c),
4662306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP100_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16),
4762306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23),
4862306a36Sopenharmony_ci	VOLT_DATA_DEFINE(0, 0, 0, 0),
4962306a36Sopenharmony_ci};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci#define OMAP4430_VDD_CORE_OPP50_UV		 962000
5262306a36Sopenharmony_ci#define OMAP4430_VDD_CORE_OPP100_UV		1127000
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_cistruct omap_volt_data omap443x_vdd_core_volt_data[] = {
5562306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP50_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c),
5662306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP100_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16),
5762306a36Sopenharmony_ci	VOLT_DATA_DEFINE(0, 0, 0, 0),
5862306a36Sopenharmony_ci};
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci#define OMAP4460_VDD_MPU_OPP50_UV		1025000
6162306a36Sopenharmony_ci#define OMAP4460_VDD_MPU_OPP100_UV		1200000
6262306a36Sopenharmony_ci#define OMAP4460_VDD_MPU_OPPTURBO_UV		1313000
6362306a36Sopenharmony_ci#define OMAP4460_VDD_MPU_OPPNITRO_UV		1375000
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_cistruct omap_volt_data omap446x_vdd_mpu_volt_data[] = {
6662306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP50_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c),
6762306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP100_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16),
6862306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23),
6962306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27),
7062306a36Sopenharmony_ci	VOLT_DATA_DEFINE(0, 0, 0, 0),
7162306a36Sopenharmony_ci};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci#define OMAP4460_VDD_IVA_OPP50_UV		1025000
7462306a36Sopenharmony_ci#define OMAP4460_VDD_IVA_OPP100_UV		1200000
7562306a36Sopenharmony_ci#define OMAP4460_VDD_IVA_OPPTURBO_UV		1313000
7662306a36Sopenharmony_ci#define OMAP4460_VDD_IVA_OPPNITRO_UV		1375000
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_cistruct omap_volt_data omap446x_vdd_iva_volt_data[] = {
7962306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_IVA_OPP50_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c),
8062306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_IVA_OPP100_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16),
8162306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_IVA_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23),
8262306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_IVA_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPNITRO, 0xfa, 0x23),
8362306a36Sopenharmony_ci	VOLT_DATA_DEFINE(0, 0, 0, 0),
8462306a36Sopenharmony_ci};
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci#define OMAP4460_VDD_CORE_OPP50_UV		1025000
8762306a36Sopenharmony_ci#define OMAP4460_VDD_CORE_OPP100_UV		1200000
8862306a36Sopenharmony_ci#define OMAP4460_VDD_CORE_OPP100_OV_UV		1250000
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_cistruct omap_volt_data omap446x_vdd_core_volt_data[] = {
9162306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_CORE_OPP50_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c),
9262306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_CORE_OPP100_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16),
9362306a36Sopenharmony_ci	VOLT_DATA_DEFINE(OMAP4460_VDD_CORE_OPP100_OV_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100OV, 0xf9, 0x16),
9462306a36Sopenharmony_ci	VOLT_DATA_DEFINE(0, 0, 0, 0),
9562306a36Sopenharmony_ci};
96