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