1808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick#ifndef _S3C_ADC_BATTERY_H
2808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick#define _S3C_ADC_BATTERY_H
3808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick
4808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhickstruct s3c_adc_bat_thresh {
5808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	int volt; /* mV */
6808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	int cur; /* mA */
7808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	int level; /* percent */
8808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick};
9808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick
10808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhickstruct s3c_adc_bat_pdata {
11808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	int (*init)(void);
12808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	void (*exit)(void);
13808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	void (*enable_charger)(void);
14808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	void (*disable_charger)(void);
15808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick
16808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	int gpio_charge_finished;
17c66ae9bb4dcaac78cc5e30d0ce7ff2bf3dcb48d9Vasily Khoruzhick	int gpio_inverted;
18808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick
19808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const struct s3c_adc_bat_thresh *lut_noac;
20808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	unsigned int lut_noac_cnt;
21808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const struct s3c_adc_bat_thresh *lut_acin;
22808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	unsigned int lut_acin_cnt;
23808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick
24808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const unsigned int volt_channel;
25808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const unsigned int current_channel;
26808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const unsigned int backup_volt_channel;
27808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick
2834aed73df3a9e75e313a7510b201f6755ae3e6bcHeiko Stübner	const unsigned int volt_samples;
2934aed73df3a9e75e313a7510b201f6755ae3e6bcHeiko Stübner	const unsigned int current_samples;
3034aed73df3a9e75e313a7510b201f6755ae3e6bcHeiko Stübner	const unsigned int backup_volt_samples;
3134aed73df3a9e75e313a7510b201f6755ae3e6bcHeiko Stübner
32808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const unsigned int volt_mult;
33808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const unsigned int current_mult;
34808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const unsigned int backup_volt_mult;
35808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const unsigned int internal_impedance;
36808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick
37808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const unsigned int backup_volt_max;
38808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick	const unsigned int backup_volt_min;
39808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick};
40808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick
41808be4b22f47886d2279852ada3d186fc20909bcVasily Khoruzhick#endif
42