Merge branches 'pm-cpufreq', 'pm-sleep' and 'pm-em'
[linux-2.6-microblaze.git] / include / linux / platform_data / voltage-omap.h
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