[ARM] pxa/z2: Add battery support into Zipit Z2
authorMarek Vasut <marek.vasut@gmail.com>
Mon, 31 May 2010 14:51:50 +0000 (16:51 +0200)
committerEric Miao <eric.y.miao@gmail.com>
Fri, 18 Jun 2010 07:07:35 +0000 (15:07 +0800)
This patch adds support for the AER915 battery chip into Zipit Z2
platform file.

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
arch/arm/mach-pxa/z2.c

index d303c6929d3282803e3b547e9509e7b7aab3b177..1452c71805c1ef1d6550629f81db5b0470cdb52c 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/pwm_backlight.h>
+#include <linux/z2_battery.h>
 #include <linux/dma-mapping.h>
 #include <linux/spi/spi.h>
 #include <linux/spi/libertas_spi.h>
@@ -451,6 +452,39 @@ static void __init z2_keys_init(void)
 static inline void z2_keys_init(void) {}
 #endif
 
+/******************************************************************************
+ * Battery
+ ******************************************************************************/
+#if defined(CONFIG_I2C_PXA) || defined(CONFIG_I2C_PXA_MODULE)
+static struct z2_battery_info batt_chip_info = {
+       .batt_I2C_bus   = 0,
+       .batt_I2C_addr  = 0x55,
+       .batt_I2C_reg   = 2,
+       .charge_gpio    = GPIO0_ZIPITZ2_AC_DETECT,
+       .min_voltage    = 2400000,
+       .max_voltage    = 3700000,
+       .batt_div       = 69,
+       .batt_mult      = 1000000,
+       .batt_tech      = POWER_SUPPLY_TECHNOLOGY_LION,
+       .batt_name      = "Z2",
+};
+
+static struct i2c_board_info __initdata z2_i2c_board_info[] = {
+       {
+               I2C_BOARD_INFO("aer915", 0x55),
+               .platform_data  = &batt_chip_info,
+       }
+};
+
+static void __init z2_i2c_init(void)
+{
+       pxa_set_i2c_info(NULL);
+       i2c_register_board_info(0, ARRAY_AND_SIZE(z2_i2c_board_info));
+}
+#else
+static inline void z2_i2c_init(void) {}
+#endif
+
 /******************************************************************************
  * SSP Devices - WiFi and LCD control
  ******************************************************************************/
@@ -579,12 +613,14 @@ static void __init z2_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(z2_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        z2_lcd_init();
        z2_mmc_init();
        z2_mkp_init();
-
-       pxa_set_i2c_info(NULL);
-
+       z2_i2c_init();
        z2_spi_init();
        z2_nor_init();
        z2_pwm_init();