summaryrefslogtreecommitdiff
path: root/drivers/power/sprd_2713_charge.h
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
committerYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
commit8e4bff4cab0ddac6060645b0715210484d02ff40 (patch)
tree3a5c3024371a04692a3a6d9974d001cdff8ebf84 /drivers/power/sprd_2713_charge.h
Initial file dump from open source releaseHEADmaster
Diffstat (limited to 'drivers/power/sprd_2713_charge.h')
-rw-r--r--drivers/power/sprd_2713_charge.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/drivers/power/sprd_2713_charge.h b/drivers/power/sprd_2713_charge.h
new file mode 100644
index 00000000..6e4b11e7
--- /dev/null
+++ b/drivers/power/sprd_2713_charge.h
@@ -0,0 +1,65 @@
+/*
+* Copyright (C) 2012 Spreadtrum Communications Inc.
+*
+* This software is licensed under the terms of the GNU General Public
+* License version 2, as published by the Free Software Foundation, and
+* may be copied, distributed, and modified under those terms.
+*
+* This program is distributed in the hope that 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.
+*/
+
+#ifndef _SPRD_2713_CHARGE_H_
+#define _SPRD_2713_CHARGE_H_
+
+#ifdef CONFIG_SHARK_PAD_HW_V102
+#define SPRDBAT_TWO_CHARGE_CHANNEL
+#endif
+
+#define CHG_CUR_ADJUST
+#define SPRDBAT_CCCV_MIN 0x00
+#define SPRDBAT_CCCV_MAX 0x3F
+#define ONE_CCCV_STEP_VOL 75 //7.5mV
+
+#define SPRDBAT_CHG_OVP_LEVEL_MIN 5600
+#define SPRDBAT_CHG_OVP_LEVEL_MAX 9000
+
+/*charge current type*/
+#define SPRDBAT_CHG_CUR_LEVEL_MIN 300
+#define SPRDBAT_CHG_CUR_LEVEL_MAX 1300
+
+#define SPRDBAT_ADC_CHANNEL_VCHG ADC_CHANNEL_VCHGSEN
+
+#define SPRDBAT_TEMP_TRIGGER_TIMES 2
+
+//sprdchg api
+void sprdchg_timer_enable(uint32_t cycles);
+void sprdchg_timer_disable(void);
+int sprdchg_timer_init(int (*fn_cb) (void *data), void *data);
+void sprdchg_init(struct sprd_battery_platform_data *pdata);
+int sprdchg_read_temp(void);
+int sprdchg_read_temp_adc(void);
+uint32_t sprdchg_read_vchg_vol(void);
+void sprdchg_start_charge(void);
+void sprdchg_stop_charge(void);
+void sprdchg_set_eoc_level(int level);
+int sprdchg_get_eoc_level(void);
+int sprdchg_get_cccvstate(void);
+
+void sprdchg_set_cccvpoint(unsigned int cvpoint);
+uint32_t sprdchg_get_cccvpoint(void);
+uint32_t sprdchg_tune_endvol_cccv(uint32_t chg_end_vol, uint32_t cal_cccv);
+void sprdchg_set_chg_cur(uint32_t chg_current);
+uint32_t sprdchg_get_chg_cur(void);
+int sprdchg_charger_is_adapter(void);
+void sprdchg_set_chg_ovp(uint32_t ovp_vol);
+uint32_t sprdchg_read_chg_current(void);
+void sprdchg_put_chgcur(uint32_t chging_current);
+uint32_t sprdchg_get_chgcur_ave(void);
+uint32_t sprdchg_read_vbat_vol(void);
+void sprdchg_led_brightness_set(struct led_classdev *led_cdev,
+ enum led_brightness brightness);
+
+#endif /* _CHG_DRVAPI_H_ */