summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-tn8-power.c
diff options
context:
space:
mode:
authorHayden Du <haydend@nvidia.com>2013-08-22 16:58:04 +0800
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 13:43:12 -0700
commit84122d228ea75a1f26991c8b364480ac744c19e8 (patch)
treef4a3d93e096dd043d4b14467854cf3c67caf6076 /arch/arm/mach-tegra/board-tn8-power.c
parentfa04b24c897403d1ce639efb031d4c5453d27094 (diff)
arm: t124: tn8: Enable VBUS regulator for TN8 USB OTG
Bug 1353788 Change-Id: I467a148768d61f96c71687fa4f6504f784bf4a04 Signed-off-by: Hayden Du <haydend@nvidia.com> Reviewed-on: http://git-master/r/264783 GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-tn8-power.c')
-rw-r--r--arch/arm/mach-tegra/board-tn8-power.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-tn8-power.c b/arch/arm/mach-tegra/board-tn8-power.c
index 1c567bf7db25..da6c1bb9d417 100644
--- a/arch/arm/mach-tegra/board-tn8-power.c
+++ b/arch/arm/mach-tegra/board-tn8-power.c
@@ -26,6 +26,10 @@
#include <linux/regulator/machine.h>
#include <linux/irq.h>
+#include <linux/gpio.h>
+#include <linux/power/bq2419x-charger.h>
+#include <linux/max17048_battery.h>
+
#include <mach/irqs.h>
#include <mach/hardware.h>
@@ -45,6 +49,34 @@
#define PMC_CTRL 0x0
#define PMC_CTRL_INTR_LOW (1 << 17)
+/* BQ2419X VBUS regulator */
+static struct regulator_consumer_supply bq2419x_vbus_supply[] = {
+ REGULATOR_SUPPLY("usb_vbus", "tegra-ehci.0"),
+ REGULATOR_SUPPLY("usb_vbus", "tegra-otg"),
+};
+
+static struct regulator_consumer_supply bq2419x_batt_supply[] = {
+ REGULATOR_SUPPLY("usb_bat_chg", "tegra-udc.0"),
+};
+
+static struct bq2419x_vbus_platform_data bq2419x_vbus_pdata = {
+ .gpio_otg_iusb = TEGRA_GPIO_PI4,
+ .num_consumer_supplies = ARRAY_SIZE(bq2419x_vbus_supply),
+ .consumer_supplies = bq2419x_vbus_supply,
+};
+
+struct bq2419x_platform_data tn8_bq2419x_pdata = {
+ .vbus_pdata = &bq2419x_vbus_pdata,
+};
+
+static struct i2c_board_info __initdata bq2419x_boardinfo[] = {
+ {
+ I2C_BOARD_INFO("bq2419x", 0x6b),
+ .platform_data = &tn8_bq2419x_pdata,
+ },
+};
+
+
static struct regulator_consumer_supply palmas_smps123_supply[] = {
REGULATOR_SUPPLY("vdd_cpu", NULL),
};
@@ -415,6 +447,10 @@ int __init tn8_regulator_init(void)
pmic_platform.reg_init[i] = tn8_reg_init[i];
}
+ bq2419x_boardinfo[0].irq = gpio_to_irq(TEGRA_GPIO_PJ0);
+ i2c_register_board_info(0, bq2419x_boardinfo,
+ ARRAY_SIZE(bq2419x_boardinfo));
+
/* Tracking configuration */
/* TODO
reg_init_data_ldo8.config_flags =