]> git.openfabrics.org - ~emulex/infiniband.git/commitdiff
[ARM] pxa/cm-x300: add da9030 support
authorIgor Grinberg <grinberg@compulab.co.il>
Wed, 14 Oct 2009 07:20:24 +0000 (09:20 +0200)
committerEric Miao <eric.y.miao@gmail.com>
Tue, 1 Dec 2009 01:03:10 +0000 (09:03 +0800)
Register DA9030 PMIC. Use only backlight sub-device for now.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
arch/arm/mach-pxa/cm-x300.c

index 2142fe74666c960a4ab0247c203ef1526a7c74e3..8aedc60aaa654d56c8051b37686183bb10a6ac7c 100644 (file)
@@ -27,6 +27,8 @@
 #include <linux/i2c.h>
 #include <linux/i2c/pca953x.h>
 
+#include <linux/mfd/da903x.h>
+
 #include <linux/spi/spi.h>
 #include <linux/spi/spi_gpio.h>
 #include <linux/spi/tdo24m.h>
@@ -552,6 +554,35 @@ static void __init cm_x300_init_rtc(void)
 static inline void cm_x300_init_rtc(void) {}
 #endif
 
+/* DA9030 */
+struct da903x_subdev_info cm_x300_da9030_subdevs[] = {
+       {
+               .name = "da903x-backlight",
+               .id = DA9030_ID_WLED,
+       }
+};
+
+static struct da903x_platform_data cm_x300_da9030_info = {
+       .num_subdevs = ARRAY_SIZE(cm_x300_da9030_subdevs),
+       .subdevs = cm_x300_da9030_subdevs,
+};
+
+static struct i2c_board_info cm_x300_pmic_info = {
+       I2C_BOARD_INFO("da9030", 0x49),
+       .irq = IRQ_GPIO(0),
+       .platform_data = &cm_x300_da9030_info,
+};
+
+static struct i2c_pxa_platform_data cm_x300_pwr_i2c_info = {
+       .use_pio = 1,
+};
+
+static void __init cm_x300_init_da9030(void)
+{
+       pxa3xx_set_i2c_power_info(&cm_x300_pwr_i2c_info);
+       i2c_register_board_info(1, &cm_x300_pmic_info, 1);
+}
+
 static void __init cm_x300_init_wi2wi(void)
 {
        int bt_reset, wlan_en;
@@ -610,6 +641,7 @@ static void __init cm_x300_init(void)
        pxa_set_btuart_info(NULL);
        pxa_set_stuart_info(NULL);
 
+       cm_x300_init_da9030();
        cm_x300_init_dm9000();
        cm_x300_init_lcd();
        cm_x300_init_ohci();