ARMV7: Add support for the TWL6030 I2C power chip used in OMAP4 systems
This patch add the basic infrastructure for the TWL6030 driver and enables
support in the two existing OMAP4 boards, Panda and OMAP4430 SDP
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
diff --git a/include/twl6030.h b/include/twl6030.h
new file mode 100644
index 0000000..54923ab
--- /dev/null
+++ b/include/twl6030.h
@@ -0,0 +1,91 @@
+/*
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <i2c.h>
+
+/* I2C chip addresses */
+#define TWL6030_CHIP_PM 0x48
+
+#define TWL6030_CHIP_USB 0x49
+#define TWL6030_CHIP_ADC 0x49
+#define TWL6030_CHIP_CHARGER 0x49
+#define TWL6030_CHIP_PWM 0x49
+
+/* Battery CHARGER REGISTERS */
+#define CONTROLLER_INT_MASK 0xE0
+#define CONTROLLER_CTRL1 0xE1
+#define CONTROLLER_WDG 0xE2
+#define CONTROLLER_STAT1 0xE3
+#define CHARGERUSB_INT_STATUS 0xE4
+#define CHARGERUSB_INT_MASK 0xE5
+#define CHARGERUSB_STATUS_INT1 0xE6
+#define CHARGERUSB_STATUS_INT2 0xE7
+#define CHARGERUSB_CTRL1 0xE8
+#define CHARGERUSB_CTRL2 0xE9
+#define CHARGERUSB_CTRL3 0xEA
+#define CHARGERUSB_STAT1 0xEB
+#define CHARGERUSB_VOREG 0xEC
+#define CHARGERUSB_VICHRG 0xED
+#define CHARGERUSB_CINLIMIT 0xEE
+#define CHARGERUSB_CTRLLIMIT1 0xEF
+
+/* CHARGERUSB_VICHRG */
+#define CHARGERUSB_VICHRG_500 0x4
+#define CHARGERUSB_VICHRG_1500 0xE
+/* CHARGERUSB_CINLIMIT */
+#define CHARGERUSB_CIN_LIMIT_100 0x1
+#define CHARGERUSB_CIN_LIMIT_300 0x5
+#define CHARGERUSB_CIN_LIMIT_500 0x9
+#define CHARGERUSB_CIN_LIMIT_NONE 0xF
+/* CONTROLLER_INT_MASK */
+#define MVAC_FAULT (1 << 6)
+#define MAC_EOC (1 << 5)
+#define MBAT_REMOVED (1 << 4)
+#define MFAULT_WDG (1 << 3)
+#define MBAT_TEMP (1 << 2)
+#define MVBUS_DET (1 << 1)
+#define MVAC_DET (1 << 0)
+/* CHARGERUSB_INT_MASK */
+#define MASK_MCURRENT_TERM (1 << 3)
+#define MASK_MCHARGERUSB_STAT (1 << 2)
+#define MASK_MCHARGERUSB_THMREG (1 << 1)
+#define MASK_MCHARGERUSB_FAULT (1 << 0)
+/* CHARGERUSB_VOREG */
+#define CHARGERUSB_VOREG_3P52 0x01
+#define CHARGERUSB_VOREG_4P0 0x19
+#define CHARGERUSB_VOREG_4P2 0x23
+#define CHARGERUSB_VOREG_4P76 0x3F
+/* CHARGERUSB_CTRL2 */
+#define CHARGERUSB_CTRL2_VITERM_50 (0 << 5)
+#define CHARGERUSB_CTRL2_VITERM_100 (1 << 5)
+#define CHARGERUSB_CTRL2_VITERM_150 (2 << 5)
+/* CONTROLLER_CTRL1 */
+#define CONTROLLER_CTRL1_EN_CHARGER (1 << 4)
+#define CONTROLLER_CTRL1_SEL_CHARGER (1 << 3)
+
+#define VUSB_CFG_STATE 0xA2
+#define MISC2 0xE5
+
+void twl6030_init_battery_charging(void);
+void twl6030_usb_device_settings(void);