[ARM] tegra: stingray: Add max8649 to board files
authorColin Cross <ccross@android.com>
Wed, 23 Jun 2010 22:52:18 +0000 (15:52 -0700)
committerColin Cross <ccross@android.com>
Wed, 6 Oct 2010 23:33:12 +0000 (16:33 -0700)
Change-Id: Ic28d5c46dad942f9706b0daa9cfa66cb964f9342
Signed-off-by: Colin Cross <ccross@android.com>
arch/arm/mach-tegra/board-stingray-power.c

index 38304a4827207ab8e1bc81aff1920b360c15a6a9..746205f97ec4c0d2332b92c9aca15282e8127407 100644 (file)
@@ -17,6 +17,7 @@
  */
 
 #include <linux/gpio.h>
+#include <linux/i2c.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
@@ -27,6 +28,7 @@
 #include <linux/regulator/consumer.h>
 #include <linux/regulator/driver.h>
 #include <linux/regulator/machine.h>
+#include <linux/regulator/max8649.h>
 #include <linux/spi/cpcap.h>
 #include <linux/spi/cpcap-regbits.h>
 #include <linux/spi/spi.h>
@@ -600,6 +602,38 @@ static struct spi_board_info stingray_spi_board_info[] __initdata = {
        },
 };
 
+struct regulator_consumer_supply max8649_consumers[] = {
+       REGULATOR_CONSUMER("vdd_cpu", NULL /* cpu */),
+};
+
+struct regulator_init_data max8649_regulator_init_data[] = {
+       {
+               .constraints = {
+                       .min_uV                 = 750000,
+                       .max_uV                 = 1100000,
+                       .valid_ops_mask         = REGULATOR_CHANGE_VOLTAGE,
+                       .always_on              = 1,
+               },
+               .num_consumer_supplies  = ARRAY_SIZE(max8649_consumers),
+               .consumer_supplies      = max8649_consumers,
+       },
+};
+
+struct max8649_platform_data stingray_max8649_pdata = {
+       .regulator = max8649_regulator_init_data,
+       .mode = 3,
+       .extclk = 0,
+       .ramp_timing = MAX8649_RAMP_32MV,
+       .ramp_down = 0,
+};
+
+static struct i2c_board_info __initdata stingray_i2c_bus4_power_info[] = {
+       {
+               I2C_BOARD_INFO("max8649", 0x60),
+               .platform_data = &stingray_max8649_pdata,
+       },
+};
+
 int __init stingray_power_init(void)
 {
        int i;
@@ -624,5 +658,8 @@ int __init stingray_power_init(void)
 
        (void) cpcap_driver_register(&cpcap_validity_driver);
 
+       i2c_register_board_info(3, stingray_i2c_bus4_power_info,
+               ARRAY_SIZE(stingray_i2c_bus4_power_info));
+
        return 0;
 }