aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/power/ricoh619_battery.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/power/ricoh619_battery.h')
-rwxr-xr-xinclude/linux/power/ricoh619_battery.h159
1 files changed, 159 insertions, 0 deletions
diff --git a/include/linux/power/ricoh619_battery.h b/include/linux/power/ricoh619_battery.h
new file mode 100755
index 00000000..c197f7a4
--- /dev/null
+++ b/include/linux/power/ricoh619_battery.h
@@ -0,0 +1,159 @@
+/*
+ * include/linux/power/ricoh619_battery.h
+ *
+ * RICOH RC5T619 Charger Driver
+ *
+ * Copyright (C) 2012-2014 RICOH COMPANY,LTD
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ *
+ * 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_POWER_RICOH619_H_
+#define __LINUX_POWER_RICOH619_H_
+
+/* #include <linux/power_supply.h> */
+/* #include <linux/types.h> */
+
+/* Defined battery information */
+#define ADC_VDD_MV 2800
+#define MIN_VOLTAGE 3100
+#define MAX_VOLTAGE 4200
+#define B_VALUE 3435
+
+
+/* RICOH61x Register information */
+/* bank 0 */
+#define PSWR_REG 0x07
+#define VINDAC_REG 0x03
+/* for ADC */
+#define INTEN_REG 0x9D
+#define EN_ADCIR3_REG 0x8A
+#define ADCCNT3_REG 0x66
+#define VBATDATAH_REG 0x6A
+#define VBATDATAL_REG 0x6B
+
+#define VSYSDATAH_REG 0x70
+#define VSYSDATAL_REG 0x71
+
+#define CHGCTL1_REG 0xB3
+#define REGISET1_REG 0xB6
+#define REGISET2_REG 0xB7
+#define CHGISET_REG 0xB8
+#define TIMSET_REG 0xB9
+#define BATSET1_REG 0xBA
+#define BATSET2_REG 0xBB
+
+#define CHGSTATE_REG 0xBD
+
+#define FG_CTRL_REG 0xE0
+#define SOC_REG 0xE1
+#define RE_CAP_H_REG 0xE2
+#define RE_CAP_L_REG 0xE3
+#define FA_CAP_H_REG 0xE4
+#define FA_CAP_L_REG 0xE5
+#define TT_EMPTY_H_REG 0xE7
+#define TT_EMPTY_L_REG 0xE8
+#define TT_FULL_H_REG 0xE9
+#define TT_FULL_L_REG 0xEA
+#define VOLTAGE_1_REG 0xEB
+#define VOLTAGE_2_REG 0xEC
+#define TEMP_1_REG 0xED
+#define TEMP_2_REG 0xEE
+
+#define CC_CTRL_REG 0xEF
+#define CC_SUMREG3_REG 0xF3
+#define CC_SUMREG2_REG 0xF4
+#define CC_SUMREG1_REG 0xF5
+#define CC_SUMREG0_REG 0xF6
+#define CC_AVERAGE1_REG 0xFB
+#define CC_AVERAGE0_REG 0xFC
+
+/* bank 1 */
+/* Top address for battery initial setting */
+#define BAT_TEST_EN_REG 0xB0
+#define BAT_ADD1B2_REG 0xB2
+#define BAT_ADD1B3_REG 0xB3
+#define BAT_ADD1DD_REG 0xDD
+
+#define BAT_INIT_TOP_REG 0xBC
+#define TEMP_GAIN_H_REG 0xD6
+#define TEMP_OFF_H_REG 0xD8
+#define BAT_REL_SEL_REG 0xDA
+#define BAT_TA_SEL_REG 0xDB
+/**************************/
+
+/* detailed status in CHGSTATE (0xBD) */
+enum ChargeState {
+ CHG_STATE_CHG_OFF = 0,
+ CHG_STATE_CHG_READY_VADP,
+ CHG_STATE_CHG_TRICKLE,
+ CHG_STATE_CHG_RAPID,
+ CHG_STATE_CHG_COMPLETE,
+ CHG_STATE_SUSPEND,
+ CHG_STATE_VCHG_OVER_VOL,
+ CHG_STATE_BAT_ERROR,
+ CHG_STATE_NO_BAT,
+ CHG_STATE_BAT_OVER_VOL,
+ CHG_STATE_BAT_TEMP_ERR,
+ CHG_STATE_DIE_ERR,
+ CHG_STATE_DIE_SHUTDOWN,
+ CHG_STATE_NO_BAT2,
+ CHG_STATE_CHG_READY_VUSB,
+};
+
+enum SupplyState {
+ SUPPLY_STATE_BAT = 0,
+ SUPPLY_STATE_ADP,
+ SUPPLY_STATE_USB,
+} ;
+
+struct ricoh619_battery_type_data {
+ int ch_vfchg;
+ int ch_vrchg;
+ int ch_vbatovset;
+ int ch_ichg;
+ int ch_icchg;
+ int ch_ilim_adp;
+ int ch_ilim_usb;
+ int fg_target_vsys;
+ int fg_target_ibat;
+ int fg_poff_vbat;
+ int jt_en;
+ int jt_hw_sw;
+ int jt_temp_h;
+ int jt_temp_l;
+ int jt_vfchg_h;
+ int jt_vfchg_l;
+ int jt_ichg_h;
+ int jt_ichg_l;
+};
+
+#define BATTERY_TYPE_NUM 1
+struct ricoh619_battery_platform_data {
+ int irq;
+ int alarm_vol_mv;
+ int multiple;
+ unsigned long monitor_time;
+ struct ricoh619_battery_type_data type[BATTERY_TYPE_NUM];
+};
+
+
+// return value of ricoh619_charger_detect() .
+#define NO_CHARGER_PLUGGED 0
+#define UNKOWN_CHARGER 0x0101
+#define SDP_CHARGER 0x0001
+#define CDP_CHARGER 0x0011
+#define DCP_CHARGER 0x0021
+
+#endif