diff options
Diffstat (limited to 'include/linux/edpdev.h')
| -rw-r--r-- | include/linux/edpdev.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/include/linux/edpdev.h b/include/linux/edpdev.h new file mode 100644 index 00000000000..c93bfa6d231 --- /dev/null +++ b/include/linux/edpdev.h @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2013, NVIDIA CORPORATION. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _LINUX_EDPDEV_H +#define _LINUX_EDPDEV_H + +#include <linux/kernel.h> +#include <linux/errno.h> +#include <linux/edp.h> + +/* + * Temperature -> IBAT LUT + * Should be descending wrt temp + * { ..., .ibat = 0 } must be the last entry + */ +struct psy_depletion_ibat_lut { + int temp; + unsigned int ibat; +}; + +/* + * Capacity -> RBAT LUT + * Should be descending wrt capacity + * { .capacity = 0, ... } must be the last entry + */ +struct psy_depletion_rbat_lut { + unsigned int capacity; + unsigned int rbat; +}; + +/* + * Capacity -> OCV LUT + * Should be descending wrt capacity + * { .capacity = 0, ... } must be the last entry + * @capacity: battery capacity in percents + * @ocv: OCV in uV + */ +struct psy_depletion_ocv_lut { + unsigned int capacity; + unsigned int ocv; +}; + +/* Power supply depletion EDP client */ +struct psy_depletion_platform_data { + char *power_supply; + unsigned int *states; + unsigned int num_states; + unsigned int e0_index; + unsigned int r_const; + unsigned int vsys_min; + unsigned int vcharge; + unsigned int ibat_nom; + struct psy_depletion_ibat_lut *ibat_lut; + struct psy_depletion_rbat_lut *rbat_lut; + struct psy_depletion_ocv_lut *ocv_lut; +}; + +#endif |
