/* SPDX-License-Identifier: GPL-2.0-only */
/*
* OMAP SoC specific OPP Data helpers
*
* Copyright ( C ) 2009 - 2010 Texas Instruments Incorporated - https : //www.ti.com/
* Nishanth Menon
* Kevin Hilman
* Copyright ( C ) 2010 Nokia Corporation .
* Eduardo Valentin
*/
#ifndef __ARCH_ARM_MACH_OMAP2_OMAP_OPP_DATA_H
#define __ARCH_ARM_MACH_OMAP2_OMAP_OPP_DATA_H
#include "omap_hwmod.h"
#include "voltage.h"
/*
* * BIG FAT WARNING * :
* USE the following ONLY in opp data initialization common to an SoC .
* DO NOT USE these in board files / pm core etc .
*/
/**
* struct omap_opp_def - OMAP OPP Definition
* @ hwmod_name : Name of the hwmod for this domain
* @ freq : Frequency in hertz corresponding to this OPP
* @ u_volt : Nominal voltage in microvolts corresponding to this OPP
* @ default_available : True / false - is this OPP available by default
*
* OMAP SOCs have a standard set of tuples consisting of frequency and voltage
* pairs that the device will support per voltage domain . This is called
* Operating Points or OPP . The actual definitions of OMAP Operating Points
* varies over silicon within the same family of devices . For a specific
* domain , you can have a set of { frequency , voltage } pairs and this is denoted
* by an array of omap_opp_def . As the kernel boots and more information is
* available , a set of these are activated based on the precise nature of
* device the kernel boots up on . It is interesting to remember that each IP
* which belongs to a voltage domain may define their own set of OPPs on top
* of this - but this is handled by the appropriate driver .
*/
struct omap_opp_def {
char *hwmod_name;
unsigned long freq;
unsigned long u_volt;
bool default_available;
};
/*
* Initialization wrapper used to define an OPP for OMAP variants .
*/
#define OPP_INITIALIZER(_hwmod_name, _enabled, _freq, _uv) \
{ \
.hwmod_name = _hwmod_name, \
.default_available = _enabled, \
.freq = _freq, \
.u_volt = _uv, \
}
/*
* Initialization wrapper used to define SmartReflex process data
* XXX Is this needed ? Just use C99 initializers in data files ?
*/
#define VOLT_DATA_DEFINE(_v_nom, _efuse_offs, _errminlimit, _errgain) \
{ \
.volt_nominal = _v_nom, \
.sr_efuse_offs = _efuse_offs, \
.sr_errminlimit = _errminlimit, \
.vp_errgain = _errgain \
}
extern struct omap_volt_data omap34xx_vddmpu_volt_data[];
extern struct omap_volt_data omap34xx_vddcore_volt_data[];
extern struct omap_volt_data omap36xx_vddmpu_volt_data[];
extern struct omap_volt_data omap36xx_vddcore_volt_data[];
extern struct omap_volt_data omap443x_vdd_mpu_volt_data[];
extern struct omap_volt_data omap443x_vdd_iva_volt_data[];
extern struct omap_volt_data omap443x_vdd_core_volt_data[];
extern struct omap_volt_data omap446x_vdd_mpu_volt_data[];
extern struct omap_volt_data omap446x_vdd_iva_volt_data[];
extern struct omap_volt_data omap446x_vdd_core_volt_data[];
#endif /* __ARCH_ARM_MACH_OMAP2_OMAP_OPP_DATA_H */
Messung V0.5 in Prozent C=92 H=100 G=95
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland