1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * OMAP Voltage Management Routines
4  *
5  * Copyright (C) 2011, Texas Instruments, Inc.
6  */
7 
8 #ifndef __ARCH_ARM_OMAP_VOLTAGE_H
9 #define __ARCH_ARM_OMAP_VOLTAGE_H
10 
11 /**
12  * struct omap_volt_data - Omap voltage specific data.
13  * @voltage_nominal:	The possible voltage value in uV
14  * @sr_efuse_offs:	The offset of the efuse register(from system
15  *			control module base address) from where to read
16  *			the n-target value for the smartreflex module.
17  * @sr_errminlimit:	Error min limit value for smartreflex. This value
18  *			differs at differnet opp and thus is linked
19  *			with voltage.
20  * @vp_errorgain:	Error gain value for the voltage processor. This
21  *			field also differs according to the voltage/opp.
22  */
23 struct omap_volt_data {
24 	u32	volt_nominal;
25 	u32	sr_efuse_offs;
26 	u8	sr_errminlimit;
27 	u8	vp_errgain;
28 };
29 struct voltagedomain;
30 
31 struct voltagedomain *voltdm_lookup(const char *name);
32 int voltdm_scale(struct voltagedomain *voltdm, unsigned long target_volt);
33 unsigned long voltdm_get_voltage(struct voltagedomain *voltdm);
34 struct omap_volt_data *omap_voltage_get_voltdata(struct voltagedomain *voltdm,
35 		unsigned long volt);
36 #endif
37