Initial Contribution

msm-2.6.38: tag AU_LINUX_ANDROID_GINGERBREAD.02.03.04.00.142

Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
diff --git a/drivers/power/qci_battery.h b/drivers/power/qci_battery.h
new file mode 100644
index 0000000..dcbb62b
--- /dev/null
+++ b/drivers/power/qci_battery.h
@@ -0,0 +1,121 @@
+/* Header file for Quanta I2C Battery Driver
+ *
+ * Copyright (C) 2009 Quanta Computer 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.
+ *
+ */
+
+ /*
+ *
+ *  The Driver with I/O communications via the I2C Interface for ON2 of AP BU.
+ *  And it is only working on the nuvoTon WPCE775x Embedded Controller.
+ *
+ */
+
+#ifndef __QCI_BATTERY_H__
+#define __QCI_BATTERY_H__
+
+#define BAT_I2C_ADDRESS 0x1A
+#define BATTERY_ID_NAME          "qci-i2cbat"
+#define EC_FLAG_ADAPTER_IN		0x01
+#define EC_FLAG_POWER_ON		0x02
+#define EC_FLAG_ENTER_S3		0x04
+#define EC_FLAG_ENTER_S4		0x08
+#define EC_FLAG_IN_STANDBY		0x10
+#define EC_FLAG_SYSTEM_ON		0x20
+#define EC_FLAG_WAIT_HWPG		0x40
+#define EC_FLAG_S5_POWER_ON	0x80
+
+#define MAIN_BATTERY_STATUS_BAT_DISCHRG		0x01
+#define MAIN_BATTERY_STATUS_BAT_CHARGING	0x02
+#define MAIN_BATTERY_STATUS_BAT_ABNORMAL	0x04
+#define MAIN_BATTERY_STATUS_BAT_IN		0x08
+#define MAIN_BATTERY_STATUS_BAT_FULL		0x10
+#define MAIN_BATTERY_STATUS_BAT_LOW		0x20
+#define MAIN_BATTERY_STATUS_BAT_SMB_VALID	0x80
+
+#define CHG_STATUS_BAT_CHARGE			0x01
+#define CHG_STATUS_BAT_PRECHG			0x02
+#define CHG_STATUS_BAT_OVERTEMP			0x04
+#define CHG_STATUS_BAT_TYPE			0x08
+#define CHG_STATUS_BAT_GWROK			0x10
+#define CHG_STATUS_BAT_INCHARGE			0x20
+#define CHG_STATUS_BAT_WAKECHRG			0x40
+#define CHG_STATUS_BAT_CHGTIMEOUT		0x80
+
+#define EC_ADAPTER_PRESENT		0x1
+#define EC_BAT_PRESENT		        0x1
+#define EC_ADAPTER_NOT_PRESENT		0x0
+#define EC_BAT_NOT_PRESENT		0x0
+
+#define ECRAM_POWER_SOURCE              0x40
+#define ECRAM_CHARGER_ALARM		0x42
+#define ECRAM_BATTERY_STATUS            0x82
+#define ECRAM_BATTERY_CURRENT_LSB       0x83
+#define ECRAM_BATTERY_CURRENT_MSB       0x84
+#define ECRAM_BATTERY_VOLTAGE_LSB       0x87
+#define ECRAM_BATTERY_VOLTAGE_MSB       0x88
+#define ECRAM_BATTERY_CAPACITY          0x89
+#define ECRAM_BATTERY_TEMP_LSB          0x8C
+#define ECRAM_BATTERY_TEMP_MSB          0x8D
+#define ECRAM_BATTERY_EVENTS            0x99
+
+#define EC_EVENT_BATTERY                0x01
+#define EC_EVENT_CHARGER                0x02
+#define EC_EVENT_AC                     0x10
+#define EC_EVENT_TIMER                  0x40
+
+/* smbus access */
+#define SMBUS_READ_BYTE_PRTCL		0x07
+#define SMBUS_READ_WORD_PRTCL		0x09
+#define SMBUS_READ_BLOCK_PRTCL		0x0B
+
+/* smbus status code */
+#define SMBUS_OK			0x00
+#define SMBUS_DONE			0x80
+#define SMBUS_ALARM			0x40
+#define SMBUS_UNKNOW_FAILURE		0x07
+#define SMBUS_DEVICE_NOACK		0x10
+#define SMBUS_DEVICE_ERROR		0x11
+#define SMBUS_UNKNOW_ERROR		0x13
+#define SMBUS_TIME_OUT			0x18
+#define SMBUS_BUSY			0x1A
+
+/* ec ram mapping */
+#define ECRAM_SMB_PRTCL			0
+#define ECRAM_SMB_STS			1
+#define ECRAM_SMB_ADDR			2
+#define ECRAM_SMB_CMD			3
+#define ECRAM_SMB_DATA_START		4
+#define ECRAM_SMB_DATA0			4
+#define ECRAM_SMB_DATA1			5
+#define ECRAM_SMB_BCNT			36
+#define ECRAM_SMB_ALARM_ADDR		37
+#define ECRAM_SMB_ALARM_DATA0		38
+#define ECRAM_SMB_ALARM_DATA1		39
+
+/* smart battery commands */
+#define BATTERY_SLAVE_ADDRESS		0x16
+#define BATTERY_FULL_CAPACITY		0x10
+#define BATTERY_AVERAGE_TIME_TO_EMPTY	0x12
+#define BATTERY_AVERAGE_TIME_TO_FULL	0x13
+#define BATTERY_CYCLE_COUNT		0x17
+#define BATTERY_DESIGN_CAPACITY		0x18
+#define BATTERY_DESIGN_VOLTAGE		0x19
+#define BATTERY_SERIAL_NUMBER		0x1C
+#define BATTERY_MANUFACTURE_NAME        0x20
+#define BATTERY_DEVICE_NAME		0x21
+
+/* alarm bit */
+#define ALARM_REMAIN_CAPACITY           0x02
+#define ALARM_OVER_TEMP                 0x10
+#define ALARM_OVER_CHARGE               0x80
+#endif